@retailrocketgroup/retailrocket-edit.transactional-vue-email-template-render 3.0.377566 → 5.0.384530

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 (42) hide show
  1. package/.turbo/turbo-build.log +25 -0
  2. package/dist/assets/index.css +1 -0
  3. package/dist/assets/index.js +379 -0
  4. package/dist/assets/index.js.map +1 -0
  5. package/dist/editTransactionalEmailTemplateApp.d.ts +0 -0
  6. package/dist/httpClient/TransactionalWysiwygTemplateEditorClient.d.ts +2 -0
  7. package/dist/implementation/AppSettingsModifierPlugin/transactionalDataAppSettingsModifierPluginFactory.d.ts +6 -0
  8. package/dist/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/transactionalComponentSectionItemFactory.d.ts +4 -0
  9. package/dist/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/transactionalEmailComponentFactory.d.ts +4 -0
  10. package/dist/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/transactionalComponentLibraryFactory.d.ts +4 -0
  11. package/dist/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/transactionalSectionFactory.d.ts +4 -0
  12. package/dist/implementation/DataSources/ListDataExpressionSource/transactionalListExpressionDataSourceEvaluatorFactory.d.ts +9 -0
  13. package/dist/implementation/DataSources/NumberExpressionDataSource/transactionalNumberExpressionDataSourceEvaluatorFactory.d.ts +5 -0
  14. package/dist/implementation/DataSources/StringExpressionDataSource/transactionalEvaluateStringExpressionDataSource.d.ts +9 -0
  15. package/dist/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/TransactionalProductShelfDataSourceExpressionBuilderModal/transactionalProductShelfDataSourceExpressionBuilderModalDepsFactory.d.ts +11 -0
  16. package/dist/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/transactionalProductShelfDataSourceExpressionBuilderDepsFactory.d.ts +11 -0
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.html +36 -0
  19. package/env.d.ts +1 -0
  20. package/index.html +2 -3
  21. package/package.json +1 -1
  22. package/src/editTransactionalEmailTemplateApp.ts +426 -0
  23. package/src/httpClient/TransactionalWysiwygTemplateEditorClient.ts +5 -0
  24. package/src/implementation/AppSettingsModifierPlugin/transactionalDataAppSettingsModifierPluginFactory.ts +41 -0
  25. package/src/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/transactionalComponentSectionItemFactory.ts +30 -0
  26. package/src/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/transactionalEmailComponentFactory.ts +26 -0
  27. package/src/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/transactionalComponentLibraryFactory.ts +29 -0
  28. package/src/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/transactionalSectionFactory.ts +32 -0
  29. package/src/implementation/DataSources/ListDataExpressionSource/transactionalListExpressionDataSourceEvaluatorFactory.ts +115 -0
  30. package/src/implementation/DataSources/NumberExpressionDataSource/transactionalNumberExpressionDataSourceEvaluatorFactory.ts +35 -0
  31. package/src/implementation/DataSources/StringExpressionDataSource/transactionalEvaluateStringExpressionDataSource.ts +55 -0
  32. package/src/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/TransactionalProductShelfDataSourceExpressionBuilderModal/transactionalProductShelfDataSourceExpressionBuilderModalDepsFactory.ts +127 -0
  33. package/src/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/transactionalProductShelfDataSourceExpressionBuilderDepsFactory.ts +35 -0
  34. package/src/index.ts +0 -0
  35. package/tsconfig.app.json +19 -0
  36. package/tsconfig.json +14 -0
  37. package/tsconfig.node.json +11 -0
  38. package/tsconfig.test.json +11 -0
  39. package/vite.config.ts +36 -0
  40. package/assets/main.css +0 -1
  41. package/assets/main.js +0 -211
  42. package/favicon.ico +0 -0
File without changes
@@ -0,0 +1,2 @@
1
+ import { createApi as createTransactionalwysiwygtemplateeditorClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.transactionalwysiwygtemplateeditor';
2
+ export type TransactionalWysiwygTemplateEditorClient = ReturnType<typeof createTransactionalwysiwygtemplateeditorClient>;
@@ -0,0 +1,6 @@
1
+ import { DataType, LocaleKey, AppSettingsModifierPlugin } from '@easy-wizzy/core';
2
+ export declare const transactionalDataAppSettingsModifierPluginFactory: (arg: {
3
+ localeKey: LocaleKey;
4
+ getTransactionTemplateData: () => DataType;
5
+ updateTransactionTemplateData: (data: DataType) => void;
6
+ }) => AppSettingsModifierPlugin;
@@ -0,0 +1,4 @@
1
+ import { ComponentLibrarySectionItem } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.componentlibrary/main';
2
+ import { TransactionalStringExpressionDataSource, TransactionalNumberExpressionDataSource, TransactionalListExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
3
+ import { CustomComponentSectionItemType } from '@easy-wizzy/core';
4
+ export declare const transactionalComponentSectionItemFactory: (componentLibrarySectionItem: ComponentLibrarySectionItem) => CustomComponentSectionItemType<TransactionalListExpressionDataSource, TransactionalNumberExpressionDataSource, TransactionalStringExpressionDataSource>;
@@ -0,0 +1,4 @@
1
+ import { EmailComponentType } from '@easy-wizzy/core';
2
+ import { Component } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addcomponentlibrarysectionitemmodalwindow/main';
3
+ import { TransactionalStringExpressionDataSource, TransactionalListExpressionDataSource, TransactionalNumberExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
4
+ export declare const transactionalEmailComponentFactory: (component: Component) => EmailComponentType<TransactionalListExpressionDataSource, TransactionalNumberExpressionDataSource, TransactionalStringExpressionDataSource>;
@@ -0,0 +1,4 @@
1
+ import { ComponentLibrarySection } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.componentlibrary/main';
2
+ import { CustomComponentLibraryType } from '@easy-wizzy/core';
3
+ import { TransactionalListExpressionDataSource, TransactionalNumberExpressionDataSource, TransactionalStringExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
4
+ export declare const transactionalComponentLibraryFactory: (componentLibrary: Array<ComponentLibrarySection>) => CustomComponentLibraryType<TransactionalListExpressionDataSource, TransactionalNumberExpressionDataSource, TransactionalStringExpressionDataSource>;
@@ -0,0 +1,4 @@
1
+ import { ComponentLibrarySection } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.componentlibrary/main';
2
+ import { CustomComponentSectionType } from '@easy-wizzy/core';
3
+ import { TransactionalListExpressionDataSource, TransactionalNumberExpressionDataSource, TransactionalStringExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
4
+ export declare const transactionalSectionFactory: (section: ComponentLibrarySection) => CustomComponentSectionType<TransactionalListExpressionDataSource, TransactionalNumberExpressionDataSource, TransactionalStringExpressionDataSource>;
@@ -0,0 +1,9 @@
1
+ import { ListExpressionDataSourceBffClient } from '@easy-wizzy/common-app';
2
+ import { ListExpressionDataSourceEvaluatorDelegate, DataType } from '@easy-wizzy/core';
3
+ import { TransactionalListExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
4
+ export declare const transactionalListExpressionDataSourceEvaluatorFactory: (arg: {
5
+ partnerId: string;
6
+ getTransactionalTemplateData: () => DataType;
7
+ listExpressionDataSourceBffClient: ListExpressionDataSourceBffClient;
8
+ customerStockId: string | undefined;
9
+ }) => ListExpressionDataSourceEvaluatorDelegate<TransactionalListExpressionDataSource>;
@@ -0,0 +1,5 @@
1
+ import { TransactionalNumberExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
2
+ import { NumberExpressionDataSourceEvaluatorDelegate, DataType } from '@easy-wizzy/core';
3
+ export declare const transactionalNumberExpressionDataSourceEvaluatorFactory: (arg: {
4
+ getTransactionalTemplateData: () => DataType;
5
+ }) => NumberExpressionDataSourceEvaluatorDelegate<TransactionalNumberExpressionDataSource>;
@@ -0,0 +1,9 @@
1
+ import { DataType, StringExpressionDataSourceEvaluatorDelegate } from '@easy-wizzy/core';
2
+ import { TransactionalStringExpressionDataSource, TransactionalNumberExpressionDataSource, TransactionalListExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
3
+ import { ProductImageUrlBuilderExpressionEvaluatorDelegate } from '@easy-wizzy/common-app';
4
+ import { NextCouponFromBatchType } from '@easy-wizzy/retailrocket-common';
5
+ export declare const transactionalStringExpressionDataSourceEvaluatorFactory: (arg: {
6
+ getTransactionalTemplateData: () => DataType;
7
+ productImageUrlBuilderExpressionEvaluator: ProductImageUrlBuilderExpressionEvaluatorDelegate<TransactionalListExpressionDataSource, TransactionalNumberExpressionDataSource>;
8
+ nextCouponFromBatch: NextCouponFromBatchType;
9
+ }) => StringExpressionDataSourceEvaluatorDelegate<TransactionalStringExpressionDataSource>;
@@ -0,0 +1,11 @@
1
+ import { LocaleKey } from '@easy-wizzy/core';
2
+ import { TransactionalProductShelfDataSourceExpressionBuilderModalDeps } from '@easy-wizzy/retailrocket-transactional';
3
+ import { ProductShelfBuilderModalWindowBffClient, ProductPickerModalWindowBffClient, ProductCategoryPickerModalWindowBffClient } from '@easy-wizzy/common-app';
4
+ export declare const transactionalProductShelfDataSourceExpressionBuilderModalDepsFactory: (arg: {
5
+ localeKey: LocaleKey;
6
+ partnerId: string;
7
+ customerStockId: string | undefined;
8
+ productShelfBuilderModalWindowBffClient: ProductShelfBuilderModalWindowBffClient;
9
+ productCategoryPickerModalWindowBffClient: ProductCategoryPickerModalWindowBffClient;
10
+ productPickerModalWindowBffClient: ProductPickerModalWindowBffClient;
11
+ }) => TransactionalProductShelfDataSourceExpressionBuilderModalDeps;
@@ -0,0 +1,11 @@
1
+ import { LocaleKey } from '@easy-wizzy/core';
2
+ import { TransactionalProductShelfDataSourceExpressionBuilderDeps } from '@easy-wizzy/retailrocket-transactional';
3
+ import { ProductShelfBuilderModalWindowBffClient, ProductPickerModalWindowBffClient, ProductCategoryPickerModalWindowBffClient } from '@easy-wizzy/common-app';
4
+ export declare const transactionalProductShelfDataSourceExpressionBuilderDepsFactory: (arg: {
5
+ localeKey: LocaleKey;
6
+ partnerId: string;
7
+ customerStockId: string | undefined;
8
+ productShelfBuilderModalWindowBffClient: ProductShelfBuilderModalWindowBffClient;
9
+ productCategoryPickerModalWindowBffClient: ProductCategoryPickerModalWindowBffClient;
10
+ productPickerModalWindowBffClient: ProductPickerModalWindowBffClient;
11
+ }) => TransactionalProductShelfDataSourceExpressionBuilderDeps;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <link rel="icon" href="/favicon.ico">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
+ <link
10
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap"
11
+ rel="stylesheet"
12
+ />
13
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Lato:wght@100;300;400;700;900&family=Roboto:wght@400;700&display=swap" rel="stylesheet">
14
+ <title>Vite App</title>
15
+ <script type="module" crossorigin src="/assets/index.js"></script>
16
+ <link rel="stylesheet" crossorigin href="/assets/index.css">
17
+ </head>
18
+ <body>
19
+ <div
20
+ id="app"
21
+ data-partner-id="5df72bdc97a52507605e4cc1"
22
+ data-wysiwyg-template-editor-bff-base-url="https://my.retailrocket.ru/5db801c197a52821e86b0d45/TransactionalEmailCampaign/6757225a5520d1ae575e7f0e/CampaignWizard/Step2/WysiwygTemplateEditorBff"
23
+ data-wysiwyg-bff-proxy-base-url="https://k8s-b1.retailrocket.ru/"
24
+ data-email-template-json='{"Subject": "","Preheader": "","Theme": {"BodyWidth": 600,"IsResponsiveWidth": true,"FontFamily": "Arial","Colors": {"EmailBackgroundColor": "#EEEEEE","BodyColor": "#FFFFFF","PrimaryColor": "#557aff","PrimaryTextColor": "#ffffff","SecondaryColor": "#E4EAFF","SecondaryTextColor": "#557aff","CardBackgroundColor": "#F6F6F6","HeadingColor": "#2F2F2F","TitleColor": "#2F2F2F","SubHeadingColor": "#2F2F2F","LargeTextColor": "#2F2F2F","NormalTextColor": "#2F2F2F","DescriptionTextColor": "#999999","LinkColor": "#65A0FA","ButtonTextColor": "#ffffff"},"BorderRadius": {"TopLeft": 20,"TopRight": 20,"BottomLeft": 20,"BottomRight": 20},"BorderRadiusCard": {"TopLeft": 16,"TopRight": 16,"BottomLeft": 16,"BottomRight": 16},"BorderRadiusButton": {"TopLeft": 6,"TopRight": 6,"BottomLeft": 6,"BottomRight": 6},"BorderRadiusBanner": {"TopLeft": 0,"TopRight": 0,"BottomLeft": 0,"BottomRight": 0},"BodyPaddings": {"Left": 20,"Right": 20,"Top": 10,"Bottom": 10},"ComponentPaddings": {"Small": 8,"Medium": 16,"Large": 24,"Huge": 24},"ButtonPaddings": {"TopBottom": 12,"LeftRight": 14},"FontSettingsPresets": {"Title": {"FontSize": 24,"LineHeight": 28,"IsBold": true,"IsItalic": false,"Decoration": "None"},"Heading": {"FontSize": 20,"LineHeight": 24,"IsBold": true,"IsItalic": false,"Decoration": "None"},"SubHeading": {"FontSize": 14,"LineHeight": 16,"IsBold": true,"IsItalic": false,"Decoration": "None"},"LargeText": {"FontSize": 14,"LineHeight": 18,"IsBold": false,"IsItalic": false,"Decoration": "None"},"NormalText": {"FontSize": 12,"LineHeight": 15,"IsBold": false,"IsItalic": false,"Decoration": "None"},"DescriptionText": {"FontSize": 10,"LineHeight": 13,"IsBold": false,"IsItalic": false,"Decoration": "None"},"Button": {"FontSize": 12,"LineHeight": 14,"IsBold": true,"IsItalic": false,"Decoration": "None"},"Link": {"FontSize": 12,"LineHeight": 14,"IsBold": false,"IsItalic": false,"Decoration": "None"}}},"Components": [{"IsRequired": false,"BorderRadius": {"TopLeft": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"TopRight": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"BottomRight": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"BottomLeft": {"Discriminator": "CustomBorderRadius","CustomValue": 0}},"InnerBgColor": {"Discriminator": "BodyColor","CustomValue": "#000000"},"Paddings": {"Top": {"ThemePadding": "ThemePaddingsLarge"},"Bottom": {"ThemePadding": "ThemePaddingsLarge"}},"FullWidth": false,"BodyRowList": [{"MultipleColumnBodyRow": {"ColumnSpacerSize": {"CustomValue": 0},"DirectionRtl": false,"Paddings": {"Left": {"CustomValue": 0},"Top": {"CustomValue": 0},"Right": {"CustomValue": 0},"Bottom": {"CustomValue": 0}},"Border": {"Left": {"Width": 0,"Style": "None","Color": {"Discriminator": "Custom","CustomValue": "#FFFFFF"}},"Top": {"Width": 0,"Style": "None","Color": {"Discriminator": "Custom","CustomValue": "#FFFFFF"}},"Right": {"Width": 0,"Style": "None","Color": {"Discriminator": "Custom","CustomValue": "#FFFFFF"}},"Bottom": {"Width": 0,"Style": "None","Color": {"Discriminator": "Custom","CustomValue": "#FFFFFF"}}},"BorderRadius": {"TopLeft": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"TopRight": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"BottomRight": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"BottomLeft": {"Discriminator": "CustomBorderRadius","CustomValue": 0}},"BgColor": {"Discriminator": "None","CustomValue": "#ffffff"},"ContainerAlign": "Center","Columns": [{"VerticalAlign": "Top","BgColor": {"Discriminator": "None","CustomValue": "#ffffff"},"Paddings": {"Top": {"CustomValue": 0},"Right": {"CustomValue": 0},"Bottom": {"CustomValue": 0},"Left": {"CustomValue": 0}},"Border": {"Left": {"Width": 0,"Style": "None","Color": {"Discriminator": "Custom","CustomValue": "#FFFFFF"}},"Top": {"Width": 0,"Style": "None","Color": {"Discriminator": "Custom","CustomValue": "#FFFFFF"}},"Right": {"Width": 0,"Style": "None","Color": {"Discriminator": "Custom","CustomValue": "#FFFFFF"}},"Bottom": {"Width": 0,"Style": "None","Color": {"Discriminator": "Custom","CustomValue": "#FFFFFF"}}},"BorderRadius": {"TopLeft": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"TopRight": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"BottomRight": {"Discriminator": "CustomBorderRadius","CustomValue": 0},"BottomLeft": {"Discriminator": "CustomBorderRadius","CustomValue": 0}},"ContainerAlign": "Center","Elements": [{"RichText": {"ImageVerticalAlign": "Baseline","MinHeight": 1,"ContentAlign": "Center","Text": {"Content": [{"ParagraphNode": {"Content": [{"TextNode": {"Text": "Сервис создания электронных писем","TextStyle": {"ThemeName": "Heading","Style": {}}}}]}}]}}},{"Spacer": {"Height": {"ThemePadding": "ThemePaddingsLarge"},"Weight": 0,"Color": {"Discriminator": "None","CustomValue": "#FFFFFF"}}},{"RichText": {"ImageVerticalAlign": "Baseline","MinHeight": 1,"ContentAlign": "Center","Text": {"Content": [{"ParagraphNode": {"Content": [{"TextNode": {"Text": "Мы рады представить вам наш новый продукт - сервис создания электронных писем. С помощью этого удобного и интуитивно понятного инструмента, вы сможете легко создавать красивые и профессиональные письма всего в несколько простых шагов.","TextStyle": {"ThemeName": "LargeText","Style": {}}}}]}}]}}}],"Width": {"JustifyWidth": {"WidthInPixels": 560}}}]}}]}]}'
25
+ data-create-email-template-submit-url="data-create-email-template-submit-url"
26
+ data-anti-forgery-header-token-name="data-anti-forgery-header-token-name"
27
+ data-anti-forgery-header-token-value="data-anti-forgery-header-token-value"
28
+ data-anti-forgery-form-token-name="data-anti-forgery-form-token-name"
29
+ data-anti-forgery-form-token-value="data-anti-forgery-form-token-value"
30
+ data-reset-template-form-url="https://webhook.site/a85a171c-bb86-4693-9552-d209a59a7e6a"
31
+ data-preview-template-data-json='{"name": "Chizh Andrey", "age": 33}'
32
+ data-exit-link="ya.ru"
33
+ data-locale-key="ru"
34
+ ></div>
35
+ </body>
36
+ </html>
package/env.d.ts ADDED
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
package/index.html CHANGED
@@ -12,8 +12,6 @@
12
12
  />
13
13
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Lato:wght@100;300;400;700;900&family=Roboto:wght@400;700&display=swap" rel="stylesheet">
14
14
  <title>Vite App</title>
15
- <script type="module" crossorigin src="/assets/main.js"></script>
16
- <link rel="stylesheet" crossorigin href="/assets/main.css">
17
15
  </head>
18
16
  <body>
19
17
  <div
@@ -30,7 +28,8 @@
30
28
  data-reset-template-form-url="https://webhook.site/a85a171c-bb86-4693-9552-d209a59a7e6a"
31
29
  data-preview-template-data-json='{"name": "Chizh Andrey", "age": 33}'
32
30
  data-exit-link="ya.ru"
33
- data-locale-key="en"
31
+ data-locale-key="ru"
34
32
  ></div>
33
+ <script type="module" src="/src/editTransactionalEmailTemplateApp.ts"></script>
35
34
  </body>
36
35
  </html>
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@retailrocketgroup/retailrocket-edit.transactional-vue-email-template-render",
3
- "version": "3.0.377566",
3
+ "version": "5.0.384530",
4
4
  "private": false
5
5
  }
@@ -0,0 +1,426 @@
1
+ import 'bootstrap';
2
+ import '@easy-wizzy/retailrocket-common/index.css';
3
+ import '@easy-wizzy/core/index.css';
4
+
5
+ import { createApp } from 'vue';
6
+ import { createVuetify } from 'vuetify';
7
+ import { ClickOutside } from 'vuetify/directives';
8
+
9
+ import { createSimpleDataForm, matcherFactory } from '@easy-wizzy/core';
10
+ import { EditEmailTemplateApp } from '@easy-wizzy/core';
11
+ import { expressionEvaluatorFactory } from '@easy-wizzy/core';
12
+ import { listExpressionEvaluatorFactory } from '@easy-wizzy/core';
13
+ import { numberExpressionEvaluatorDelegate } from '@easy-wizzy/core';
14
+ import { stringExpressionEvaluatorFactory } from '@easy-wizzy/core';
15
+ import { dataStructBuilderExpressionEvaluatorFactory } from '@easy-wizzy/core';
16
+
17
+ import type { LocaleKey } from '@easy-wizzy/core';
18
+ import type { StringExpressionEvaluatorDelegate } from '@easy-wizzy/core';
19
+ import type { DataType } from '@easy-wizzy/core';
20
+ import type { DefaultComponentLibraryType } from '@easy-wizzy/core';
21
+
22
+ import { defaultThemeLibraryFactory } from '@easy-wizzy/theme-library';
23
+ import { defaultComponentLibraryFactory } from '@easy-wizzy/component-library';
24
+
25
+ import type { ApiMachineFetchDelegate } from '@easy-wizzy/common-app';
26
+
27
+ import { apiMachineFetchFactory } from '@easy-wizzy/common-app';
28
+ import { editEmailTemplateAppDepsFactory } from '@easy-wizzy/common-app';
29
+ import { productImageUrlBuilderExpressionEvaluatorFactory } from '@easy-wizzy/common-app';
30
+ import { wysiwygTemplateEditorBffClientFactory } from '@easy-wizzy/common-app';
31
+ import { variableSelectorDepsFactory } from '@easy-wizzy/common-app';
32
+
33
+ import { productShelfDataSourceExpressionBuilderPluginFactory } from '@easy-wizzy/retailrocket-common';
34
+ import { stringExpressionBuilderPluginFactory, richTextToolbarPluginFactory, VariableSelector } from '@easy-wizzy/retailrocket-common';
35
+
36
+ import type { GeneralStringExpressionDataSource, NextCouponFromBatchType } from '@easy-wizzy/retailrocket-common';
37
+
38
+ import type { TransactionalListExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
39
+ import type { TransactionalNumberExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
40
+ import type { TransactionalStringExpressionDataSource } from '@easy-wizzy/retailrocket-transactional';
41
+
42
+ import { TransactionalProductShelfDataSourceExpressionBuilder } from '@easy-wizzy/retailrocket-transactional';
43
+
44
+ import { transactionalListExpressionDataSourceEvaluatorFactory } from '@/implementation/DataSources/ListDataExpressionSource/transactionalListExpressionDataSourceEvaluatorFactory';
45
+ import { transactionalNumberExpressionDataSourceEvaluatorFactory } from '@/implementation/DataSources/NumberExpressionDataSource/transactionalNumberExpressionDataSourceEvaluatorFactory';
46
+ import { transactionalStringExpressionDataSourceEvaluatorFactory } from '@/implementation/DataSources/StringExpressionDataSource/transactionalEvaluateStringExpressionDataSource';
47
+ import { transactionalComponentLibraryFactory } from '@/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/transactionalComponentLibraryFactory';
48
+ import { transactionalProductShelfDataSourceExpressionBuilderDepsFactory } from '@/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/transactionalProductShelfDataSourceExpressionBuilderDepsFactory';
49
+ import { transactionalDataAppSettingsModifierPluginFactory } from '@/implementation/AppSettingsModifierPlugin/transactionalDataAppSettingsModifierPluginFactory';
50
+
51
+ import { createApi as createTransactionalwysiwygtemplateeditorClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.transactionalwysiwygtemplateeditor';
52
+ import {
53
+ type Component,
54
+ createApi as createAddComponentLibrarySectionItemModalWindowBffClient
55
+ } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addcomponentlibrarysectionitemmodalwindow';
56
+ import { createApi as listExpressionDataSourceBffClientFactory } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.listexpressiondatasource';
57
+ import { createApi as createProductShelfBuilderModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.productshelfmodalwindow';
58
+ import { createApi as createThemeLibraryBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.themelibrary';
59
+ import { createApi as createComponentLibraryBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.componentlibrary';
60
+ import { createApi as createAddThemeLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addthemelibrarysectionitemmodalwindow';
61
+ import { createApi as createDeleteThemeLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.deletethemelibrarysectionitemmodalwindow';
62
+ import { createApi as createDeleteThemeLibrarySectionModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.deletethemelibrarysectionmodalwindow';
63
+ import { createApi as createEditThemeLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.editthemelibrarysectionitemmodalwindow';
64
+ import { createApi as createAddComponentLibrarySectionModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addcomponentlibrarysectionmodalwindow';
65
+ import { createApi as createEditComponentLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.editcomponentlibrarysectionitemmodalwindow';
66
+ import { createApi as createDeleteComponentLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.deletecomponentlibrarysectionitemmodalwindow';
67
+ import { createApi as createThemeLibrarySectionModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addthemelibrarysectionmodalwindow';
68
+ import { createApi as createDeleteComponentLibrarySectionModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.deletecomponentlibrarysectionmodalwindow';
69
+ import { createApi as createProductCategoryPickerModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.productcategorypickermodalwindow';
70
+ import { createApi as createProductPickerModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.productpickermodalwindow';
71
+ import { createApi as saveFavoriteTemplate } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.savefavoritetemplatemodalwindow';
72
+
73
+ const appTagId = '#app';
74
+ const appTag = document.querySelector(appTagId);
75
+
76
+ const params = {
77
+ partnerId: appTag!.getAttribute('data-partner-id')!,
78
+ wysiwygBffProxyBaseUrl: appTag!.getAttribute('data-wysiwyg-bff-proxy-base-url')!,
79
+ wysiwygTemplateEditorBffBaseUrl: appTag!.getAttribute('data-wysiwyg-template-editor-bff-base-url')!,
80
+ antiForgeryHeaderTokenName: appTag!.getAttribute('data-anti-forgery-header-token-name')!,
81
+ antiForgeryHeaderTokenValue: appTag!.getAttribute('data-anti-forgery-header-token-value')!,
82
+ antiForgeryFormTokenName: appTag!.getAttribute('data-anti-forgery-form-token-name')!,
83
+ antiForgeryFormTokenValue: appTag!.getAttribute('data-anti-forgery-form-token-value')!,
84
+ emailTemplateJson: appTag!.getAttribute('data-email-template-json')!,
85
+ previewTemplateDataJson: appTag!.getAttribute('data-preview-template-data-json')!,
86
+ resetTemplateFormUrl: appTag!.getAttribute('data-reset-template-form-url')!,
87
+ exitLink: appTag!.getAttribute('data-exit-link')!,
88
+ localeKey: appTag!.getAttribute('data-locale-key') as LocaleKey || 'en'
89
+ };
90
+
91
+ let transactionDataAppSettings: DataType = JSON.parse(params.previewTemplateDataJson);
92
+
93
+ const _apiMachineFetchFactory = (arg: {
94
+ baseUrl: string
95
+ }): ApiMachineFetchDelegate => apiMachineFetchFactory({
96
+ baseUrl: arg.baseUrl,
97
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
98
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
99
+ })
100
+
101
+ const transactionalMainPageBffClient = createTransactionalwysiwygtemplateeditorClient(
102
+ apiMachineFetchFactory({
103
+ baseUrl: params.wysiwygTemplateEditorBffBaseUrl,
104
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
105
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
106
+ })
107
+ );
108
+
109
+ const createFavoriteTemplateBffClient = saveFavoriteTemplate(
110
+ _apiMachineFetchFactory({
111
+ baseUrl: params.wysiwygBffProxyBaseUrl
112
+ })
113
+ );
114
+
115
+ const resetTemplate = (): void => {
116
+ const formData = new FormData();
117
+ formData.append(
118
+ params.antiForgeryFormTokenName,
119
+ params.antiForgeryFormTokenValue);
120
+
121
+ const form = createSimpleDataForm({
122
+ method: 'POST',
123
+ action: params.resetTemplateFormUrl,
124
+ formData: formData
125
+ });
126
+
127
+ document.body.appendChild(form);
128
+ form.submit();
129
+ };
130
+
131
+ let nextCouponFromBatch: NextCouponFromBatchType = {
132
+ BatchId: ''
133
+ };
134
+
135
+ const listExpressionDataSourceBffClient = listExpressionDataSourceBffClientFactory(
136
+ _apiMachineFetchFactory({
137
+ baseUrl: params.wysiwygBffProxyBaseUrl
138
+ })
139
+ );
140
+
141
+ const listExpressionEvaluator = listExpressionEvaluatorFactory({
142
+ listExpressionDataSourceEvaluator: transactionalListExpressionDataSourceEvaluatorFactory({
143
+ partnerId: params.partnerId,
144
+ getTransactionalTemplateData: () => transactionDataAppSettings,
145
+ listExpressionDataSourceBffClient: listExpressionDataSourceBffClient,
146
+ customerStockId: undefined
147
+ })
148
+ });
149
+
150
+ const numberExpressionEvaluator = numberExpressionEvaluatorDelegate({
151
+ listExpressionEvaluator: listExpressionEvaluator,
152
+ numberExpressionDataSourceEvaluator: transactionalNumberExpressionDataSourceEvaluatorFactory({
153
+ getTransactionalTemplateData: () => transactionDataAppSettings
154
+ })
155
+ })
156
+
157
+ const stringExpressionEvaluator: StringExpressionEvaluatorDelegate<
158
+ TransactionalListExpressionDataSource,
159
+ TransactionalNumberExpressionDataSource,
160
+ TransactionalStringExpressionDataSource
161
+ > = stringExpressionEvaluatorFactory({
162
+ listExpressionEvaluator: listExpressionEvaluator,
163
+ numberExpressionEvaluator: numberExpressionEvaluator,
164
+ stringExpressionDataSourceEvaluatorFactory: () => transactionalStringExpressionDataSourceEvaluatorFactory({
165
+ getTransactionalTemplateData: () => transactionDataAppSettings,
166
+ productImageUrlBuilderExpressionEvaluator: productImageUrlBuilderExpressionEvaluatorFactory({
167
+ partnerId: params.partnerId,
168
+ numberExpressionEvaluator: numberExpressionEvaluator
169
+ }),
170
+ nextCouponFromBatch: nextCouponFromBatch
171
+ })
172
+ });
173
+
174
+ const expressionEvaluator = expressionEvaluatorFactory({
175
+ listExpressionEvaluator: listExpressionEvaluator,
176
+ numberExpressionEvaluator: numberExpressionEvaluator,
177
+ stringExpressionEvaluator: stringExpressionEvaluator,
178
+ dataStructBuilderExpressionEvaluatorFactory: expressionEvaluator => dataStructBuilderExpressionEvaluatorFactory({
179
+ expressionEvaluator: expressionEvaluator
180
+ })
181
+ });
182
+
183
+ const dataStructExpressionEvaluator = dataStructBuilderExpressionEvaluatorFactory({
184
+ expressionEvaluator: expressionEvaluator
185
+ });
186
+
187
+ const app = createApp(
188
+ EditEmailTemplateApp,
189
+ {
190
+ onTemplateReset: () => {
191
+ //eslint-disable-next-line no-console
192
+ console.log('onTemplateReset');
193
+ resetTemplate();
194
+ },
195
+ deps:
196
+ editEmailTemplateAppDepsFactory<
197
+ TransactionalListExpressionDataSource,
198
+ TransactionalNumberExpressionDataSource,
199
+ TransactionalStringExpressionDataSource
200
+ >({
201
+ appSettingsModifierPlugin: transactionalDataAppSettingsModifierPluginFactory({
202
+ localeKey: params.localeKey,
203
+ getTransactionTemplateData: () => transactionDataAppSettings,
204
+ updateTransactionTemplateData: (data) => {
205
+ transactionDataAppSettings = data;
206
+ }
207
+ }),
208
+ partnerId: params.partnerId,
209
+ localeKey: params.localeKey,
210
+ exitLink: params.exitLink,
211
+ dataSourceFieldNameDelegate: ({ dataSource }) => {
212
+ return matcherFactory(dataSource as GeneralStringExpressionDataSource).Match({
213
+ StringFromContactCustomData: (customData) => customData.FieldName,
214
+ StringFromContactCustomDataWithFallback: (customDataWithFallback) => customDataWithFallback.FallbackValue,
215
+ ProductImageUrlBuilderExpression: () => 'ImageResizer',
216
+ NextCouponFromBatch: () => 'Coupon'
217
+ });
218
+ },
219
+ richTextToolbarPlugins: [
220
+ richTextToolbarPluginFactory({
221
+ richTextToolbarPluginComponent: VariableSelector,
222
+ deps: variableSelectorDepsFactory({
223
+ localeKey: params.localeKey,
224
+ stringExpressionBuilderPlugin: stringExpressionBuilderPluginFactory({
225
+ localeKey: params.localeKey
226
+ })
227
+ })
228
+ })
229
+ ],
230
+ defaultThemeLibrary: defaultThemeLibraryFactory({
231
+ localeKey: params.localeKey
232
+ }),
233
+ defaultComponentLibrary: defaultComponentLibraryFactory({
234
+ localeKey: params.localeKey
235
+ }) as DefaultComponentLibraryType<
236
+ TransactionalListExpressionDataSource,
237
+ TransactionalNumberExpressionDataSource,
238
+ TransactionalStringExpressionDataSource
239
+ >,
240
+ saveEmailTemplate: async arg => {
241
+ const result = await transactionalMainPageBffClient
242
+ .postSaveTemplate({
243
+ body: {
244
+ partnerId: params.partnerId,
245
+ templateJson: JSON.stringify(arg.emailTemplate),
246
+ previewTemplateDataJson: JSON.stringify(transactionDataAppSettings)
247
+ }
248
+ });
249
+
250
+ return result.status === 200
251
+ ? 'Success'
252
+ : 'Fail'
253
+ },
254
+ createFavoriteTemplate: async arg => {
255
+ const result = await createFavoriteTemplateBffClient
256
+ .postCreateFavoriteTransactionalTemplate({
257
+ body: {
258
+ previewTemplateDataJson: JSON.stringify(transactionDataAppSettings),
259
+ partnerId: params.partnerId,
260
+ templateJson: JSON.stringify(arg.emailTemplate),
261
+ favoriteTemplateName: 'Favorite template'
262
+ }
263
+ });
264
+
265
+ return result.status === 200
266
+ ? 'Success'
267
+ : 'Fail';
268
+ },
269
+ listExpressionEvaluator: listExpressionEvaluator,
270
+ numberExpressionEvaluator: numberExpressionEvaluator,
271
+ stringExpressionEvaluator: stringExpressionEvaluator,
272
+ dataStructExpressionEvaluator: dataStructExpressionEvaluator,
273
+ expressionEvaluator: expressionEvaluator,
274
+ canProductShelfDataSourceBeConverted: () => false,
275
+ httpClientComponentFactoryDelegate: (emailComponent): Component => {
276
+ return {
277
+ transactional: {
278
+ componentJson: JSON.stringify(emailComponent)
279
+ }
280
+ }
281
+ },
282
+ getComponentLibraryFactory: x => () =>
283
+ x.getComponentLibraryHttpClient(
284
+ {
285
+ body: {
286
+ partnerId: x.partnerId,
287
+ componentTypes: [
288
+ { transactional: {} },
289
+ { common: {} }
290
+ ]
291
+ }
292
+ }
293
+ )
294
+ .then(x => transactionalComponentLibraryFactory(x.body.sections)),
295
+ stringExpressionBuilderPlugin: stringExpressionBuilderPluginFactory({
296
+ localeKey: params.localeKey
297
+ }),
298
+ emailComponentSettingsModifierPlugin: productShelfDataSourceExpressionBuilderPluginFactory({
299
+ productShelfDataSourceExpressionBuilderComponent: TransactionalProductShelfDataSourceExpressionBuilder,
300
+ deps: transactionalProductShelfDataSourceExpressionBuilderDepsFactory({
301
+ localeKey: params.localeKey,
302
+ partnerId: params.partnerId,
303
+ customerStockId: undefined,
304
+ productShelfBuilderModalWindowBffClient: createProductShelfBuilderModalWindowBffClient(
305
+ apiMachineFetchFactory({
306
+ baseUrl: params.wysiwygBffProxyBaseUrl,
307
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
308
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
309
+ })
310
+ ),
311
+ productCategoryPickerModalWindowBffClient: createProductCategoryPickerModalWindowBffClient(
312
+ apiMachineFetchFactory({
313
+ baseUrl: params.wysiwygBffProxyBaseUrl,
314
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
315
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
316
+ })
317
+ ),
318
+ productPickerModalWindowBffClient: createProductPickerModalWindowBffClient(
319
+ apiMachineFetchFactory({
320
+ baseUrl: params.wysiwygBffProxyBaseUrl,
321
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
322
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
323
+ })
324
+ )
325
+ })
326
+ }),
327
+ initialEmailTemplate: JSON.parse(params.emailTemplateJson),
328
+ wysiwygTemplateEditorBffClient: wysiwygTemplateEditorBffClientFactory({
329
+ themeLibraryBffClient: createThemeLibraryBffClient(
330
+ apiMachineFetchFactory({
331
+ baseUrl: params.wysiwygBffProxyBaseUrl,
332
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
333
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
334
+ })
335
+ ),
336
+ componentLibraryBffClient: createComponentLibraryBffClient(
337
+ apiMachineFetchFactory({
338
+ baseUrl: params.wysiwygBffProxyBaseUrl,
339
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
340
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
341
+ })
342
+ )
343
+ }),
344
+ addThemeLibrarySectionItemModalWindowBffClient: createAddThemeLibrarySectionItemModalWindowBffClient(
345
+ apiMachineFetchFactory({
346
+ baseUrl: params.wysiwygBffProxyBaseUrl,
347
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
348
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
349
+ })
350
+ ),
351
+ addComponentLibrarySectionItemModalWindowBffClient: createAddComponentLibrarySectionItemModalWindowBffClient(
352
+ apiMachineFetchFactory({
353
+ baseUrl: params.wysiwygBffProxyBaseUrl,
354
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
355
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
356
+ })
357
+ ),
358
+ deleteThemeLibrarySectionItemModalWindowBffClient: createDeleteThemeLibrarySectionItemModalWindowBffClient(
359
+ apiMachineFetchFactory({
360
+ baseUrl: params.wysiwygBffProxyBaseUrl,
361
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
362
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
363
+ })
364
+ ),
365
+ deleteThemeLibrarySectionModalWindowBffClient: createDeleteThemeLibrarySectionModalWindowBffClient(
366
+ apiMachineFetchFactory({
367
+ baseUrl: params.wysiwygBffProxyBaseUrl,
368
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
369
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
370
+ })
371
+ ),
372
+ editThemeLibrarySectionItemModalWindowBffClient: createEditThemeLibrarySectionItemModalWindowBffClient(
373
+ apiMachineFetchFactory({
374
+ baseUrl: params.wysiwygBffProxyBaseUrl,
375
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
376
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
377
+ })
378
+ ),
379
+ createComponentLibrarySectionModalWindowBffClient: createAddComponentLibrarySectionModalWindowBffClient(
380
+ apiMachineFetchFactory({
381
+ baseUrl: params.wysiwygBffProxyBaseUrl,
382
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
383
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
384
+ })
385
+ ),
386
+ editComponentLibrarySectionItemModalWindowBffClient: createEditComponentLibrarySectionItemModalWindowBffClient(
387
+ apiMachineFetchFactory({
388
+ baseUrl: params.wysiwygBffProxyBaseUrl,
389
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
390
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
391
+ })
392
+ ),
393
+ deleteComponentLibrarySectionItemModalWindowBffClient: createDeleteComponentLibrarySectionItemModalWindowBffClient(
394
+ apiMachineFetchFactory({
395
+ baseUrl: params.wysiwygBffProxyBaseUrl,
396
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
397
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
398
+ })
399
+ ),
400
+ createThemeLibrarySectionModalWindowBffClient: createThemeLibrarySectionModalWindowBffClient(
401
+ apiMachineFetchFactory({
402
+ baseUrl: params.wysiwygBffProxyBaseUrl,
403
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
404
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
405
+ })
406
+ ),
407
+ deleteComponentLibrarySectionModalWindowBffClient: createDeleteComponentLibrarySectionModalWindowBffClient(
408
+ apiMachineFetchFactory({
409
+ baseUrl: params.wysiwygBffProxyBaseUrl,
410
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
411
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
412
+ })
413
+ )
414
+ }
415
+ )
416
+ }
417
+ );
418
+
419
+ app.use(createVuetify({
420
+ theme: false,
421
+ directives: {
422
+ ClickOutside
423
+ }
424
+ }));
425
+
426
+ app.mount(appTagId);
@@ -0,0 +1,5 @@
1
+ import {
2
+ createApi as createTransactionalwysiwygtemplateeditorClient
3
+ } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.transactionalwysiwygtemplateeditor';
4
+
5
+ export type TransactionalWysiwygTemplateEditorClient = ReturnType<typeof createTransactionalwysiwygtemplateeditorClient>;