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

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 (183) hide show
  1. package/README.md +26 -2
  2. package/dist/@types/generic.d.ts +28 -0
  3. package/dist/@types/save-as-template.d.ts +29 -0
  4. package/dist/components/Guido.vue.d.ts +6 -3
  5. package/dist/components/Guido.vue.js +9 -9
  6. package/dist/components/Guido.vue2.js +63 -44
  7. package/dist/components/organisms/LoadingWrapper.vue.d.ts +2 -0
  8. package/dist/components/organisms/LoadingWrapper.vue.js +18 -0
  9. package/dist/components/organisms/LoadingWrapper.vue2.js +12 -0
  10. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +12 -12
  11. package/dist/components/organisms/email-preview/PreviewContainer.vue2.js +7 -8
  12. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +1 -1
  13. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +3 -3
  14. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +16 -15
  15. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +8 -8
  16. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +1 -1
  17. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +8 -5
  18. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +7 -7
  19. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue2.js +8 -8
  20. package/dist/components/organisms/header/MiddleSlot.vue.js +6 -6
  21. package/dist/components/organisms/header/MiddleSlot.vue2.js +15 -22
  22. package/dist/components/organisms/header/RightSlot.vue.js +10 -9
  23. package/dist/components/organisms/header/RightSlot.vue2.js +26 -26
  24. package/dist/components/organisms/header/ViewOptions.vue.js +10 -10
  25. package/dist/components/organisms/header/ViewOptions.vue2.js +28 -11
  26. package/dist/components/organisms/header/version-history/ViewOptions.vue.js +3 -3
  27. package/dist/components/organisms/header/version-history/ViewOptions.vue2.js +34 -16
  28. package/dist/components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +2 -0
  29. package/dist/components/organisms/save-as-template/SaveAsTemplateDrawer.vue.js +20 -0
  30. package/dist/components/organisms/save-as-template/SaveAsTemplateDrawer.vue2.js +63 -0
  31. package/dist/components/wrappers/WpDrawer.vue.d.ts +63 -0
  32. package/dist/components/wrappers/WpDrawer.vue.js +25 -0
  33. package/dist/components/wrappers/WpDrawer.vue2.js +23 -0
  34. package/dist/components/wrappers/WpModal.vue.d.ts +3 -14
  35. package/dist/composables/useActionsApi.d.ts +2 -1
  36. package/dist/composables/useActionsApi.js +52 -27
  37. package/dist/composables/useConfig.d.ts +0 -1
  38. package/dist/composables/useConfig.js +4 -8
  39. package/dist/composables/useCustomInterfaceAppearance.js +15 -13
  40. package/dist/composables/useGuidoActions.d.ts +2 -2
  41. package/dist/composables/useHtmlCompiler.js +9 -8
  42. package/dist/composables/useHttp.js +23 -21
  43. package/dist/composables/usePartner.d.ts +1 -1
  44. package/dist/composables/usePartner.js +9 -14
  45. package/dist/composables/usePreviewMode.js +17 -17
  46. package/dist/composables/useStripo.js +36 -26
  47. package/dist/composables/useToaster.d.ts +1 -1
  48. package/dist/composables/useToaster.js +11 -11
  49. package/dist/composables/useTranslations.js +3 -2
  50. package/dist/composables/useValidation.d.ts +56 -0
  51. package/dist/composables/useValidation.js +19 -0
  52. package/dist/composables/validators/saveAsTemplate.d.ts +31 -0
  53. package/dist/composables/validators/saveAsTemplate.js +24 -0
  54. package/dist/enums/defaults.d.ts +4 -1
  55. package/dist/enums/defaults.js +13 -2
  56. package/dist/extensions/DynamicContent/dynamic-content.js +13 -15
  57. package/dist/guido.css +1 -1
  58. package/dist/mock/api/template-library.d.ts +2 -0
  59. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/Extension.js +2 -2
  60. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ExtensionBuilder.js +2 -2
  61. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/Block.js +2 -2
  62. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/BlockRenderer.js +2 -2
  63. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/BlocksPanel.js +2 -2
  64. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/ContextAction.js +2 -2
  65. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js +2 -2
  66. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js +2 -2
  67. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js +2 -2
  68. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js +2 -2
  69. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js +2 -2
  70. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js +2 -2
  71. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js +2 -2
  72. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js +2 -2
  73. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js +2 -2
  74. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js +2 -2
  75. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BackgroundColorBuiltInControl.js +4 -4
  76. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BackgroundImageBuiltInControl.js +4 -4
  77. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BlockPaddingsBuiltInControl.js +4 -4
  78. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BuiltInControl.js +2 -2
  79. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonBorderBuiltInControl.js +4 -4
  80. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonColorBuiltInControl.js +4 -4
  81. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonFontColorBuiltInControl.js +4 -4
  82. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonInternalIndentsBuiltInControl.js +4 -4
  83. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonTextBuiltInControl.js +4 -4
  84. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/Control.js +2 -2
  85. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/FontFamilyBuiltInControl.js +4 -4
  86. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/LinkColorBuiltInControl.js +4 -4
  87. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelRegistry.js +2 -2
  88. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelTab.js +2 -2
  89. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/StructureBorderBuiltInControl.js +4 -4
  90. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/StructurePaddingsBuiltInControl.js +4 -4
  91. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextColorBuiltInControl.js +4 -4
  92. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextLineSpacingBuiltInControl.js +4 -4
  93. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextSizeBuiltInControl.js +4 -4
  94. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextStyleBuiltInControl.js +4 -4
  95. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/index.js +2 -2
  96. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/modifications/ModificationDescription.js +2 -2
  97. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElement.js +2 -2
  98. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElementTagRegistry.js +2 -2
  99. package/dist/node_modules/@vueuse/shared/index.js +45 -0
  100. package/dist/node_modules/lodash-es/_Stack.js +18 -0
  101. package/dist/node_modules/lodash-es/_Uint8Array.js +5 -0
  102. package/dist/node_modules/lodash-es/_apply.js +16 -0
  103. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +19 -0
  104. package/dist/node_modules/lodash-es/_assignMergeValue.js +8 -0
  105. package/dist/node_modules/lodash-es/_assignValue.js +10 -0
  106. package/dist/node_modules/lodash-es/_baseAssignValue.js +12 -0
  107. package/dist/node_modules/lodash-es/_baseCreate.js +17 -0
  108. package/dist/node_modules/lodash-es/_baseFor.js +5 -0
  109. package/dist/node_modules/lodash-es/_baseIsArguments.js +9 -0
  110. package/dist/node_modules/lodash-es/_baseIsTypedArray.js +12 -0
  111. package/dist/node_modules/lodash-es/_baseKeysIn.js +15 -0
  112. package/dist/node_modules/lodash-es/_baseMerge.js +20 -0
  113. package/dist/node_modules/lodash-es/_baseMergeDeep.js +31 -0
  114. package/dist/node_modules/lodash-es/_baseRest.js +9 -0
  115. package/dist/node_modules/lodash-es/_baseSetToString.js +14 -0
  116. package/dist/node_modules/lodash-es/_baseTimes.js +8 -0
  117. package/dist/node_modules/lodash-es/_baseUnary.js +8 -0
  118. package/dist/node_modules/lodash-es/_cloneArrayBuffer.js +8 -0
  119. package/dist/node_modules/lodash-es/_cloneBuffer.js +9 -0
  120. package/dist/node_modules/lodash-es/_cloneTypedArray.js +8 -0
  121. package/dist/node_modules/lodash-es/_copyArray.js +9 -0
  122. package/dist/node_modules/lodash-es/_copyObject.js +14 -0
  123. package/dist/node_modules/lodash-es/_createAssigner.js +15 -0
  124. package/dist/node_modules/lodash-es/_createBaseFor.js +13 -0
  125. package/dist/node_modules/lodash-es/_defineProperty.js +11 -0
  126. package/dist/node_modules/lodash-es/_getPrototype.js +5 -0
  127. package/dist/node_modules/lodash-es/_initCloneObject.js +9 -0
  128. package/dist/node_modules/lodash-es/_isIndex.js +8 -0
  129. package/dist/node_modules/lodash-es/_isIterateeCall.js +13 -0
  130. package/dist/node_modules/lodash-es/_isMasked.js +2 -2
  131. package/dist/node_modules/lodash-es/_isPrototype.js +8 -0
  132. package/dist/node_modules/lodash-es/_nativeKeysIn.js +10 -0
  133. package/dist/node_modules/lodash-es/_nodeUtil.js +11 -0
  134. package/dist/node_modules/lodash-es/_overArg.js +8 -0
  135. package/dist/node_modules/lodash-es/_overRest.js +15 -0
  136. package/dist/node_modules/lodash-es/_safeGet.js +7 -0
  137. package/dist/node_modules/lodash-es/_setToString.js +6 -0
  138. package/dist/node_modules/lodash-es/_shortOut.js +16 -0
  139. package/dist/node_modules/lodash-es/_stackClear.js +7 -0
  140. package/dist/node_modules/lodash-es/_stackDelete.js +7 -0
  141. package/dist/node_modules/lodash-es/_stackGet.js +6 -0
  142. package/dist/node_modules/lodash-es/_stackHas.js +6 -0
  143. package/dist/node_modules/lodash-es/_stackSet.js +17 -0
  144. package/dist/node_modules/lodash-es/constant.js +8 -0
  145. package/dist/node_modules/lodash-es/identity.js +6 -0
  146. package/dist/node_modules/lodash-es/isArguments.js +10 -0
  147. package/dist/node_modules/lodash-es/isArray.js +4 -0
  148. package/dist/node_modules/lodash-es/isArrayLike.js +8 -0
  149. package/dist/node_modules/lodash-es/isArrayLikeObject.js +8 -0
  150. package/dist/node_modules/lodash-es/isBuffer.js +6 -0
  151. package/dist/node_modules/lodash-es/isLength.js +7 -0
  152. package/dist/node_modules/lodash-es/isObjectLike.js +6 -0
  153. package/dist/node_modules/lodash-es/isPlainObject.js +16 -0
  154. package/dist/node_modules/lodash-es/isTypedArray.js +7 -0
  155. package/dist/node_modules/lodash-es/keysIn.js +9 -0
  156. package/dist/node_modules/lodash-es/merge.js +8 -0
  157. package/dist/node_modules/lodash-es/stubFalse.js +6 -0
  158. package/dist/node_modules/lodash-es/toPlainObject.js +8 -0
  159. package/dist/node_modules/valibot/dist/index.js +190 -0
  160. package/dist/node_modules/vue-demi/lib/index.js +7 -0
  161. package/dist/services/templateLibraryApi.d.ts +7 -0
  162. package/dist/services/templateLibraryApi.js +87 -0
  163. package/dist/static/styles/components/loader.css.js +10 -0
  164. package/dist/static/styles/components/wide-panel.css.js +2 -2
  165. package/dist/stores/dynamic-content.d.ts +27 -0
  166. package/dist/stores/dynamic-content.js +23 -0
  167. package/dist/stores/editor.d.ts +176 -1
  168. package/dist/stores/editor.js +22 -4
  169. package/dist/stores/preview.d.ts +4 -55
  170. package/dist/stores/preview.js +24 -42
  171. package/dist/stores/save-as-template.d.ts +73 -0
  172. package/dist/stores/save-as-template.js +48 -0
  173. package/dist/utils/arrayUtil.d.ts +1 -0
  174. package/dist/utils/arrayUtil.js +10 -0
  175. package/dist/utils/base64.d.ts +1 -0
  176. package/dist/utils/base64.js +7 -0
  177. package/dist/utils/genericUtil.d.ts +3 -0
  178. package/dist/utils/genericUtil.js +11 -0
  179. package/dist/utils/templatePreparation.d.ts +4 -0
  180. package/dist/utils/templatePreparation.js +33 -0
  181. package/dist/utils/tooltipUtils.d.ts +2 -0
  182. package/dist/utils/tooltipUtils.js +11 -0
  183. package/package.json +3 -3
package/README.md CHANGED
@@ -57,6 +57,11 @@ export default {
57
57
  translationsPath: 'window.trans.en',
58
58
  htmlCompilerRules: [],
59
59
  ignoreDefaultHtmlCompilerRules: false,
60
+ features: {
61
+ dynamicContent: true,
62
+ saveAsTemplate: true,
63
+ versionHistory: true
64
+ }
60
65
  },
61
66
  dynamicContentModalVisible: false
62
67
  };
@@ -138,8 +143,13 @@ dynamicContent.close();
138
143
  ```typescript
139
144
  interface GuidoConfig {
140
145
  translationsPath: string;
141
- htmlCompilerRules: CompilerRule[];
142
- ignoreDefaultHtmlCompilerRules: boolean;
146
+ htmlCompilerRules?: CompilerRule[];
147
+ ignoreDefaultHtmlCompilerRules?: boolean;
148
+ features: {
149
+ dynamicContent: boolean;
150
+ saveAsTemplate: boolean;
151
+ versionHistory: boolean;
152
+ };
143
153
  }
144
154
  ```
145
155
 
@@ -148,6 +158,10 @@ interface GuidoConfig {
148
158
  | `translationsPath` | `string` | `'window.trans.en'` | JavaScript path to the translations object |
149
159
  | `htmlCompilerRules` | `CompilerRule[]` | `[]` | Additional compiler rules to apply to HTML content. See [HTML Compiler Rules](#-html-compiler-rules) section below |
150
160
  | `ignoreDefaultHtmlCompilerRules` | `boolean` | `false` | Skip default compiler rules and only use custom rules. Default rules: `src/config/compiler/htmlCompilerRules.ts` |
161
+ | `features` | `Features` | `{ dynamicContent: true, saveAsTemplate: true, versionHistory: true }` | Feature flags to enable/disable editor functionality |
162
+ | `features.dynamicContent` | `boolean` | `true` | Enable dynamic content insertion feature |
163
+ | `features.saveAsTemplate` | `boolean` | `true` | Enable save as template feature |
164
+ | `features.versionHistory` | `boolean` | `true` | Enable version history feature |
151
165
 
152
166
  ```typescript
153
167
  interface DynamicContent {
@@ -255,6 +269,11 @@ Define complex transformation logic with a custom processor function.
255
269
  ```typescript
256
270
  const guidoConfig = {
257
271
  translationsPath: 'window.trans.en',
272
+ features: {
273
+ dynamicContent: true,
274
+ saveAsTemplate: true,
275
+ versionHistory: false // Disable version history
276
+ },
258
277
  htmlCompilerRules: [
259
278
  {
260
279
  id: 'replace-domain',
@@ -283,6 +302,11 @@ const guidoConfig = {
283
302
  ```typescript
284
303
  const guidoConfig = {
285
304
  translationsPath: 'window.trans.en',
305
+ features: {
306
+ dynamicContent: true,
307
+ saveAsTemplate: true,
308
+ versionHistory: true
309
+ },
286
310
  ignoreDefaultHtmlCompilerRules: true, // Skip all default rules
287
311
  htmlCompilerRules: [
288
312
  // Only your custom rules will be applied
@@ -1,9 +1,21 @@
1
1
  import type { CompilerRule } from './html-compiler';
2
+ type Features = {
3
+ dynamicContent?: boolean;
4
+ saveAsTemplate?: boolean;
5
+ versionHistory?: boolean;
6
+ };
7
+ type Partner = {
8
+ partnerName: string;
9
+ productType: number;
10
+ messageType: number;
11
+ };
2
12
  export type GuidoConfig = {
3
13
  translationsPath: string;
4
14
  htmlCompilerRules?: CompilerRule[];
5
15
  ignoreDefaultHtmlCompilerRules?: boolean;
6
16
  emailHeader: EmailHeader;
17
+ partner?: Partner;
18
+ features?: Features;
7
19
  };
8
20
  export type DynamicContent = {
9
21
  value: string;
@@ -14,3 +26,19 @@ export interface EmailHeader {
14
26
  senderName: string;
15
27
  subject: string;
16
28
  }
29
+ export interface TooltipOptions {
30
+ id: string;
31
+ dynamicPosition: boolean;
32
+ staticPosition: 'top center' | 'top left' | 'top right' | 'bottom center' | 'bottom left' | 'bottom right' | 'right center' | 'right top' | 'right bottom' | 'left center' | 'left top' | 'left bottom';
33
+ iconStatus: boolean;
34
+ offset?: {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ preventXss?: boolean;
39
+ }
40
+ export type MergeTag = {
41
+ label: string;
42
+ value: string;
43
+ };
44
+ export {};
@@ -0,0 +1,29 @@
1
+ export interface MappedCategory {
2
+ value: string;
3
+ text: string;
4
+ }
5
+ export interface Category {
6
+ id: number;
7
+ name: string;
8
+ partnerId: number;
9
+ isStripo: boolean;
10
+ templatesCount: number;
11
+ }
12
+ export interface RecommendationCampaignUrls {
13
+ [key: string]: string;
14
+ }
15
+ export interface CreateTemplateRequest {
16
+ name: string;
17
+ categories: number[];
18
+ productId: number;
19
+ editorType: number;
20
+ messageType?: number;
21
+ content: string;
22
+ css?: string;
23
+ stripoConfig: string;
24
+ recommendationConfigs?: string;
25
+ recommendationCampaignUrls?: string;
26
+ unsubscriptionPreferencePages: number[];
27
+ unsubscriptionPreferencePageStatus: boolean;
28
+ isGuido: boolean;
29
+ }
@@ -1,13 +1,15 @@
1
1
  import type { DynamicContent, GuidoConfig } from '@@/Types/generic';
2
- import type { Template } from '@@/Types/stripo';
2
+ import type { SavedTemplateDetails } from '@@/Types/stripo';
3
3
  type __VLS_Props = {
4
4
  templateId: string;
5
5
  userId: string;
6
+ messageType?: number;
6
7
  partnerName?: string;
7
- productType?: string;
8
+ productType?: number;
8
9
  username?: string;
9
10
  html?: string;
10
11
  css?: string;
12
+ preselectedDynamicContentList: DynamicContent[];
11
13
  guidoConfig: GuidoConfig;
12
14
  };
13
15
  declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {
@@ -15,11 +17,12 @@ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__
15
17
  insert: (data: DynamicContent) => void;
16
18
  close: () => void;
17
19
  };
20
+ hasChanges: import("vue").ComputedRef<boolean>;
18
21
  }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
19
22
  "dynamic-content:open": (detail: DynamicContent | null) => void;
20
23
  back: () => void;
21
24
  "save:start": () => void;
22
- "save:complete": (template: Omit<Template, "forceRecreate">) => void;
25
+ "save:complete": (data: Omit<SavedTemplateDetails, "forceRecreate">) => void;
23
26
  }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
24
27
  export default _default;
25
28
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -1,18 +1,18 @@
1
- import o from "./Guido.vue2.js";
1
+ import i from "./Guido.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../_virtual/_plugin-vue2_normalizer.js";
4
- var s = function() {
5
- var i = this, e = i._self._c, r = i._self._setupProxy;
6
- return e("div", { staticClass: "guido-editor__wrapper" }, [e(r.HeaderWrapper), r.previewStore.isPreviewModeOpen ? e(r.PreviewContainer) : i._e(), e("div", { directives: [{ name: "show", rawName: "v-show", value: !r.previewStore.isPreviewModeOpen, expression: "!previewStore.isPreviewModeOpen" }], staticClass: "guido-editor__container", attrs: { id: "guido-editor" } })], 1);
7
- }, a = [], n = /* @__PURE__ */ t(
8
- o,
9
- s,
4
+ var a = function() {
5
+ var o = this, e = o._self._c, r = o._self._setupProxy;
6
+ return e("div", { staticClass: "guido-editor__wrapper" }, [e(r.HeaderWrapper), r.editorStore.isPreviewModeOpen ? e(r.PreviewContainer) : o._e(), e("div", { directives: [{ name: "show", rawName: "v-show", value: !r.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", attrs: { id: "guido-editor" } }), e(r.SaveAsTemplateDrawer), e(r.LoadingWrapper)], 1);
7
+ }, s = [], d = /* @__PURE__ */ t(
8
+ i,
10
9
  a,
10
+ s,
11
11
  !1,
12
12
  null,
13
- "5fe1cbdf"
13
+ "384396b5"
14
14
  );
15
- const c = n.exports;
15
+ const c = d.exports;
16
16
  export {
17
17
  c as default
18
18
  };
@@ -1,83 +1,102 @@
1
- import { defineComponent as S, defineAsyncComponent as D, onMounted as E } from "vue";
2
- import { provideGuidoActions as P } from "../composables/useGuidoActions.js";
3
- import { usePartner as _ } from "../composables/usePartner.js";
4
- import { useStripo as G } from "../composables/useStripo.js";
5
- import { DefaultUsername as I, DefaultGuidoConfig as k } from "../enums/defaults.js";
6
- import T from "./organisms/header/HeaderWrapper.vue.js";
7
- import { useStripoApi as A } from "../services/stripoApi.js";
8
- import { usePreviewStore as N } from "../stores/preview.js";
9
- const M = /* @__PURE__ */ S({
1
+ import { defineComponent as I, defineAsyncComponent as L, computed as P, onMounted as _, onUnmounted as k } from "vue";
2
+ import { provideGuidoActions as A } from "../composables/useGuidoActions.js";
3
+ import { usePartner as N } from "../composables/usePartner.js";
4
+ import { useStripo as U } from "../composables/useStripo.js";
5
+ import { DefaultUsername as W, DefaultMessageType as x, DefaultGuidoConfig as M } from "../enums/defaults.js";
6
+ import z from "./organisms/header/HeaderWrapper.vue.js";
7
+ import B from "./organisms/LoadingWrapper.vue.js";
8
+ import F from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
9
+ import { useStripoApi as H } from "../services/stripoApi.js";
10
+ import { useDynamicContentStore as K } from "../stores/dynamic-content.js";
11
+ import { useEditorStore as R } from "../stores/editor.js";
12
+ import { usePreviewStore as j } from "../stores/preview.js";
13
+ import q from "../node_modules/lodash-es/merge.js";
14
+ const ie = /* @__PURE__ */ I({
10
15
  __name: "Guido",
11
16
  props: {
12
17
  templateId: null,
13
18
  userId: null,
19
+ messageType: null,
14
20
  partnerName: null,
15
21
  productType: null,
16
22
  username: null,
17
23
  html: null,
18
24
  css: null,
25
+ preselectedDynamicContentList: null,
19
26
  guidoConfig: null
20
27
  },
21
28
  emits: ["dynamic-content:open", "back", "save:start", "save:complete"],
22
- setup(C, { expose: b, emit: o }) {
23
- const t = C, w = D(
29
+ setup(b, { expose: E, emit: t }) {
30
+ const o = b, T = L(
24
31
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
25
- ), { getPartnerName: n, getProductType: c } = _(), h = N(), {
26
- templateId: a,
27
- userId: r,
28
- guidoConfig: i,
29
- html: s = "",
30
- css: d = "",
31
- partnerName: l = n(),
32
- productType: u = c(),
33
- username: m = I
34
- } = t;
35
- window.GuidoConfig = {
36
- ...k,
37
- ...i
32
+ ), n = K(), a = R(), G = j(), c = P(() => a.hasChanges), r = o.preselectedDynamicContentList || [], { getPartnerName: m, getProductType: d } = N(), {
33
+ templateId: l,
34
+ userId: p,
35
+ guidoConfig: u,
36
+ html: g = "",
37
+ css: f = "",
38
+ partnerName: i = m(),
39
+ productType: s = d(),
40
+ messageType: y = x,
41
+ username: C = W
42
+ } = o;
43
+ window.GuidoConfig = q(M, u), window.GuidoConfig.partner = {
44
+ partnerName: i,
45
+ productType: s,
46
+ messageType: y
38
47
  };
39
- const { initPlugin: p } = G({ emailId: a, userId: r, username: m, partnerName: l, productType: u }), { getDefaultTemplate: f } = A();
40
- P({
48
+ const { initPlugin: v } = U({
49
+ emailId: l,
50
+ userId: p,
51
+ username: C,
52
+ partnerName: i,
53
+ productType: s,
54
+ preselectedDynamicContentList: r
55
+ }), { getDefaultTemplate: w } = H();
56
+ A({
41
57
  onBack: () => {
42
- console.debug("guido:back"), o("back");
58
+ console.debug("guido:back"), t("back");
43
59
  },
44
60
  onSaveStart: () => {
45
- console.debug("guido:save:start"), o("save:start");
61
+ console.debug("guido:save:start"), t("save:start");
46
62
  },
47
63
  onSaveComplete: (e) => {
48
- console.debug("guido:save:complete", e), o("save:complete", e);
64
+ console.debug("guido:save:complete", e), t("save:complete", e);
49
65
  }
50
66
  });
51
- const g = (e) => {
52
- console.debug("dynamic-content:close", e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
53
- }, v = () => {
67
+ const D = (e) => {
68
+ console.debug("dynamic-content:close", e), n.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
69
+ }, S = () => {
54
70
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
55
71
  };
56
- return E(async () => {
72
+ return _(async () => {
57
73
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
58
74
  try {
59
75
  let e = {
60
- html: s,
61
- css: d,
76
+ html: g,
77
+ css: f,
62
78
  forceRecreate: !0
63
79
  // TODO: It should be false for old templates. We will communicate with Stripo
64
80
  };
65
- e.html || (e = await f()), await p(e);
81
+ e.html || (e = await w()), await v(e), n.selectedDynamicContentList = r;
66
82
  } catch (e) {
67
83
  console.error("Failed to initialize Stripo editor:", e);
68
84
  }
69
85
  document.addEventListener("dynamic-content:open", (e) => {
70
- const y = e;
71
- console.debug("dynamic-content:open", y.detail), o("dynamic-content:open", y.detail);
86
+ const h = e;
87
+ console.debug("dynamic-content:open", h.detail), t("dynamic-content:open", h.detail);
72
88
  });
73
- }), b({
89
+ }), k(() => {
90
+ window.UIEditor.removeEditor();
91
+ }), E({
74
92
  dynamicContent: {
75
- insert: g,
76
- close: v
77
- }
78
- }), { __sfc: !0, PreviewContainer: w, props: t, getPartnerName: n, getProductType: c, previewStore: h, templateId: a, userId: r, guidoConfig: i, html: s, css: d, partnerName: l, productType: u, username: m, emit: o, initPlugin: p, getDefaultTemplate: f, insertDynamicContent: g, closeDynamicContent: v, HeaderWrapper: T };
93
+ insert: D,
94
+ close: S
95
+ },
96
+ hasChanges: c
97
+ }), { __sfc: !0, PreviewContainer: T, dynamicContentStore: n, props: o, editorStore: a, previewStore: G, hasChanges: c, preselectedDynamicContentList: r, getPartnerName: m, getProductType: d, templateId: l, userId: p, guidoConfig: u, html: g, css: f, partnerName: i, productType: s, messageType: y, username: C, emit: t, initPlugin: v, getDefaultTemplate: w, insertDynamicContent: D, closeDynamicContent: S, HeaderWrapper: z, LoadingWrapper: B, SaveAsTemplateDrawer: F };
79
98
  }
80
99
  });
81
100
  export {
82
- M as default
101
+ ie as default
83
102
  };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import t from "./LoadingWrapper.vue2.js";
2
+ /* empty css */
3
+ import a from "../../_virtual/_plugin-vue2_normalizer.js";
4
+ var s = function() {
5
+ var r = this, e = r._self._c, o = r._self._setupProxy;
6
+ return o.editorStore.loadingStatus ? e("div", { staticClass: "guido-loading__wrapper p-f l-0 z-4 d-f a-i-c j-c-c w-1 f-g-1 b-c-36" }, [e(o.InLoading, { attrs: { "color-class": "i-c-7", size: "32" } })], 1) : r._e();
7
+ }, n = [], _ = /* @__PURE__ */ a(
8
+ t,
9
+ s,
10
+ n,
11
+ !1,
12
+ null,
13
+ "cb88f0fb"
14
+ );
15
+ const l = _.exports;
16
+ export {
17
+ l as default
18
+ };
@@ -0,0 +1,12 @@
1
+ import { defineComponent as o } from "vue";
2
+ import { useEditorStore as r } from "../../stores/editor.js";
3
+ import { InLoading as t } from "@useinsider/design-system-vue";
4
+ const s = /* @__PURE__ */ o({
5
+ __name: "LoadingWrapper",
6
+ setup(e) {
7
+ return { __sfc: !0, editorStore: r(), InLoading: t };
8
+ }
9
+ });
10
+ export {
11
+ s as default
12
+ };
@@ -1,19 +1,19 @@
1
- import i from "./PreviewContainer.vue2.js";
2
- import o from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var t = function() {
4
- var s = this, e = s._self._c, r = s._self._setupProxy;
5
- return e("div", { staticClass: "d-f f-d-c h-1 b-c-5 bor-r-2 pb-5" }, [e("div", { staticClass: "f-g-1 d-f p-5 o-a g-4 min-h-600" }, [r.previewStore.isLoading ? [e("div", { staticClass: "d-f a-i-c j-c-c w-1 h-1 f-g-1" }, [e(r.InLoading, { attrs: { "color-class": "i-c-1", size: "32" } })], 1)] : [e(r.DesktopPreview, { staticClass: "f-g-1 min-w-0" }), e(r.MobilePreview, { staticClass: "f-0 min-w-a" })]], 2), r.previewStore.isAMPErrorModalVisible ? e(r.AmpErrorModal, { on: { close: function(l) {
6
- return r.previewStore.closeErrorModal();
7
- } } }) : s._e()], 1);
8
- }, a = [], n = /* @__PURE__ */ o(
1
+ import s from "./PreviewContainer.vue2.js";
2
+ import t from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var i = function() {
4
+ var o = this, r = o._self._c, e = o._self._setupProxy;
5
+ return e.previewStore.isLoaded ? r("div", { staticClass: "d-f f-d-c h-1 b-c-5 bor-r-2 pb-5" }, [r("div", { staticClass: "f-g-1 d-f p-5 o-a g-4 min-h-600" }, [r(e.DesktopPreview, { staticClass: "f-g-1 min-w-0" }), r(e.MobilePreview, { staticClass: "f-0 min-w-a" })], 1), e.previewStore.isAMPErrorModalVisible ? r(e.AmpErrorModal, { on: { close: function(_) {
6
+ return e.previewStore.closeErrorModal();
7
+ } } }) : o._e()], 1) : o._e();
8
+ }, n = [], a = /* @__PURE__ */ t(
9
+ s,
9
10
  i,
10
- t,
11
- a,
11
+ n,
12
12
  !1,
13
13
  null,
14
14
  null
15
15
  );
16
- const d = n.exports;
16
+ const p = a.exports;
17
17
  export {
18
- d as default
18
+ p as default
19
19
  };
@@ -1,19 +1,18 @@
1
1
  import { defineComponent as r, onMounted as t } from "vue";
2
2
  import { usePreviewMode as i } from "../../../composables/usePreviewMode.js";
3
3
  import { usePreviewStore as m } from "../../../stores/preview.js";
4
- import { InLoading as n } from "@useinsider/design-system-vue";
5
4
  import p from "./amp/AmpErrorModal.vue.js";
6
- import f from "./desktop-preview/DesktopPreview.vue.js";
5
+ import n from "./desktop-preview/DesktopPreview.vue.js";
7
6
  import s from "./mobile-preview/MobilePreview.vue.js";
8
- const l = /* @__PURE__ */ r({
7
+ const P = /* @__PURE__ */ r({
9
8
  __name: "PreviewContainer",
10
- setup(a) {
11
- const { loadPreviewData: o } = i(), e = m();
9
+ setup(f) {
10
+ const { loadPreviewData: e } = i(), o = m();
12
11
  return t(() => {
13
- o();
14
- }), { __sfc: !0, loadPreviewData: o, previewStore: e, InLoading: n, AmpErrorModal: p, DesktopPreview: f, MobilePreview: s };
12
+ e();
13
+ }), { __sfc: !0, loadPreviewData: e, previewStore: o, AmpErrorModal: p, DesktopPreview: n, MobilePreview: s };
15
14
  }
16
15
  });
17
16
  export {
18
- l as default
17
+ P as default
19
18
  };
@@ -14,7 +14,7 @@ var n = function() {
14
14
  l,
15
15
  !1,
16
16
  null,
17
- "cfb613b7"
17
+ "7a09985c"
18
18
  );
19
19
  const _ = d.exports;
20
20
  export {
@@ -14,9 +14,9 @@ var s = function() {
14
14
  i,
15
15
  !1,
16
16
  null,
17
- "9c6e7ff0"
17
+ "2dd60b0c"
18
18
  );
19
- const m = n.exports;
19
+ const d = n.exports;
20
20
  export {
21
- m as default
21
+ d as default
22
22
  };
@@ -1,30 +1,31 @@
1
- import { defineComponent as f, ref as r, onMounted as p, nextTick as d, onBeforeUnmount as h } from "vue";
2
- import { usePreviewStore as v } from "../../../../stores/preview.js";
3
- import { InContainer as g } from "@useinsider/design-system-vue";
4
- import _ from "./EmailHeaderInfo.vue.js";
5
- import R from "./EmailSizeIndicator.vue.js";
6
- const I = /* @__PURE__ */ f({
1
+ import { defineComponent as d, ref as r, onMounted as h, onBeforeUnmount as v, nextTick as g } from "vue";
2
+ import { usePreviewStore as _ } from "../../../../stores/preview.js";
3
+ import { InContainer as I } from "@useinsider/design-system-vue";
4
+ import R from "./EmailHeaderInfo.vue.js";
5
+ import C from "./EmailSizeIndicator.vue.js";
6
+ const B = /* @__PURE__ */ d({
7
7
  __name: "DesktopPreview",
8
- setup(C) {
9
- const t = r(), i = r("400px"), a = r(!1), l = v(), n = () => {
8
+ setup(H) {
9
+ const t = r(), i = r("400px"), a = r(!1), m = _(), n = () => {
10
10
  if (!t.value)
11
11
  return;
12
12
  const o = t.value.querySelector(".in-container");
13
13
  if (!o)
14
14
  return;
15
- const s = o.getBoundingClientRect(), c = o.querySelector(".in-container__header"), u = c ? c.getBoundingClientRect().height : 0, m = s.height - u;
16
- i.value = `${m}px`;
15
+ const u = o.getBoundingClientRect(), s = o.querySelector(".in-container__header"), f = s ? s.getBoundingClientRect().height : 0, p = u.height - f;
16
+ i.value = `${p}px`;
17
17
  };
18
18
  let e = null;
19
- return p(() => {
20
- n(), t.value && (e = new ResizeObserver(n), e.observe(t.value), d(() => {
19
+ const c = () => {
20
+ n(), t.value && (e = new ResizeObserver(n), e.observe(t.value), g(() => {
21
21
  a.value = !0;
22
22
  }));
23
- }), h(() => {
23
+ }, l = () => {
24
24
  e == null || e.disconnect();
25
- }), { __sfc: !0, containerRef: t, iframeHeight: i, isContainerReady: a, previewStore: l, calculateIframeHeight: n, resizeObserver: e, InContainer: g, EmailHeaderInfo: _, EmailSizeIndicator: R };
25
+ };
26
+ return h(c), v(l), { __sfc: !0, containerRef: t, iframeHeight: i, isContainerReady: a, previewStore: m, calculateIframeHeight: n, resizeObserver: e, initIframe: c, cleanIframe: l, InContainer: I, EmailHeaderInfo: R, EmailSizeIndicator: C };
26
27
  }
27
28
  });
28
29
  export {
29
- I as default
30
+ B as default
30
31
  };
@@ -1,18 +1,18 @@
1
- import { defineComponent as m, computed as t } from "vue";
1
+ import { defineComponent as m, computed as o } from "vue";
2
2
  import { useConfig as a } from "../../../../composables/useConfig.js";
3
- import { useTranslations as c } from "../../../../composables/useTranslations.js";
4
- import { InIcons as i } from "@useinsider/design-system-vue";
3
+ import { useTranslations as i } from "../../../../composables/useTranslations.js";
4
+ import { InIcons as c } from "@useinsider/design-system-vue";
5
5
  const l = /* @__PURE__ */ m({
6
6
  __name: "EmailHeaderInfo",
7
7
  setup(f) {
8
- const { config: n } = a(), s = c(), o = t(() => {
8
+ const { config: t } = a(), n = i(), s = o(() => {
9
9
  var e;
10
- return ((e = n.emailHeader) == null ? void 0 : e.senderName) || `(${s("settings.sender-name")})`;
11
- }), r = t(() => {
10
+ return ((e = t.emailHeader) == null ? void 0 : e.senderName) || n("settings.sender-name");
11
+ }), r = o(() => {
12
12
  var e;
13
- return ((e = n.emailHeader) == null ? void 0 : e.subject) || s("newsletter.subject");
13
+ return ((e = t.emailHeader) == null ? void 0 : e.subject) || n("email-editor.default-subject");
14
14
  });
15
- return { __sfc: !0, config: n, trans: s, senderName: o, subject: r, InIcons: i };
15
+ return { __sfc: !0, config: t, trans: n, senderName: s, subject: r, InIcons: c };
16
16
  }
17
17
  });
18
18
  export {
@@ -10,7 +10,7 @@ var o = function() {
10
10
  a,
11
11
  !1,
12
12
  null,
13
- "bd212ce2"
13
+ "c2adc57d"
14
14
  );
15
15
  const m = n.exports;
16
16
  export {
@@ -1,20 +1,23 @@
1
1
  import { defineComponent as c, ref as n, computed as l, watch as u } from "vue";
2
2
  import { useTranslations as p } from "../../../../composables/useTranslations.js";
3
- import { usePreviewStore as v } from "../../../../stores/preview.js";
4
- import { InTooltip as _, InProgress as f } from "@useinsider/design-system-vue";
3
+ import { usePreviewStore as _ } from "../../../../stores/preview.js";
4
+ import { InTooltip as v, InProgress as f } from "@useinsider/design-system-vue";
5
5
  const S = /* @__PURE__ */ c({
6
6
  __name: "EmailSizeIndicator",
7
7
  setup(w) {
8
- const t = v(), o = 102, e = n(0), s = n({
8
+ const t = _(), o = 102, e = n(0), s = n({
9
9
  type: "success",
10
10
  value: 0
11
11
  }), a = l(() => `~${e.value} KB`), r = () => {
12
12
  const m = new Blob([t.previewHtml]).size;
13
- e.value = Math.round(m / 1024), s.value.value = Math.min(e.value, o), s.value.type = e.value < o ? "success" : "warning";
13
+ e.value = Math.round(m / 1024), s.value = {
14
+ type: e.value < o ? "success" : "warning",
15
+ value: Math.min(e.value, o)
16
+ };
14
17
  }, i = p();
15
18
  return u(() => t.previewHtml, () => {
16
19
  r();
17
- }, { immediate: !0 }), { __sfc: !0, previewStore: t, MAX_EMAIL_SIZE_IN_KB: o, htmlKB: e, progress: s, htmlSize: a, calculateProgress: r, trans: i, InProgress: f, InTooltip: _ };
20
+ }, { immediate: !0 }), { __sfc: !0, previewStore: t, MAX_EMAIL_SIZE_IN_KB: o, htmlKB: e, progress: s, htmlSize: a, calculateProgress: r, trans: i, InProgress: f, InTooltip: v };
18
21
  }
19
22
  });
20
23
  export {
@@ -1,20 +1,20 @@
1
1
  import e from "./InboxView.vue2.js";
2
2
  /* empty css */
3
- import r from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
- var a = function() {
3
+ import a from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var r = function() {
5
5
  var s = this, t = s._self._c, c = s._self._setupProxy;
6
6
  return t("div", { staticClass: "p-y-13 p-x-3 bor-b-w-1 bor-b-s-s bor-b-c-50 cur-p b-c-4 b-c-h-5 p-3", on: { click: function(_) {
7
7
  return c.emit("open-email");
8
8
  } } }, [t("div", { staticClass: "d-f j-c-s-b a-i-c w-1" }, [t("div", { staticClass: "f-g-1 min-w-0-s" }, [t("div", { staticClass: "f-s-1 f-w-600 t-c-53 l-h-1 mb-12 cropped-text" }, [s._v(" " + s._s(c.senderName) + " ")]), t("div", { staticClass: "f-s-12 f-w-400 t-c-55 l-h-1 cropped-text" }, [s._v(" " + s._s(c.subject) + " ")])]), t("div", { staticClass: "f-sh-0 ml-2 f-s-12 f-w-400 t-c-55 l-h-1" }, [s._v(" " + s._s(c.trans("product-catalog.today")) + " ")]), t(c.InIcons, { staticClass: "i-c-52", attrs: { name: "line-chevron-right" } })], 1)]);
9
- }, i = [], n = /* @__PURE__ */ r(
9
+ }, i = [], n = /* @__PURE__ */ a(
10
10
  e,
11
- a,
11
+ r,
12
12
  i,
13
13
  !1,
14
14
  null,
15
- "d3bb77b4"
15
+ "f20b3a9b"
16
16
  );
17
- const d = n.exports;
17
+ const m = n.exports;
18
18
  export {
19
- d as default
19
+ m as default
20
20
  };
@@ -1,19 +1,19 @@
1
- import { defineComponent as a, computed as t } from "vue";
1
+ import { defineComponent as a, computed as o } from "vue";
2
2
  import { useConfig as i } from "../../../../composables/useConfig.js";
3
3
  import { useTranslations as c } from "../../../../composables/useTranslations.js";
4
- import { InIcons as p } from "@useinsider/design-system-vue";
4
+ import { InIcons as f } from "@useinsider/design-system-vue";
5
5
  const b = /* @__PURE__ */ a({
6
6
  __name: "InboxView",
7
7
  emits: ["open-email"],
8
- setup(f, { emit: o }) {
9
- const n = c(), { config: s } = i(), r = t(() => {
8
+ setup(p, { emit: s }) {
9
+ const t = c(), { config: n } = i(), r = o(() => {
10
10
  var e;
11
- return ((e = s.emailHeader) == null ? void 0 : e.senderName) || `(${n("settings.sender-name")})`;
12
- }), m = t(() => {
11
+ return ((e = n.emailHeader) == null ? void 0 : e.senderName) || t("settings.sender-name");
12
+ }), m = o(() => {
13
13
  var e;
14
- return ((e = s.emailHeader) == null ? void 0 : e.subject) || n("newsletter.subject");
14
+ return ((e = n.emailHeader) == null ? void 0 : e.subject) || t("email-editor.default-subject");
15
15
  });
16
- return { __sfc: !0, emit: o, trans: n, config: s, senderName: r, subject: m, InIcons: p };
16
+ return { __sfc: !0, emit: s, trans: t, config: n, senderName: r, subject: m, InIcons: f };
17
17
  }
18
18
  });
19
19
  export {