@useinsider/guido 1.0.0-beta.cf41937 → 1.0.0-beta.d5da5b3

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 (161) hide show
  1. package/README.md +2 -26
  2. package/dist/@types/generic.d.ts +1 -24
  3. package/dist/components/Guido.vue.d.ts +3 -6
  4. package/dist/components/Guido.vue.js +8 -8
  5. package/dist/components/Guido.vue2.js +39 -52
  6. package/dist/components/organisms/design-preview/AmpErrorModal.vue.d.ts +16 -0
  7. package/dist/components/organisms/design-preview/AmpErrorModal.vue.js +21 -0
  8. package/dist/components/organisms/design-preview/AmpErrorModal.vue2.js +31 -0
  9. package/dist/components/organisms/design-preview/DesktopPreview.vue.d.ts +16 -0
  10. package/dist/components/organisms/design-preview/DesktopPreview.vue.js +22 -0
  11. package/dist/components/organisms/design-preview/DesktopPreview.vue2.js +29 -0
  12. package/dist/components/organisms/design-preview/EmailPreview.vue.d.ts +16 -0
  13. package/dist/components/organisms/design-preview/EmailPreview.vue.js +17 -0
  14. package/dist/components/organisms/design-preview/EmailPreview.vue2.js +40 -0
  15. package/dist/components/organisms/design-preview/EmailView.vue.d.ts +18 -0
  16. package/dist/components/organisms/{email-preview/mobile-preview/ContentView.vue.js → design-preview/EmailView.vue.js} +7 -7
  17. package/dist/components/organisms/design-preview/EmailView.vue2.js +24 -0
  18. package/dist/components/organisms/design-preview/InboxView.vue.d.ts +17 -0
  19. package/dist/components/organisms/design-preview/InboxView.vue.js +19 -0
  20. package/dist/components/organisms/design-preview/InboxView.vue2.js +23 -0
  21. package/dist/components/organisms/design-preview/MobilePreview.vue.d.ts +17 -0
  22. package/dist/components/organisms/design-preview/MobilePreview.vue.js +17 -0
  23. package/dist/components/organisms/design-preview/MobilePreview.vue2.js +23 -0
  24. package/dist/components/organisms/header/AmpToggle.vue.js +17 -0
  25. package/dist/components/organisms/header/AmpToggle.vue2.js +48 -0
  26. package/dist/components/organisms/header/MiddleSlot.vue.js +5 -5
  27. package/dist/components/organisms/header/MiddleSlot.vue2.js +21 -16
  28. package/dist/components/organisms/header/RightSlot.vue.js +9 -10
  29. package/dist/components/organisms/header/RightSlot.vue2.js +22 -26
  30. package/dist/components/organisms/header/ViewOptions.vue.js +4 -4
  31. package/dist/components/organisms/header/ViewOptions.vue2.js +10 -30
  32. package/dist/components/organisms/header/version-history/ViewOptions.vue.js +3 -3
  33. package/dist/components/organisms/header/version-history/ViewOptions.vue2.js +16 -34
  34. package/dist/composables/useActionsApi.d.ts +0 -2
  35. package/dist/composables/useActionsApi.js +36 -62
  36. package/dist/composables/useHtmlCompiler.js +8 -9
  37. package/dist/composables/useMobileGmailFit.d.ts +5 -0
  38. package/dist/composables/useMobileGmailFit.js +69 -0
  39. package/dist/composables/usePreviewMode.d.ts +4 -3
  40. package/dist/composables/usePreviewMode.js +16 -28
  41. package/dist/composables/useStripo.js +17 -23
  42. package/dist/composables/useTranslations.js +2 -3
  43. package/dist/enums/defaults.js +5 -14
  44. package/dist/enums/emailPreview.d.ts +3 -0
  45. package/dist/enums/emailPreview.js +6 -0
  46. package/dist/enums/gmailMobilePreview.d.ts +7 -0
  47. package/dist/enums/gmailMobilePreview.js +17 -0
  48. package/dist/extensions/DynamicContent/dynamic-content.js +15 -13
  49. package/dist/guido.css +1 -1
  50. package/dist/inbox-mockup.svg +39 -0
  51. package/dist/phone-mockup.svg +31 -0
  52. package/dist/stores/editor.d.ts +3 -0
  53. package/dist/stores/editor.js +6 -3
  54. package/package.json +1 -1
  55. package/dist/components/organisms/email-preview/PreviewContainer.vue.d.ts +0 -2
  56. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +0 -19
  57. package/dist/components/organisms/email-preview/PreviewContainer.vue2.js +0 -19
  58. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -4
  59. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +0 -22
  60. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +0 -30
  61. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +0 -19
  62. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +0 -29
  63. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -2
  64. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +0 -22
  65. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +0 -31
  66. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -2
  67. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  68. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  69. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -2
  70. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +0 -18
  71. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +0 -25
  72. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -4
  73. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue2.js +0 -23
  74. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -4
  75. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +0 -20
  76. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue2.js +0 -21
  77. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -2
  78. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +0 -17
  79. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +0 -22
  80. package/dist/components/wrappers/WpModal.vue.d.ts +0 -65
  81. package/dist/components/wrappers/WpModal.vue.js +0 -27
  82. package/dist/components/wrappers/WpModal.vue2.js +0 -22
  83. package/dist/composables/useCodeEditorApi.d.ts +0 -4
  84. package/dist/composables/useCodeEditorApi.js +0 -11
  85. package/dist/composables/useConfig.d.ts +0 -4
  86. package/dist/composables/useConfig.js +0 -7
  87. package/dist/composables/useResponsivePreview.d.ts +0 -5
  88. package/dist/composables/useResponsivePreview.js +0 -86
  89. package/dist/enums/preview.d.ts +0 -13
  90. package/dist/enums/preview.js +0 -23
  91. package/dist/node_modules/lodash-es/_Stack.js +0 -18
  92. package/dist/node_modules/lodash-es/_Uint8Array.js +0 -5
  93. package/dist/node_modules/lodash-es/_apply.js +0 -16
  94. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +0 -19
  95. package/dist/node_modules/lodash-es/_assignMergeValue.js +0 -8
  96. package/dist/node_modules/lodash-es/_assignValue.js +0 -10
  97. package/dist/node_modules/lodash-es/_baseAssignValue.js +0 -12
  98. package/dist/node_modules/lodash-es/_baseCreate.js +0 -17
  99. package/dist/node_modules/lodash-es/_baseFor.js +0 -5
  100. package/dist/node_modules/lodash-es/_baseIsArguments.js +0 -9
  101. package/dist/node_modules/lodash-es/_baseIsTypedArray.js +0 -12
  102. package/dist/node_modules/lodash-es/_baseKeysIn.js +0 -15
  103. package/dist/node_modules/lodash-es/_baseMerge.js +0 -20
  104. package/dist/node_modules/lodash-es/_baseMergeDeep.js +0 -31
  105. package/dist/node_modules/lodash-es/_baseRest.js +0 -9
  106. package/dist/node_modules/lodash-es/_baseSetToString.js +0 -14
  107. package/dist/node_modules/lodash-es/_baseTimes.js +0 -8
  108. package/dist/node_modules/lodash-es/_baseUnary.js +0 -8
  109. package/dist/node_modules/lodash-es/_cloneArrayBuffer.js +0 -8
  110. package/dist/node_modules/lodash-es/_cloneBuffer.js +0 -9
  111. package/dist/node_modules/lodash-es/_cloneTypedArray.js +0 -8
  112. package/dist/node_modules/lodash-es/_copyArray.js +0 -9
  113. package/dist/node_modules/lodash-es/_copyObject.js +0 -14
  114. package/dist/node_modules/lodash-es/_createAssigner.js +0 -15
  115. package/dist/node_modules/lodash-es/_createBaseFor.js +0 -13
  116. package/dist/node_modules/lodash-es/_defineProperty.js +0 -11
  117. package/dist/node_modules/lodash-es/_getPrototype.js +0 -5
  118. package/dist/node_modules/lodash-es/_initCloneObject.js +0 -9
  119. package/dist/node_modules/lodash-es/_isIndex.js +0 -8
  120. package/dist/node_modules/lodash-es/_isIterateeCall.js +0 -13
  121. package/dist/node_modules/lodash-es/_isPrototype.js +0 -8
  122. package/dist/node_modules/lodash-es/_nativeKeysIn.js +0 -10
  123. package/dist/node_modules/lodash-es/_nodeUtil.js +0 -11
  124. package/dist/node_modules/lodash-es/_overArg.js +0 -8
  125. package/dist/node_modules/lodash-es/_overRest.js +0 -15
  126. package/dist/node_modules/lodash-es/_safeGet.js +0 -7
  127. package/dist/node_modules/lodash-es/_setToString.js +0 -6
  128. package/dist/node_modules/lodash-es/_shortOut.js +0 -16
  129. package/dist/node_modules/lodash-es/_stackClear.js +0 -7
  130. package/dist/node_modules/lodash-es/_stackDelete.js +0 -7
  131. package/dist/node_modules/lodash-es/_stackGet.js +0 -6
  132. package/dist/node_modules/lodash-es/_stackHas.js +0 -6
  133. package/dist/node_modules/lodash-es/_stackSet.js +0 -17
  134. package/dist/node_modules/lodash-es/constant.js +0 -8
  135. package/dist/node_modules/lodash-es/identity.js +0 -6
  136. package/dist/node_modules/lodash-es/isArguments.js +0 -10
  137. package/dist/node_modules/lodash-es/isArray.js +0 -4
  138. package/dist/node_modules/lodash-es/isArrayLike.js +0 -8
  139. package/dist/node_modules/lodash-es/isArrayLikeObject.js +0 -8
  140. package/dist/node_modules/lodash-es/isBuffer.js +0 -6
  141. package/dist/node_modules/lodash-es/isLength.js +0 -7
  142. package/dist/node_modules/lodash-es/isObjectLike.js +0 -6
  143. package/dist/node_modules/lodash-es/isPlainObject.js +0 -16
  144. package/dist/node_modules/lodash-es/isTypedArray.js +0 -7
  145. package/dist/node_modules/lodash-es/keysIn.js +0 -9
  146. package/dist/node_modules/lodash-es/merge.js +0 -8
  147. package/dist/node_modules/lodash-es/stubFalse.js +0 -6
  148. package/dist/node_modules/lodash-es/toPlainObject.js +0 -8
  149. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  150. package/dist/static/assets/phone-mockup.svg.js +0 -4
  151. package/dist/stores/dynamic-content.d.ts +0 -27
  152. package/dist/stores/dynamic-content.js +0 -23
  153. package/dist/stores/preview.d.ts +0 -46
  154. package/dist/stores/preview.js +0 -53
  155. package/dist/utils/arrayUtil.d.ts +0 -1
  156. package/dist/utils/arrayUtil.js +0 -10
  157. package/dist/utils/genericUtil.d.ts +0 -2
  158. package/dist/utils/genericUtil.js +0 -7
  159. package/dist/utils/tooltipUtils.d.ts +0 -2
  160. package/dist/utils/tooltipUtils.js +0 -11
  161. /package/dist/components/organisms/{email-preview/amp → header}/AmpToggle.vue.d.ts +0 -0
package/README.md CHANGED
@@ -57,11 +57,6 @@ 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
- }
65
60
  },
66
61
  dynamicContentModalVisible: false
67
62
  };
@@ -143,13 +138,8 @@ dynamicContent.close();
143
138
  ```typescript
144
139
  interface GuidoConfig {
145
140
  translationsPath: string;
146
- htmlCompilerRules?: CompilerRule[];
147
- ignoreDefaultHtmlCompilerRules?: boolean;
148
- features: {
149
- dynamicContent: boolean;
150
- saveAsTemplate: boolean;
151
- versionHistory: boolean;
152
- };
141
+ htmlCompilerRules: CompilerRule[];
142
+ ignoreDefaultHtmlCompilerRules: boolean;
153
143
  }
154
144
  ```
155
145
 
@@ -158,10 +148,6 @@ interface GuidoConfig {
158
148
  | `translationsPath` | `string` | `'window.trans.en'` | JavaScript path to the translations object |
159
149
  | `htmlCompilerRules` | `CompilerRule[]` | `[]` | Additional compiler rules to apply to HTML content. See [HTML Compiler Rules](#-html-compiler-rules) section below |
160
150
  | `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 |
165
151
 
166
152
  ```typescript
167
153
  interface DynamicContent {
@@ -269,11 +255,6 @@ Define complex transformation logic with a custom processor function.
269
255
  ```typescript
270
256
  const guidoConfig = {
271
257
  translationsPath: 'window.trans.en',
272
- features: {
273
- dynamicContent: true,
274
- saveAsTemplate: true,
275
- versionHistory: false // Disable version history
276
- },
277
258
  htmlCompilerRules: [
278
259
  {
279
260
  id: 'replace-domain',
@@ -302,11 +283,6 @@ const guidoConfig = {
302
283
  ```typescript
303
284
  const guidoConfig = {
304
285
  translationsPath: 'window.trans.en',
305
- features: {
306
- dynamicContent: true,
307
- saveAsTemplate: true,
308
- versionHistory: true
309
- },
310
286
  ignoreDefaultHtmlCompilerRules: true, // Skip all default rules
311
287
  htmlCompilerRules: [
312
288
  // Only your custom rules will be applied
@@ -1,38 +1,15 @@
1
1
  import type { CompilerRule } from './html-compiler';
2
- type Features = {
3
- dynamicContent?: boolean;
4
- saveAsTemplate?: boolean;
5
- versionHistory?: boolean;
6
- };
7
2
  export type GuidoConfig = {
8
3
  translationsPath: string;
9
4
  htmlCompilerRules?: CompilerRule[];
10
5
  ignoreDefaultHtmlCompilerRules?: boolean;
11
- emailHeader: EmailHeader;
12
- features?: Features;
13
6
  };
14
7
  export type DynamicContent = {
15
8
  value: string;
16
9
  text: string;
17
10
  fallback?: string;
18
11
  };
19
- export interface EmailHeader {
12
+ export interface EmailData {
20
13
  senderName: string;
21
14
  subject: string;
22
15
  }
23
- export interface TooltipOptions {
24
- id: string;
25
- dynamicPosition: boolean;
26
- 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';
27
- iconStatus: boolean;
28
- offset?: {
29
- x: number;
30
- y: number;
31
- };
32
- preventXss?: boolean;
33
- }
34
- export type MergeTag = {
35
- label: string;
36
- value: string;
37
- };
38
- export {};
@@ -1,4 +1,4 @@
1
- import type { DynamicContent, GuidoConfig } from '@@/Types/generic';
1
+ import type { DynamicContent, GuidoConfig, EmailData } from '@@/Types/generic';
2
2
  import type { Template } from '@@/Types/stripo';
3
3
  type __VLS_Props = {
4
4
  templateId: string;
@@ -8,8 +8,8 @@ type __VLS_Props = {
8
8
  username?: string;
9
9
  html?: string;
10
10
  css?: string;
11
- preselectedDynamicContentList: DynamicContent[];
12
11
  guidoConfig: GuidoConfig;
12
+ emailData?: EmailData;
13
13
  };
14
14
  declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {
15
15
  dynamicContent: {
@@ -20,10 +20,7 @@ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__
20
20
  "dynamic-content:open": (detail: DynamicContent | null) => void;
21
21
  back: () => void;
22
22
  "save:start": () => void;
23
- "save:complete": (data: {
24
- template: Omit<Template, "forceRecreate">;
25
- dynamicContentList: DynamicContent[];
26
- }) => void;
23
+ "save:complete": (template: Omit<Template, "forceRecreate">) => void;
27
24
  }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
28
25
  export default _default;
29
26
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -1,18 +1,18 @@
1
1
  import o from "./Guido.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../_virtual/_plugin-vue2_normalizer.js";
4
- var a = 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
- }, s = [], n = /* @__PURE__ */ t(
4
+ var s = function() {
5
+ var i = this, r = i._self._c, e = i._self._setupProxy;
6
+ return r("div", { staticClass: "guido-editor__wrapper" }, [r(e.HeaderWrapper), r(e.EmailPreview, { directives: [{ name: "show", rawName: "v-show", value: e.editorStore.isPreviewModeOpen, expression: "editorStore.isPreviewModeOpen" }], attrs: { "email-data": i.emailData, "is-visible": e.editorStore.isPreviewModeOpen } }), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.editorStore.isPreviewModeOpen, expression: "!editorStore.isPreviewModeOpen" }], staticClass: "guido-editor__container", attrs: { id: "guido-editor" } })], 1);
7
+ }, a = [], d = /* @__PURE__ */ t(
8
8
  o,
9
- a,
10
9
  s,
10
+ a,
11
11
  !1,
12
12
  null,
13
- "baabdaaa"
13
+ "7836f831"
14
14
  );
15
- const c = n.exports;
15
+ const m = d.exports;
16
16
  export {
17
- c as default
17
+ m as default
18
18
  };
@@ -1,14 +1,13 @@
1
- import { defineComponent as L, defineAsyncComponent as E, onMounted as P } from "vue";
2
- import { provideGuidoActions as _ } from "../composables/useGuidoActions.js";
3
- import { usePartner as G } from "../composables/usePartner.js";
4
- import { useStripo as I } from "../composables/useStripo.js";
5
- import { DefaultUsername as k, DefaultGuidoConfig as T } from "../enums/defaults.js";
6
- import A from "./organisms/header/HeaderWrapper.vue.js";
7
- import { useStripoApi as N } from "../services/stripoApi.js";
8
- import { useDynamicContentStore as x } from "../stores/dynamic-content.js";
9
- import { usePreviewStore as W } from "../stores/preview.js";
10
- import z from "../node_modules/lodash-es/merge.js";
11
- const O = /* @__PURE__ */ L({
1
+ import { defineComponent as w, onMounted as E } from "vue";
2
+ import { provideGuidoActions as S } from "../composables/useGuidoActions.js";
3
+ import { usePartner as D } from "../composables/usePartner.js";
4
+ import { useStripo as _ } from "../composables/useStripo.js";
5
+ import { DefaultUsername as G, DefaultGuidoConfig as I } from "../enums/defaults.js";
6
+ import P from "./organisms/design-preview/EmailPreview.vue.js";
7
+ import k from "./organisms/header/HeaderWrapper.vue.js";
8
+ import { useStripoApi as T } from "../services/stripoApi.js";
9
+ import { useEditorStore as N } from "../stores/editor.js";
10
+ const M = /* @__PURE__ */ w({
12
11
  __name: "Guido",
13
12
  props: {
14
13
  templateId: null,
@@ -18,33 +17,27 @@ const O = /* @__PURE__ */ L({
18
17
  username: null,
19
18
  html: null,
20
19
  css: null,
21
- preselectedDynamicContentList: null,
22
- guidoConfig: null
20
+ guidoConfig: null,
21
+ emailData: null
23
22
  },
24
23
  emits: ["dynamic-content:open", "back", "save:start", "save:complete"],
25
- setup(S, { expose: b, emit: t }) {
26
- const o = S, w = E(
27
- () => import("./organisms/email-preview/PreviewContainer.vue.js")
28
- ), n = x(), c = o.preselectedDynamicContentList || [], { getPartnerName: i, getProductType: s } = G(), h = W(), {
29
- templateId: a,
24
+ setup(C, { expose: b, emit: t }) {
25
+ const o = C, { getPartnerName: n, getProductType: a } = D(), {
26
+ templateId: c,
30
27
  userId: r,
31
- guidoConfig: m,
32
- html: d = "",
28
+ guidoConfig: i,
29
+ html: s = "",
33
30
  css: l = "",
34
- partnerName: u = i(),
35
- productType: p = s(),
36
- username: y = k
31
+ partnerName: d = n(),
32
+ productType: u = a(),
33
+ username: m = G
37
34
  } = o;
38
- window.GuidoConfig = z(T, m);
39
- const { initPlugin: g } = I({
40
- emailId: a,
41
- userId: r,
42
- username: y,
43
- partnerName: u,
44
- productType: p,
45
- preselectedDynamicContentList: c
46
- }), { getDefaultTemplate: C } = N();
47
- _({
35
+ window.GuidoConfig = {
36
+ ...I,
37
+ ...i
38
+ };
39
+ const { initPlugin: p } = _({ emailId: c, userId: r, username: m, partnerName: d, productType: u }), { getDefaultTemplate: f } = T(), h = N();
40
+ S({
48
41
  onBack: () => {
49
42
  console.debug("guido:back"), t("back");
50
43
  },
@@ -52,45 +45,39 @@ const O = /* @__PURE__ */ L({
52
45
  console.debug("guido:save:start"), t("save:start");
53
46
  },
54
47
  onSaveComplete: (e) => {
55
- console.debug("guido:save:complete", {
56
- template: e,
57
- dynamicContentList: n.getSelectedDynamicContentList
58
- }), t("save:complete", {
59
- template: e,
60
- dynamicContentList: n.getSelectedDynamicContentList
61
- });
48
+ console.debug("guido:save:complete", e), t("save:complete", e);
62
49
  }
63
50
  });
64
- const f = (e) => {
65
- console.debug("dynamic-content:close", e), n.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
66
- }, v = () => {
51
+ const g = (e) => {
52
+ console.debug("dynamic-content:close", e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
53
+ }, y = () => {
67
54
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
68
55
  };
69
- return P(async () => {
56
+ return E(async () => {
70
57
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
71
58
  try {
72
59
  let e = {
73
- html: d,
60
+ html: s,
74
61
  css: l,
75
62
  forceRecreate: !0
76
63
  // TODO: It should be false for old templates. We will communicate with Stripo
77
64
  };
78
- e.html || (e = await C()), await g(e), n.selectedDynamicContentList = c;
65
+ e.html || (e = await f()), await p(e);
79
66
  } catch (e) {
80
67
  console.error("Failed to initialize Stripo editor:", e);
81
68
  }
82
69
  document.addEventListener("dynamic-content:open", (e) => {
83
- const D = e;
84
- console.debug("dynamic-content:open", D.detail), t("dynamic-content:open", D.detail);
70
+ const v = e;
71
+ console.debug("dynamic-content:open", v.detail), t("dynamic-content:open", v.detail);
85
72
  });
86
73
  }), b({
87
74
  dynamicContent: {
88
- insert: f,
89
- close: v
75
+ insert: g,
76
+ close: y
90
77
  }
91
- }), { __sfc: !0, PreviewContainer: w, dynamicContentStore: n, props: o, preselectedDynamicContentList: c, getPartnerName: i, getProductType: s, previewStore: h, templateId: a, userId: r, guidoConfig: m, html: d, css: l, partnerName: u, productType: p, username: y, emit: t, initPlugin: g, getDefaultTemplate: C, insertDynamicContent: f, closeDynamicContent: v, HeaderWrapper: A };
78
+ }), { __sfc: !0, props: o, getPartnerName: n, getProductType: a, templateId: c, userId: r, guidoConfig: i, html: s, css: l, partnerName: d, productType: u, username: m, emit: t, initPlugin: p, getDefaultTemplate: f, editorStore: h, insertDynamicContent: g, closeDynamicContent: y, EmailPreview: P, HeaderWrapper: k };
92
79
  }
93
80
  });
94
81
  export {
95
- O as default
82
+ M as default
96
83
  };
@@ -0,0 +1,16 @@
1
+ interface Props {
2
+ errors: string[];
3
+ }
4
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
5
+ close: () => void;
6
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
7
+ export default _default;
8
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
+ type __VLS_TypePropsToOption<T> = {
10
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
11
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
12
+ } : {
13
+ type: import('vue').PropType<T[K]>;
14
+ required: true;
15
+ };
16
+ };
@@ -0,0 +1,21 @@
1
+ import n from "./AmpErrorModal.vue2.js";
2
+ import a from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var i = function() {
4
+ var e = this, o = e._self._c, t = e._self._setupProxy;
5
+ return o(t.InModalV2, { attrs: { id: "amp-error-modal", "close-button-status": "", "close-on-outside-click": "", "description-status": "", "footer-status": "", status: "", size: "medium", "description-text": t.trans("email.amp-validation-description"), "footer-button-group-options": t.footerButtonOptions, "title-text": t.trans("email.amp-validation-title") }, on: { cancelOrBackButtonEvent: t.handleClose, onCloseEvent: t.handleClose, primaryButtonEvent: t.handleFixInCodeEditor }, scopedSlots: e._u([{ key: "contentSlot", fn: function() {
6
+ return [o("div", { staticClass: "d-f f-d-c" }, [o("div", { staticClass: "mb-3" }, [o("div", { staticClass: "l-s-5 f-s-1 f-w-600 t-c-55 t-t-u" }, [e._v(" " + e._s(`${t.trans("products.errors")}(${t.errorCount})`) + " ")])]), o("div", { staticClass: "d-f f-d-c g-13 max-h-21-s o-y-a", staticStyle: { gap: "16px" } }, e._l(t.props.errors, function(s, r) {
7
+ return o(t.InOnPageMessage, { key: r, attrs: { icon: "filled-error-box", size: "medium", type: "alert", text: s } });
8
+ }), 1)])];
9
+ }, proxy: !0 }]) });
10
+ }, l = [], c = /* @__PURE__ */ a(
11
+ n,
12
+ i,
13
+ l,
14
+ !1,
15
+ null,
16
+ null
17
+ );
18
+ const f = c.exports;
19
+ export {
20
+ f as default
21
+ };
@@ -0,0 +1,31 @@
1
+ import { defineComponent as f } from "vue";
2
+ import { usePreviewMode as u } from "../../../composables/usePreviewMode.js";
3
+ import { useToaster as E } from "../../../composables/useToaster.js";
4
+ import { useTranslations as w } from "../../../composables/useTranslations.js";
5
+ import { useEditorStore as g } from "../../../stores/editor.js";
6
+ import { InOnPageMessage as y, InModalV2 as A } from "@useinsider/design-system-vue";
7
+ const M = /* @__PURE__ */ f({
8
+ __name: "AmpErrorModal",
9
+ props: {
10
+ errors: null
11
+ },
12
+ emits: ["close"],
13
+ setup(p, { emit: o }) {
14
+ const r = p, e = w(), t = g(), { disablePreviewUI: i } = u(), { showToaster: s } = E(), d = r.errors.length, l = () => {
15
+ o("close");
16
+ }, c = () => {
17
+ var n, a;
18
+ o("close"), t.isPreviewModeOpen = !1, (a = (n = window.StripoEditorApi) == null ? void 0 : n.codeEditorApi) != null && a.openCodeEditor ? (i(), window.StripoEditorApi.codeEditorApi.openCodeEditor()) : s({
19
+ type: "error",
20
+ message: "StripoEditorApi codeEditorApi not available"
21
+ });
22
+ }, m = {
23
+ primaryButton: { type: "primary", labelText: e("email.amp-validation-fix") },
24
+ cancelOrBackButton: { type: "secondary", labelText: e("campaign-builder.cancel"), styling: "ghost" }
25
+ };
26
+ return { __sfc: !0, props: r, emit: o, trans: e, editorStore: t, disablePreviewUI: i, showToaster: s, errorCount: d, handleClose: l, handleFixInCodeEditor: c, footerButtonOptions: m, InModalV2: A, InOnPageMessage: y };
27
+ }
28
+ });
29
+ export {
30
+ M as default
31
+ };
@@ -0,0 +1,16 @@
1
+ import type { EmailData } from '@@/Types/generic';
2
+ interface Props {
3
+ emailHtml: string;
4
+ emailData?: EmailData;
5
+ }
6
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
7
+ export default _default;
8
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
+ type __VLS_TypePropsToOption<T> = {
10
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
11
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
12
+ } : {
13
+ type: import('vue').PropType<T[K]>;
14
+ required: true;
15
+ };
16
+ };
@@ -0,0 +1,22 @@
1
+ import a from "./DesktopPreview.vue2.js";
2
+ /* empty css */
3
+ import i from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var r = function() {
5
+ var e = this, s = e._self._c, t = e._self._setupProxy;
6
+ return s(t.InContainer, { staticClass: "s-2 m-b-5", attrs: { "full-width-content-status": "", "header-status": "", "border-radius": "bor-r-1", "container-type": "default", "footer-status": !1 }, scopedSlots: e._u([{ key: "headerLeftSlot", fn: function() {
7
+ return [s("div", { staticClass: "d-f a-i-c j-c-s-b w-1" }, [s("div", { staticClass: "d-f a-i-c" }, [s("div", { staticClass: "b-c-49 bor-r-100 w-5-s h-5-s d-f a-i-c j-c-c" }, [s(t.InIcons, { attrs: { name: "line-menu-profile" } })], 1), s("div", { staticClass: "d-f f-d-c ml-2" }, [s("p", { staticClass: "t-c-53 f-w-600 f-s-1 l-h-1" }, [e._v(" " + e._s(t.senderName) + " ")]), s("p", { staticClass: "t-c-55 f-w-400 f-s-12 l-h-1" }, [e._v(" " + e._s(t.subject) + " ")])])])])];
8
+ }, proxy: !0 }, { key: "headerRightSlot", fn: function() {
9
+ return [s("div", { staticClass: "d-f a-i-c j-c-c" }, [s(t.InProgress, { staticClass: "min-w-15-s", attrs: { id: "email-size-progress", "description-status": "", "description-position": "left", description: t.emailSize, "max-value": t.MAX_EMAIL_WEIGHT, type: t.progressType, value: t.progressValue } }), s(t.InTooltip, { staticClass: "d-f ml-1", attrs: { id: "email-size-tooltip", align: "center", position: "bottom", text: t.trans("email.preview-design-size-tooltip") } })], 1)];
10
+ }, proxy: !0 }]) }, [s("iframe", { staticClass: "email-iframe w-1 h-1 bor-w-0", attrs: { sandbox: "allow-same-origin allow-popups allow-forms allow-scripts", srcdoc: e.emailHtml } })]);
11
+ }, o = [], l = /* @__PURE__ */ i(
12
+ a,
13
+ r,
14
+ o,
15
+ !1,
16
+ null,
17
+ "4b4b203f"
18
+ );
19
+ const d = l.exports;
20
+ export {
21
+ d as default
22
+ };
@@ -0,0 +1,29 @@
1
+ import { defineComponent as _, computed as c, ref as o, watch as I } from "vue";
2
+ import { useTranslations as d } from "../../../composables/useTranslations.js";
3
+ import { InTooltip as M, InProgress as g, InIcons as h, InContainer as v } from "@useinsider/design-system-vue";
4
+ import { MAX_EMAIL_WEIGHT as w } from "../../../enums/emailPreview.js";
5
+ const A = /* @__PURE__ */ _({
6
+ __name: "DesktopPreview",
7
+ props: {
8
+ emailHtml: null,
9
+ emailData: null
10
+ },
11
+ setup(u) {
12
+ const t = u, s = d(), p = c(() => {
13
+ var e;
14
+ return ((e = t.emailData) == null ? void 0 : e.senderName) || `(${s("settings.sender-name")})`;
15
+ }), f = c(() => {
16
+ var e;
17
+ return ((e = t.emailData) == null ? void 0 : e.subject) || s("newsletter.subject");
18
+ }), r = 102, m = o("~-- KB"), l = o(0), n = o("success"), i = () => {
19
+ if (!t.emailHtml)
20
+ return;
21
+ const e = new Blob([t.emailHtml]).size, a = Math.round(e / 1024);
22
+ m.value = `~${a} KB`, l.value = Math.min(a, r), a < 102 ? n.value = "success" : n.value = "warning";
23
+ };
24
+ return I(() => t.emailHtml, i, { immediate: !0 }), { __sfc: !0, trans: s, props: t, senderName: p, subject: f, MAX_EMAIL_SIZE: r, emailSize: m, progressValue: l, progressType: n, calculateEmailSize: i, InContainer: v, InIcons: h, InProgress: g, InTooltip: M, MAX_EMAIL_WEIGHT: w };
25
+ }
26
+ });
27
+ export {
28
+ A as default
29
+ };
@@ -0,0 +1,16 @@
1
+ import type { EmailData } from '@@/Types/generic';
2
+ interface Props {
3
+ isVisible: boolean;
4
+ emailData?: EmailData;
5
+ }
6
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
7
+ export default _default;
8
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
+ type __VLS_TypePropsToOption<T> = {
10
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
11
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
12
+ } : {
13
+ type: import('vue').PropType<T[K]>;
14
+ required: true;
15
+ };
16
+ };
@@ -0,0 +1,17 @@
1
+ import s from "./EmailPreview.vue2.js";
2
+ import i from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var r = function() {
4
+ var a = this, e = a._self._c, t = a._self._setupProxy;
5
+ return a.isVisible ? e("div", { staticClass: "d-f f-d-c h-1 b-c-5 bor-r-2" }, [e("div", { staticClass: "f-g-1 d-f p-5 o-a g-4 min-h-600" }, [e(t.DesktopPreview, { staticClass: "f-g-1 min-w-0", attrs: { "email-data": a.emailData, "email-html": t.currentHtml } }), e(t.MobilePreview, { staticClass: "f-0 min-w-a", attrs: { "email-data": a.emailData, "email-html": t.currentHtml, "is-amp": t.isAmp } })], 1)]) : a._e();
6
+ }, l = [], m = /* @__PURE__ */ i(
7
+ s,
8
+ r,
9
+ l,
10
+ !1,
11
+ null,
12
+ null
13
+ );
14
+ const c = m.exports;
15
+ export {
16
+ c as default
17
+ };
@@ -0,0 +1,40 @@
1
+ import { defineComponent as w, ref as c, computed as p, watch as u, onMounted as b } from "vue";
2
+ import { useDebounce as y } from "../../../composables/useDebounce.js";
3
+ import { usePreviewMode as P } from "../../../composables/usePreviewMode.js";
4
+ import { useToaster as _ } from "../../../composables/useToaster.js";
5
+ import { useEditorStore as h } from "../../../stores/editor.js";
6
+ import V from "./DesktopPreview.vue.js";
7
+ import F from "./MobilePreview.vue.js";
8
+ const k = /* @__PURE__ */ w({
9
+ __name: "EmailPreview",
10
+ props: {
11
+ isVisible: { type: Boolean },
12
+ emailData: null
13
+ },
14
+ setup(d) {
15
+ const o = d, { compile: a } = P(), { debounce: l } = y(), { showToaster: m } = _(), e = h(), r = c(""), i = c(!1), f = p(() => e.emailFormat === "amp" && e.ampHtml ? e.ampHtml : r.value), v = p(() => e.emailFormat === "amp"), t = async () => {
16
+ i.value = !0;
17
+ try {
18
+ const s = await a();
19
+ r.value = s.html;
20
+ } catch {
21
+ console.error("Failed to load preview"), m({
22
+ type: "error",
23
+ message: "Failed to load email preview. Please try again later."
24
+ });
25
+ } finally {
26
+ i.value = !1;
27
+ }
28
+ }, n = () => {
29
+ l(t, 350);
30
+ };
31
+ return u(() => o.isVisible, (s) => s && t()), u(() => e.editorVisualMode, () => {
32
+ o.isVisible && n();
33
+ }), b(() => {
34
+ o.isVisible && t();
35
+ }), { __sfc: !0, props: o, compile: a, debounce: l, showToaster: m, editorStore: e, html: r, isLoading: i, currentHtml: f, isAmp: v, loadPreview: t, debouncedReload: n, DesktopPreview: V, MobilePreview: F };
36
+ }
37
+ });
38
+ export {
39
+ k as default
40
+ };
@@ -0,0 +1,18 @@
1
+ interface Props {
2
+ emailHtml: string;
3
+ isAmp?: boolean;
4
+ }
5
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
6
+ "back-to-inbox": () => void;
7
+ load: () => void;
8
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
9
+ export default _default;
10
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
11
+ type __VLS_TypePropsToOption<T> = {
12
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
13
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
14
+ } : {
15
+ type: import('vue').PropType<T[K]>;
16
+ required: true;
17
+ };
18
+ };
@@ -1,13 +1,13 @@
1
- import n from "./ContentView.vue2.js";
2
- import e from "../../../../_virtual/_plugin-vue2_normalizer.js";
3
- var c = function() {
1
+ import n from "./EmailView.vue2.js";
2
+ import c from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var e = function() {
4
4
  var a = this, s = a._self._c, t = a._self._setupProxy;
5
- return s("div", { staticClass: "w-1 h-1 b-c-4 d-f f-d-c" }, [s("div", { staticClass: "d-f j-c-s-b a-i-c p-2 h-6-s" }, [s("div", { staticClass: "d-f a-i-c cur-p", on: { click: function(l) {
5
+ return s("div", { staticClass: "w-1 h-1 b-c-4 d-f f-d-c" }, [s("div", { staticClass: "d-f j-c-s-b a-i-c p-2 h-6-s" }, [s("div", { staticClass: "d-f a-i-c cur-p", on: { click: function(r) {
6
6
  return a.$emit("back-to-inbox");
7
- } } }, [s(t.InIcons, { staticClass: "f-s-3 i-c-7", attrs: { name: "line-chevron-left" } }), s("span", { staticClass: "ml-2 f-s-1 f-w-400 l-h-1 t-c-7" }, [a._v(a._s(t.trans("newsletter.inbox")))])], 1), s("div", { staticClass: "d-f a-i-c" }, [s(t.InIcons, { staticClass: "i-c-52", attrs: { name: "line-chevron-down" } }), s(t.InIcons, { staticClass: "ml-1 i-c-52", attrs: { name: "line-chevron-up" } })], 1)]), s("iframe", { ref: "iframeRef", staticClass: "f-g-1 w-1 d-b b-c-4 bor-s-n", attrs: { sandbox: "allow-same-origin allow-popups allow-forms allow-scripts", srcdoc: t.previewStore.previewHtml }, on: { load: t.onLoad } })]);
8
- }, i = [], o = /* @__PURE__ */ e(
7
+ } } }, [s(t.InIcons, { staticClass: "f-s-3 i-c-7", attrs: { name: "line-chevron-left" } }), s("span", { staticClass: "ml-2 f-s-1 f-w-400 l-h-1 t-c-7" }, [a._v(a._s(t.trans("newsletter.inbox")))])], 1), s("div", { staticClass: "d-f a-i-c" }, [s(t.InIcons, { staticClass: "i-c-52", attrs: { name: "line-chevron-down" } }), s(t.InIcons, { staticClass: "ml-1 i-c-52", attrs: { name: "line-chevron-up" } })], 1)]), s("iframe", { ref: "iframeRef", staticClass: "f-g-1 w-1 d-b b-c-4 bor-s-n", attrs: { sandbox: "allow-same-origin allow-popups allow-forms allow-scripts", srcdoc: a.emailHtml }, on: { load: t.onLoad } })]);
8
+ }, i = [], o = /* @__PURE__ */ c(
9
9
  n,
10
- c,
10
+ e,
11
11
  i,
12
12
  !1,
13
13
  null,
@@ -0,0 +1,24 @@
1
+ import { defineComponent as p, ref as c } from "vue";
2
+ import { useMobileGmailFit as u } from "../../../composables/useMobileGmailFit.js";
3
+ import { useTranslations as f } from "../../../composables/useTranslations.js";
4
+ import { InIcons as d } from "@useinsider/design-system-vue";
5
+ const E = /* @__PURE__ */ p({
6
+ __name: "EmailView",
7
+ props: {
8
+ emailHtml: null,
9
+ isAmp: { type: Boolean }
10
+ },
11
+ emits: ["back-to-inbox", "load"],
12
+ setup(l, { emit: t }) {
13
+ const o = l, a = f(), n = c(), { setupMobileGmailFit: s } = u(), m = () => !!o.isAmp && o.emailHtml.includes("@media"), r = (e) => {
14
+ e.documentElement.style.removeProperty("transform"), e.documentElement.style.removeProperty("transform-origin"), e.documentElement.style.removeProperty("height");
15
+ };
16
+ return { __sfc: !0, props: o, emit: t, trans: a, iframeRef: n, setupMobileGmailFit: s, isAmpResponsive: m, clearAmpTransforms: r, onLoad: () => {
17
+ const e = n.value, i = e == null ? void 0 : e.contentDocument;
18
+ !e || !i || (s(e), m() && setTimeout(() => r(i), 50), t("load"));
19
+ }, InIcons: d };
20
+ }
21
+ });
22
+ export {
23
+ E as default
24
+ };
@@ -0,0 +1,17 @@
1
+ import type { EmailData } from '@@/Types/generic';
2
+ interface Props {
3
+ emailData?: EmailData;
4
+ }
5
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
6
+ "open-email": () => void;
7
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
8
+ export default _default;
9
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
+ type __VLS_TypePropsToOption<T> = {
11
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
12
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
13
+ } : {
14
+ type: import('vue').PropType<T[K]>;
15
+ required: true;
16
+ };
17
+ };
@@ -0,0 +1,19 @@
1
+ import a from "./InboxView.vue2.js";
2
+ import e from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var n = function() {
4
+ var s = this, t = s._self._c, c = s._self._setupProxy;
5
+ return t("div", { staticClass: "p-y-13 p-x-3 bor-b-w-1 bor-b-s-s bor-b-c-50 cur-p b-c-4 b-c-h-5 p-3", on: { click: function(l) {
6
+ return s.$emit("open-email");
7
+ } } }, [t("div", { staticClass: "d-f j-c-s-b a-i-c w-1" }, [t("div", { staticClass: "f-g-1 min-w-0-s" }, [t("div", { staticClass: "f-s-1 f-w-600 t-c-53 l-h-1 mb-12" }, [s._v(" " + s._s(c.senderName) + " ")]), t("div", { staticClass: "f-s-12 f-w-400 t-c-55 l-h-1" }, [s._v(" " + s._s(c.subject) + " ")])]), t("div", { staticClass: "f-sh-0 ml-2 f-s-12 f-w-400 t-c-55 l-h-1" }, [s._v(" " + s._s(c.trans("product-catalog.today")) + " ")]), t(c.InIcons, { staticClass: "i-c-52", attrs: { name: "line-chevron-right" } })], 1)]);
8
+ }, r = [], i = /* @__PURE__ */ e(
9
+ a,
10
+ n,
11
+ r,
12
+ !1,
13
+ null,
14
+ null
15
+ );
16
+ const m = i.exports;
17
+ export {
18
+ m as default
19
+ };