@retailrocketgroup/retailrocket-edit.product-back-in-stock-vue-email-template-render 3.0.381747 → 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 (44) 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/editProductBackInStockEmailTemplate.d.ts +0 -0
  6. package/dist/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/productBackInStockComponentSectionItemFactory.d.ts +4 -0
  7. package/dist/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/productBackInStockEmailComponentFactory.d.ts +4 -0
  8. package/dist/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/productBackInStockComponentLibraryFactory.d.ts +4 -0
  9. package/dist/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/productBackInStockSectionFactory.d.ts +4 -0
  10. package/dist/implementation/DataSources/ListDataExpressionSource/productBackInStockEvaluateListExpressionDataSourceFactory.d.ts +8 -0
  11. package/dist/implementation/DataSources/NumberExpressionDataSource/productBackInStockEvaluateNumberExpressionDataSourceFactory.d.ts +2 -0
  12. package/dist/implementation/DataSources/StringExpressionDataSource/productBackInStockEvaluateStringExpressionDataSource.d.ts +9 -0
  13. package/dist/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/ProductBackInStockProductShelfDataSourceExpressionBuilderModal/ShelfBuilders/alternativeProductsForProductBackInStockProductListShelfBuilderDepsFactory.d.ts +8 -0
  14. package/dist/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/ProductBackInStockProductShelfDataSourceExpressionBuilderModal/ShelfBuilders/productBackInStockProductListShelfBuilderDepsFactory.d.ts +8 -0
  15. package/dist/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/ProductBackInStockProductShelfDataSourceExpressionBuilderModal/ShelfBuilders/relatedProductsForProductBackInStockProductListShelfBuilderDepsFactory.d.ts +8 -0
  16. package/dist/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/ProductBackInStockProductShelfDataSourceExpressionBuilderModal/productBackInStockProductShelfDataSourceExpressionBuilderModalDepsFactory.d.ts +11 -0
  17. package/dist/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/productBackInStockProductShelfDataSourceExpressionBuilderDepsFactory.d.ts +11 -0
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.html +35 -0
  20. package/env.d.ts +1 -0
  21. package/index.html +1 -2
  22. package/package.json +1 -1
  23. package/src/editProductBackInStockEmailTemplate.ts +407 -0
  24. package/src/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/productBackInStockComponentSectionItemFactory.ts +30 -0
  25. package/src/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/productBackInStockEmailComponentFactory.ts +26 -0
  26. package/src/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/productBackInStockComponentLibraryFactory.ts +29 -0
  27. package/src/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/productBackInStockSectionFactory.ts +33 -0
  28. package/src/implementation/DataSources/ListDataExpressionSource/productBackInStockEvaluateListExpressionDataSourceFactory.ts +134 -0
  29. package/src/implementation/DataSources/NumberExpressionDataSource/productBackInStockEvaluateNumberExpressionDataSourceFactory.ts +10 -0
  30. package/src/implementation/DataSources/StringExpressionDataSource/productBackInStockEvaluateStringExpressionDataSource.ts +56 -0
  31. package/src/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/ProductBackInStockProductShelfDataSourceExpressionBuilderModal/ShelfBuilders/alternativeProductsForProductBackInStockProductListShelfBuilderDepsFactory.ts +33 -0
  32. package/src/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/ProductBackInStockProductShelfDataSourceExpressionBuilderModal/ShelfBuilders/productBackInStockProductListShelfBuilderDepsFactory.ts +33 -0
  33. package/src/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/ProductBackInStockProductShelfDataSourceExpressionBuilderModal/ShelfBuilders/relatedProductsForProductBackInStockProductListShelfBuilderDepsFactory.ts +33 -0
  34. package/src/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/ProductBackInStockProductShelfDataSourceExpressionBuilderModal/productBackInStockProductShelfDataSourceExpressionBuilderModalDepsFactory.ts +151 -0
  35. package/src/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/productBackInStockProductShelfDataSourceExpressionBuilderDepsFactory.ts +35 -0
  36. package/src/index.ts +0 -0
  37. package/tsconfig.app.json +19 -0
  38. package/tsconfig.json +14 -0
  39. package/tsconfig.node.json +11 -0
  40. package/tsconfig.test.json +11 -0
  41. package/vite.config.ts +36 -0
  42. package/assets/main.css +0 -1
  43. package/assets/main.js +0 -217
  44. package/favicon.ico +0 -0
File without changes
@@ -0,0 +1,4 @@
1
+ import { ComponentLibrarySectionItem } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.componentlibrary/main';
2
+ import { CustomComponentSectionItemType } from '@easy-wizzy/core';
3
+ import { ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const productBackInStockComponentSectionItemFactory: (componentLibrarySectionItem: ComponentLibrarySectionItem) => CustomComponentSectionItemType<ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource>;
@@ -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 { ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const productBackInStockEmailComponentFactory: (component: Component) => EmailComponentType<ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource>;
@@ -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 { ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const productBackInStockComponentLibraryFactory: (componentLibrary: Array<ComponentLibrarySection>) => CustomComponentLibraryType<ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource>;
@@ -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 { ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const productBackInStockSectionFactory: (section: ComponentLibrarySection) => CustomComponentSectionType<ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource>;
@@ -0,0 +1,8 @@
1
+ import { ListExpressionDataSourceBffClient } from '@easy-wizzy/common-app';
2
+ import { ListExpressionDataSourceEvaluatorDelegate } from '@easy-wizzy/core';
3
+ import { ProductBackInStockListExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const productBackInStockEvaluateListExpressionDataSourceFactory: (arg: {
5
+ partnerId: string;
6
+ listExpressionDataSourceBffClient: ListExpressionDataSourceBffClient;
7
+ customerStockId: string | undefined;
8
+ }) => ListExpressionDataSourceEvaluatorDelegate<ProductBackInStockListExpressionDataSource>;
@@ -0,0 +1,2 @@
1
+ import { NumberExpressionDataSourceEvaluatorDelegate } from '@easy-wizzy/core';
2
+ export declare const productBackInStockEvaluateNumberExpressionDataSourceFactory: <TNumberExpressionDataSource>() => NumberExpressionDataSourceEvaluatorDelegate<TNumberExpressionDataSource>;
@@ -0,0 +1,9 @@
1
+ import { StringExpressionDataSourceEvaluatorDelegate } from '@easy-wizzy/core';
2
+ import { ContactCustomData, NextCouponFromBatchType } from '@easy-wizzy/retailrocket-common';
3
+ import { ProductImageUrlBuilderExpressionEvaluatorDelegate } from '@easy-wizzy/common-app';
4
+ import { ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource, ProductBackInStockStringExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
5
+ export declare const productBackInStockStringExpressionDataSourceEvaluatorFactory: (arg: {
6
+ productImageUrlBuilderExpressionEvaluator: ProductImageUrlBuilderExpressionEvaluatorDelegate<ProductBackInStockListExpressionDataSource, ProductBackInStockNumberExpressionDataSource>;
7
+ contactCustomData: ContactCustomData;
8
+ nextCouponFromBatch: NextCouponFromBatchType;
9
+ }) => StringExpressionDataSourceEvaluatorDelegate<ProductBackInStockStringExpressionDataSource>;
@@ -0,0 +1,8 @@
1
+ import { LocaleKey } from '@easy-wizzy/core';
2
+ import { ProductShelfBuilderModalWindowBffClient } from '@easy-wizzy/common-app';
3
+ import { AlternativeProductsForProductBackInStockProductListShelfBuilderDeps } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const alternativeProductsForAbandonedProductListShelfBuilderDepsFactory: (arg: {
5
+ localeKey: LocaleKey;
6
+ partnerId: string;
7
+ getAllStockIdsHttpClient: ProductShelfBuilderModalWindowBffClient["postGetAllStockIds"];
8
+ }) => AlternativeProductsForProductBackInStockProductListShelfBuilderDeps;
@@ -0,0 +1,8 @@
1
+ import { LocaleKey } from '@easy-wizzy/core';
2
+ import { ProductShelfBuilderModalWindowBffClient } from '@easy-wizzy/common-app';
3
+ import { ProductBackInStockProductListShelfBuilderDeps } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const productBackInStockProductListShelfBuilderDepsFactory: (arg: {
5
+ localeKey: LocaleKey;
6
+ partnerId: string;
7
+ getAllStockIdsHttpClient: ProductShelfBuilderModalWindowBffClient["postGetAllStockIds"];
8
+ }) => ProductBackInStockProductListShelfBuilderDeps;
@@ -0,0 +1,8 @@
1
+ import { LocaleKey } from '@easy-wizzy/core';
2
+ import { ProductShelfBuilderModalWindowBffClient } from '@easy-wizzy/common-app';
3
+ import { RelatedProductsForProductBackInStockProductListShelfBuilderDeps } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const relatedProductsForAbandonedProductListShelfBuilderDepsFactory: (arg: {
5
+ localeKey: LocaleKey;
6
+ partnerId: string;
7
+ getAllStockIdsHttpClient: ProductShelfBuilderModalWindowBffClient["postGetAllStockIds"];
8
+ }) => RelatedProductsForProductBackInStockProductListShelfBuilderDeps;
@@ -0,0 +1,11 @@
1
+ import { LocaleKey } from '@easy-wizzy/core';
2
+ import { ProductShelfBuilderModalWindowBffClient, ProductPickerModalWindowBffClient, ProductCategoryPickerModalWindowBffClient } from '@easy-wizzy/common-app';
3
+ import { ProductBackInStockProductShelfDataSourceExpressionBuilderModalDeps } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const productBackInStockProductShelfDataSourceExpressionBuilderModalDepsFactory: (arg: {
5
+ localeKey: LocaleKey;
6
+ partnerId: string;
7
+ customerStockId: string | undefined;
8
+ productShelfBuilderModalWindowBffClient: ProductShelfBuilderModalWindowBffClient;
9
+ productCategoryPickerModalWindowBffClient: ProductCategoryPickerModalWindowBffClient;
10
+ productPickerModalWindowBffClient: ProductPickerModalWindowBffClient;
11
+ }) => ProductBackInStockProductShelfDataSourceExpressionBuilderModalDeps;
@@ -0,0 +1,11 @@
1
+ import { LocaleKey } from '@easy-wizzy/core';
2
+ import { ProductShelfBuilderModalWindowBffClient, ProductPickerModalWindowBffClient, ProductCategoryPickerModalWindowBffClient } from '@easy-wizzy/common-app';
3
+ import { ProductBackInStockProductShelfDataSourceExpressionBuilderDeps } from '@easy-wizzy/retailrocket-product-back-in-stock';
4
+ export declare const productBackInStockProductShelfDataSourceExpressionBuilderDepsFactory: (arg: {
5
+ localeKey: LocaleKey;
6
+ partnerId: string;
7
+ customerStockId: string | undefined;
8
+ productShelfBuilderModalWindowBffClient: ProductShelfBuilderModalWindowBffClient;
9
+ productCategoryPickerModalWindowBffClient: ProductCategoryPickerModalWindowBffClient;
10
+ productPickerModalWindowBffClient: ProductPickerModalWindowBffClient;
11
+ }) => ProductBackInStockProductShelfDataSourceExpressionBuilderDeps;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
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-exit-link="ya.ru"
32
+ data-locale-key="en"
33
+ ></div>
34
+ </body>
35
+ </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
@@ -31,5 +29,6 @@
31
29
  data-exit-link="ya.ru"
32
30
  data-locale-key="en"
33
31
  ></div>
32
+ <script type="module" src="/src/editProductBackInStockEmailTemplate.ts"></script>
34
33
  </body>
35
34
  </html>
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@retailrocketgroup/retailrocket-edit.product-back-in-stock-vue-email-template-render",
3
- "version": "3.0.381747",
3
+ "version": "5.0.384530",
4
4
  "private": false
5
5
  }
@@ -0,0 +1,407 @@
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
+
20
+ import { defaultThemeLibraryFactory } from '@easy-wizzy/theme-library';
21
+ import { defaultComponentLibraryFactory } from '@easy-wizzy/component-library';
22
+
23
+ import type { ApiMachineFetchDelegate } from '@easy-wizzy/common-app';
24
+
25
+ import { apiMachineFetchFactory } from '@easy-wizzy/common-app';
26
+ import { editEmailTemplateAppDepsFactory } from '@easy-wizzy/common-app';
27
+ import { productImageUrlBuilderExpressionEvaluatorFactory } from '@easy-wizzy/common-app';
28
+ import { wysiwygTemplateEditorBffClientFactory } from '@easy-wizzy/common-app';
29
+ import { variableSelectorDepsFactory } from '@easy-wizzy/common-app';
30
+
31
+ import { productShelfDataSourceExpressionBuilderPluginFactory } from '@easy-wizzy/retailrocket-common';
32
+ import { stringExpressionBuilderPluginFactory, richTextToolbarPluginFactory, VariableSelector } from '@easy-wizzy/retailrocket-common';
33
+
34
+ import type { ContactCustomData, GeneralStringExpressionDataSource, NextCouponFromBatchType } from '@easy-wizzy/retailrocket-common';
35
+
36
+ import type { ProductBackInStockListExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
37
+ import type { ProductBackInStockNumberExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
38
+ import type { ProductBackInStockStringExpressionDataSource } from '@easy-wizzy/retailrocket-product-back-in-stock';
39
+
40
+ import { ProductBackInStockProductShelfDataSourceExpressionBuilder } from '@easy-wizzy/retailrocket-product-back-in-stock';
41
+
42
+ import { productBackInStockEvaluateListExpressionDataSourceFactory } from '@/implementation/DataSources/ListDataExpressionSource/productBackInStockEvaluateListExpressionDataSourceFactory';
43
+ import { productBackInStockEvaluateNumberExpressionDataSourceFactory } from '@/implementation/DataSources/NumberExpressionDataSource/productBackInStockEvaluateNumberExpressionDataSourceFactory';
44
+ import { productBackInStockStringExpressionDataSourceEvaluatorFactory } from '@/implementation/DataSources/StringExpressionDataSource/productBackInStockEvaluateStringExpressionDataSource';
45
+ import { productBackInStockComponentLibraryFactory } from '@/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CustomComponentLibrary/productBackInStockComponentLibraryFactory';
46
+ import { productBackInStockProductShelfDataSourceExpressionBuilderDepsFactory } from '@/implementation/EmailComponentSettingsModifierPlugin/ProductShelfDataSourceExpressionBuilder/productBackInStockProductShelfDataSourceExpressionBuilderDepsFactory';
47
+
48
+ import { createApi as createTriggerProductBackInStockWysiwygTemplateEditorClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.triggerproductbackinstockwysiwygtemplateeditor';
49
+ import {
50
+ type Component,
51
+ createApi as createAddComponentLibrarySectionItemModalWindowBffClient
52
+ } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addcomponentlibrarysectionitemmodalwindow';
53
+ import { createApi as listExpressionDataSourceBffClientFactory } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.listexpressiondatasource';
54
+ import { createApi as createProductShelfBuilderModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.productshelfmodalwindow';
55
+ import { createApi as createThemeLibraryBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.themelibrary';
56
+ import { createApi as createComponentLibraryBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.componentlibrary';
57
+ import { createApi as createAddThemeLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addthemelibrarysectionitemmodalwindow';
58
+ import { createApi as createDeleteThemeLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.deletethemelibrarysectionitemmodalwindow';
59
+ import { createApi as createDeleteThemeLibrarySectionModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.deletethemelibrarysectionmodalwindow';
60
+ import { createApi as createEditThemeLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.editthemelibrarysectionitemmodalwindow';
61
+ import { createApi as createAddComponentLibrarySectionModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addcomponentlibrarysectionmodalwindow';
62
+ import { createApi as createEditComponentLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.editcomponentlibrarysectionitemmodalwindow';
63
+ import { createApi as createDeleteComponentLibrarySectionItemModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.deletecomponentlibrarysectionitemmodalwindow';
64
+ import { createApi as createThemeLibrarySectionModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.addthemelibrarysectionmodalwindow';
65
+ import { createApi as createDeleteComponentLibrarySectionModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.deletecomponentlibrarysectionmodalwindow';
66
+ import { createApi as createProductCategoryPickerModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.productcategorypickermodalwindow';
67
+ import { createApi as createProductPickerModalWindowBffClient } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.productpickermodalwindow';
68
+ import { createApi as saveFavoriteTemplate } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.savefavoritetemplatemodalwindow';
69
+
70
+ const appTagId = '#app';
71
+ const appTag = document.querySelector(appTagId);
72
+
73
+ const params = {
74
+ partnerId: appTag!.getAttribute('data-partner-id')!,
75
+ wysiwygBffProxyBaseUrl: appTag!.getAttribute('data-wysiwyg-bff-proxy-base-url')!,
76
+ wysiwygTemplateEditorBffBaseUrl: appTag!.getAttribute('data-wysiwyg-template-editor-bff-base-url')!,
77
+ antiForgeryHeaderTokenName: appTag!.getAttribute('data-anti-forgery-header-token-name')!,
78
+ antiForgeryHeaderTokenValue: appTag!.getAttribute('data-anti-forgery-header-token-value')!,
79
+ antiForgeryFormTokenName: appTag!.getAttribute('data-anti-forgery-form-token-name')!,
80
+ antiForgeryFormTokenValue: appTag!.getAttribute('data-anti-forgery-form-token-value')!,
81
+ emailTemplateJson: appTag!.getAttribute('data-email-template-json')!,
82
+ previewTemplateDataJson: appTag!.getAttribute('data-preview-template-data-json')!,
83
+ resetTemplateFormUrl: appTag!.getAttribute('data-reset-template-form-url')!,
84
+ exitLink: appTag!.getAttribute('data-exit-link')!,
85
+ localeKey: appTag!.getAttribute('data-locale-key') as LocaleKey || 'en'
86
+ };
87
+
88
+ const _apiMachineFetchFactory = (arg: {
89
+ baseUrl: string
90
+ }): ApiMachineFetchDelegate => apiMachineFetchFactory({
91
+ baseUrl: arg.baseUrl,
92
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
93
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
94
+ });
95
+
96
+ const productBackInStockMainPageBffClient = createTriggerProductBackInStockWysiwygTemplateEditorClient(
97
+ apiMachineFetchFactory({
98
+ baseUrl: params.wysiwygTemplateEditorBffBaseUrl,
99
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
100
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
101
+ })
102
+ );
103
+
104
+ const createFavoriteTemplateBffClient = saveFavoriteTemplate(
105
+ _apiMachineFetchFactory({
106
+ baseUrl: params.wysiwygBffProxyBaseUrl
107
+ })
108
+ );
109
+
110
+ const resetTemplate = (): void => {
111
+ const formData = new FormData();
112
+ formData.append(
113
+ params.antiForgeryFormTokenName,
114
+ params.antiForgeryFormTokenValue);
115
+
116
+ const form = createSimpleDataForm({
117
+ method: 'POST',
118
+ action: params.resetTemplateFormUrl,
119
+ formData: formData
120
+ });
121
+
122
+ document.body.appendChild(form);
123
+ form.submit();
124
+ };
125
+
126
+ let contactCustomData: ContactCustomData = {};
127
+ let nextCouponFromBatch: NextCouponFromBatchType = {
128
+ BatchId: ''
129
+ };
130
+
131
+ const listExpressionDataSourceBffClient = listExpressionDataSourceBffClientFactory(
132
+ _apiMachineFetchFactory({
133
+ baseUrl: params.wysiwygBffProxyBaseUrl
134
+ })
135
+ );
136
+
137
+ const listExpressionDataSourceEvaluator = productBackInStockEvaluateListExpressionDataSourceFactory({
138
+ partnerId: params.partnerId,
139
+ listExpressionDataSourceBffClient: listExpressionDataSourceBffClient,
140
+ customerStockId: undefined
141
+ });
142
+
143
+ const listExpressionEvaluator = listExpressionEvaluatorFactory({
144
+ listExpressionDataSourceEvaluator: listExpressionDataSourceEvaluator
145
+ });
146
+
147
+ const numberExpressionDataSourceEvaluator = productBackInStockEvaluateNumberExpressionDataSourceFactory();
148
+
149
+ const numberExpressionEvaluator = numberExpressionEvaluatorDelegate({
150
+ listExpressionEvaluator: listExpressionEvaluator,
151
+ numberExpressionDataSourceEvaluator: numberExpressionDataSourceEvaluator
152
+ })
153
+
154
+ const stringExpressionEvaluator: StringExpressionEvaluatorDelegate<
155
+ ProductBackInStockListExpressionDataSource,
156
+ ProductBackInStockNumberExpressionDataSource,
157
+ ProductBackInStockStringExpressionDataSource
158
+ > = stringExpressionEvaluatorFactory({
159
+ listExpressionEvaluator: listExpressionEvaluator,
160
+ numberExpressionEvaluator: numberExpressionEvaluator,
161
+ stringExpressionDataSourceEvaluatorFactory: () => productBackInStockStringExpressionDataSourceEvaluatorFactory({
162
+ productImageUrlBuilderExpressionEvaluator: productImageUrlBuilderExpressionEvaluatorFactory({
163
+ partnerId: params.partnerId,
164
+ numberExpressionEvaluator: numberExpressionEvaluator
165
+ }),
166
+ contactCustomData: contactCustomData,
167
+ nextCouponFromBatch: nextCouponFromBatch
168
+ })
169
+ });
170
+
171
+ const expressionEvaluator = expressionEvaluatorFactory({
172
+ listExpressionEvaluator: listExpressionEvaluator,
173
+ numberExpressionEvaluator: numberExpressionEvaluator,
174
+ stringExpressionEvaluator: stringExpressionEvaluator,
175
+ dataStructBuilderExpressionEvaluatorFactory: expressionEvaluator => dataStructBuilderExpressionEvaluatorFactory({
176
+ expressionEvaluator: expressionEvaluator
177
+ })
178
+ });
179
+
180
+ const dataStructExpressionEvaluator = dataStructBuilderExpressionEvaluatorFactory({
181
+ expressionEvaluator: expressionEvaluator
182
+ });
183
+
184
+ const app = createApp(
185
+ EditEmailTemplateApp,
186
+ {
187
+ onTemplateReset: () => {
188
+ resetTemplate();
189
+ },
190
+ deps:
191
+ editEmailTemplateAppDepsFactory<
192
+ ProductBackInStockListExpressionDataSource,
193
+ ProductBackInStockNumberExpressionDataSource,
194
+ ProductBackInStockStringExpressionDataSource
195
+ >({
196
+ partnerId: params.partnerId,
197
+ exitLink: params.exitLink,
198
+ localeKey: params.localeKey,
199
+ dataSourceFieldNameDelegate: ({ dataSource }) => {
200
+ return matcherFactory(dataSource as GeneralStringExpressionDataSource).Match({
201
+ StringFromContactCustomData: (customData) => customData.FieldName,
202
+ StringFromContactCustomDataWithFallback: (customDataWithFallback) => customDataWithFallback.FallbackValue,
203
+ ProductImageUrlBuilderExpression: () => 'ImageResizer',
204
+ NextCouponFromBatch: () => 'Coupon'
205
+ });
206
+ },
207
+ richTextToolbarPlugins: [
208
+ richTextToolbarPluginFactory({
209
+ richTextToolbarPluginComponent: VariableSelector,
210
+ deps: variableSelectorDepsFactory({
211
+ localeKey: params.localeKey,
212
+ stringExpressionBuilderPlugin: stringExpressionBuilderPluginFactory({
213
+ localeKey: params.localeKey
214
+ })
215
+ })
216
+ })
217
+ ],
218
+ defaultThemeLibrary: defaultThemeLibraryFactory({
219
+ localeKey: params.localeKey
220
+ }),
221
+ defaultComponentLibrary: defaultComponentLibraryFactory({
222
+ localeKey: params.localeKey
223
+ }),
224
+ saveEmailTemplate: async arg => {
225
+ const result = await productBackInStockMainPageBffClient
226
+ .postSaveTemplate({
227
+ body: {
228
+ partnerId: params.partnerId,
229
+ templateJson: JSON.stringify(arg.emailTemplate)
230
+ }
231
+ })
232
+
233
+ return result.status === 200
234
+ ? 'Success'
235
+ : 'Fail'
236
+ },
237
+ createFavoriteTemplate: async arg => {
238
+ const result = await createFavoriteTemplateBffClient
239
+ .postCreateFavoriteTriggerProductBackInStockTemplate({
240
+ body: {
241
+ partnerId: params.partnerId,
242
+ templateJson: JSON.stringify(arg.emailTemplate),
243
+ favoriteTemplateName: 'Favorite template'
244
+ }
245
+ });
246
+
247
+ return result.status === 200
248
+ ? 'Success'
249
+ : 'Fail';
250
+ },
251
+ listExpressionEvaluator: listExpressionEvaluator,
252
+ numberExpressionEvaluator: numberExpressionEvaluator,
253
+ stringExpressionEvaluator: stringExpressionEvaluator,
254
+ dataStructExpressionEvaluator: dataStructExpressionEvaluator,
255
+ expressionEvaluator: expressionEvaluator,
256
+ getComponentLibraryFactory: x => () =>
257
+ x.getComponentLibraryHttpClient(
258
+ {
259
+ body: {
260
+ partnerId: x.partnerId,
261
+ componentTypes: [
262
+ { triggerProductBackInStock: {} },
263
+ { common: {} }
264
+ ]
265
+ }
266
+ }
267
+ )
268
+ .then(x => productBackInStockComponentLibraryFactory(x.body.sections)),
269
+ canProductShelfDataSourceBeConverted: () => false,
270
+ httpClientComponentFactoryDelegate: (emailComponent): Component => {
271
+ return {
272
+ triggerProductBackInStock: {
273
+ componentJson: JSON.stringify(emailComponent)
274
+ }
275
+ }
276
+ },
277
+ stringExpressionBuilderPlugin: stringExpressionBuilderPluginFactory({
278
+ localeKey: params.localeKey
279
+ }),
280
+ emailComponentSettingsModifierPlugin: productShelfDataSourceExpressionBuilderPluginFactory({
281
+ productShelfDataSourceExpressionBuilderComponent: ProductBackInStockProductShelfDataSourceExpressionBuilder,
282
+ deps: productBackInStockProductShelfDataSourceExpressionBuilderDepsFactory({
283
+ localeKey: params.localeKey,
284
+ partnerId: params.partnerId,
285
+ customerStockId: 'customerStockId',
286
+ productShelfBuilderModalWindowBffClient: createProductShelfBuilderModalWindowBffClient(
287
+ apiMachineFetchFactory({
288
+ baseUrl: params.wysiwygBffProxyBaseUrl,
289
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
290
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
291
+ })
292
+ ),
293
+ productCategoryPickerModalWindowBffClient: createProductCategoryPickerModalWindowBffClient(
294
+ apiMachineFetchFactory({
295
+ baseUrl: params.wysiwygBffProxyBaseUrl,
296
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
297
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
298
+ })
299
+ ),
300
+ productPickerModalWindowBffClient: createProductPickerModalWindowBffClient(
301
+ apiMachineFetchFactory({
302
+ baseUrl: params.wysiwygBffProxyBaseUrl,
303
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
304
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
305
+ })
306
+ )
307
+ })
308
+ }),
309
+ initialEmailTemplate: JSON.parse(params.emailTemplateJson),
310
+ wysiwygTemplateEditorBffClient: wysiwygTemplateEditorBffClientFactory({
311
+ themeLibraryBffClient: createThemeLibraryBffClient(
312
+ apiMachineFetchFactory({
313
+ baseUrl: params.wysiwygBffProxyBaseUrl,
314
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
315
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
316
+ })
317
+ ),
318
+ componentLibraryBffClient: createComponentLibraryBffClient(
319
+ apiMachineFetchFactory({
320
+ baseUrl: params.wysiwygBffProxyBaseUrl,
321
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
322
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
323
+ })
324
+ )
325
+ }),
326
+ addThemeLibrarySectionItemModalWindowBffClient: createAddThemeLibrarySectionItemModalWindowBffClient(
327
+ apiMachineFetchFactory({
328
+ baseUrl: params.wysiwygBffProxyBaseUrl,
329
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
330
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
331
+ })
332
+ ),
333
+ addComponentLibrarySectionItemModalWindowBffClient: createAddComponentLibrarySectionItemModalWindowBffClient(
334
+ apiMachineFetchFactory({
335
+ baseUrl: params.wysiwygBffProxyBaseUrl,
336
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
337
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
338
+ })
339
+ ),
340
+ deleteThemeLibrarySectionItemModalWindowBffClient: createDeleteThemeLibrarySectionItemModalWindowBffClient(
341
+ apiMachineFetchFactory({
342
+ baseUrl: params.wysiwygBffProxyBaseUrl,
343
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
344
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
345
+ })
346
+ ),
347
+ deleteThemeLibrarySectionModalWindowBffClient: createDeleteThemeLibrarySectionModalWindowBffClient(
348
+ apiMachineFetchFactory({
349
+ baseUrl: params.wysiwygBffProxyBaseUrl,
350
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
351
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
352
+ })
353
+ ),
354
+ editThemeLibrarySectionItemModalWindowBffClient: createEditThemeLibrarySectionItemModalWindowBffClient(
355
+ apiMachineFetchFactory({
356
+ baseUrl: params.wysiwygBffProxyBaseUrl,
357
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
358
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
359
+ })
360
+ ),
361
+ createComponentLibrarySectionModalWindowBffClient: createAddComponentLibrarySectionModalWindowBffClient(
362
+ apiMachineFetchFactory({
363
+ baseUrl: params.wysiwygBffProxyBaseUrl,
364
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
365
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
366
+ })
367
+ ),
368
+ editComponentLibrarySectionItemModalWindowBffClient: createEditComponentLibrarySectionItemModalWindowBffClient(
369
+ apiMachineFetchFactory({
370
+ baseUrl: params.wysiwygBffProxyBaseUrl,
371
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
372
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
373
+ })
374
+ ),
375
+ deleteComponentLibrarySectionItemModalWindowBffClient: createDeleteComponentLibrarySectionItemModalWindowBffClient(
376
+ apiMachineFetchFactory({
377
+ baseUrl: params.wysiwygBffProxyBaseUrl,
378
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
379
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
380
+ })
381
+ ),
382
+ createThemeLibrarySectionModalWindowBffClient: createThemeLibrarySectionModalWindowBffClient(
383
+ apiMachineFetchFactory({
384
+ baseUrl: params.wysiwygBffProxyBaseUrl,
385
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
386
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
387
+ })
388
+ ),
389
+ deleteComponentLibrarySectionModalWindowBffClient: createDeleteComponentLibrarySectionModalWindowBffClient(
390
+ apiMachineFetchFactory({
391
+ baseUrl: params.wysiwygBffProxyBaseUrl,
392
+ antiForgeryTokenHeaderName: params.antiForgeryHeaderTokenName,
393
+ antiForgeryTokenValue: params.antiForgeryHeaderTokenValue
394
+ })
395
+ )
396
+ })
397
+ }
398
+ );
399
+
400
+ app.use(createVuetify({
401
+ theme: false,
402
+ directives: {
403
+ ClickOutside
404
+ }
405
+ }));
406
+
407
+ app.mount(appTagId);
@@ -0,0 +1,30 @@
1
+ import type {
2
+ ComponentLibrarySectionItem,
3
+ } from '@retailrocket/retailrocket.wysiwyg.bff.v2.apiclients.componentlibrary/main';
4
+ import type { CustomComponentSectionItemType } from '@easy-wizzy/core';
5
+ import type {
6
+ ProductBackInStockListExpressionDataSource
7
+ } from '@easy-wizzy/retailrocket-product-back-in-stock';
8
+ import type {
9
+ ProductBackInStockNumberExpressionDataSource
10
+ } from '@easy-wizzy/retailrocket-product-back-in-stock';
11
+ import type {
12
+ ProductBackInStockStringExpressionDataSource
13
+ } from '@easy-wizzy/retailrocket-product-back-in-stock';
14
+ import {
15
+ productBackInStockEmailComponentFactory
16
+ } from '@/implementation/Apps/components/WysiwygTemplateEditor/AsideMenu/ComponentLibrary/CreateComponentLibrarySectionModalWindow/productBackInStockEmailComponentFactory';
17
+
18
+ export const productBackInStockComponentSectionItemFactory = (
19
+ componentLibrarySectionItem: ComponentLibrarySectionItem,
20
+ ): CustomComponentSectionItemType<
21
+ ProductBackInStockListExpressionDataSource,
22
+ ProductBackInStockNumberExpressionDataSource,
23
+ ProductBackInStockStringExpressionDataSource
24
+ > => {
25
+ return {
26
+ sectionItemId: componentLibrarySectionItem.sectionItemId,
27
+ sectionItemName: componentLibrarySectionItem.sectionItemName,
28
+ componentTemplate: productBackInStockEmailComponentFactory(componentLibrarySectionItem.component),
29
+ };
30
+ };