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