@capillarytech/creatives-library 8.0.246-alpha.0 → 8.0.246

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 (133) hide show
  1. package/assets/Android.png +0 -0
  2. package/assets/iOS.png +0 -0
  3. package/constants/unified.js +1 -2
  4. package/initialReducer.js +0 -2
  5. package/package.json +1 -1
  6. package/services/api.js +0 -10
  7. package/services/tests/api.test.js +0 -18
  8. package/utils/common.js +0 -5
  9. package/utils/commonUtils.js +5 -28
  10. package/utils/tests/commonUtil.test.js +0 -224
  11. package/utils/transformTemplateConfig.js +10 -0
  12. package/v2Components/CapDeviceContent/index.js +56 -61
  13. package/v2Components/CapTagList/index.js +1 -6
  14. package/v2Components/CapTagListWithInput/index.js +1 -5
  15. package/v2Components/CapTagListWithInput/messages.js +1 -1
  16. package/v2Components/CapWhatsappCTA/tests/index.test.js +0 -5
  17. package/v2Components/ErrorInfoNote/index.js +72 -447
  18. package/v2Components/ErrorInfoNote/messages.js +0 -22
  19. package/v2Components/ErrorInfoNote/style.scss +4 -280
  20. package/v2Components/FormBuilder/tests/index.test.js +4 -13
  21. package/v2Components/HtmlEditor/HTMLEditor.js +94 -642
  22. package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +133 -1135
  23. package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +16 -27
  24. package/v2Components/HtmlEditor/_htmlEditor.scss +45 -108
  25. package/v2Components/HtmlEditor/_index.lazy.scss +1 -1
  26. package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +101 -13
  27. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +139 -148
  28. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +1 -2
  29. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
  30. package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +0 -9
  31. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +1 -1
  32. package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +0 -22
  33. package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +7 -4
  34. package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +45 -35
  35. package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +3 -1
  36. package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
  37. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +6 -7
  38. package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +6 -3
  39. package/v2Components/HtmlEditor/components/PreviewPane/index.js +13 -11
  40. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
  41. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +152 -0
  42. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +31 -49
  43. package/v2Components/HtmlEditor/constants.js +20 -29
  44. package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
  45. package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
  46. package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
  47. package/v2Components/HtmlEditor/hooks/useValidation.js +45 -150
  48. package/v2Components/HtmlEditor/index.js +1 -1
  49. package/v2Components/HtmlEditor/messages.js +85 -95
  50. package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +102 -134
  51. package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
  52. package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -66
  53. package/v2Components/MobilePushPreviewV2/index.js +7 -32
  54. package/v2Components/TemplatePreview/_templatePreview.scss +24 -44
  55. package/v2Components/TemplatePreview/index.js +32 -47
  56. package/v2Components/TemplatePreview/messages.js +0 -4
  57. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +0 -1
  58. package/v2Components/TestAndPreviewSlidebox/index.js +25 -31
  59. package/v2Containers/BeeEditor/index.js +90 -172
  60. package/v2Containers/CreativesContainer/SlideBoxContent.js +51 -128
  61. package/v2Containers/CreativesContainer/SlideBoxFooter.js +12 -113
  62. package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -2
  63. package/v2Containers/CreativesContainer/constants.js +0 -1
  64. package/v2Containers/CreativesContainer/index.js +46 -238
  65. package/v2Containers/CreativesContainer/messages.js +0 -8
  66. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +2 -11
  67. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +50 -38
  68. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -91
  69. package/v2Containers/Email/actions.js +0 -7
  70. package/v2Containers/Email/constants.js +1 -5
  71. package/v2Containers/Email/index.js +30 -229
  72. package/v2Containers/Email/messages.js +0 -32
  73. package/v2Containers/Email/reducer.js +1 -12
  74. package/v2Containers/Email/sagas.js +7 -61
  75. package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +0 -2
  76. package/v2Containers/Email/tests/sagas.test.js +1 -1
  77. package/v2Containers/EmailWrapper/components/EmailWrapperView.js +15 -210
  78. package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +74 -40
  79. package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +67 -2
  80. package/v2Containers/EmailWrapper/constants.js +0 -2
  81. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +77 -629
  82. package/v2Containers/EmailWrapper/index.js +23 -103
  83. package/v2Containers/EmailWrapper/messages.js +1 -61
  84. package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +214 -0
  85. package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +77 -509
  86. package/v2Containers/InApp/actions.js +0 -7
  87. package/v2Containers/InApp/constants.js +4 -20
  88. package/v2Containers/InApp/index.js +357 -801
  89. package/v2Containers/InApp/index.scss +3 -4
  90. package/v2Containers/InApp/messages.js +3 -7
  91. package/v2Containers/InApp/reducer.js +3 -21
  92. package/v2Containers/InApp/sagas.js +9 -29
  93. package/v2Containers/InApp/selectors.js +5 -25
  94. package/v2Containers/InApp/tests/index.test.js +50 -154
  95. package/v2Containers/InApp/tests/reducer.test.js +0 -34
  96. package/v2Containers/InApp/tests/sagas.test.js +9 -61
  97. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +0 -3
  98. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +0 -2
  99. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +0 -2
  100. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +0 -9
  101. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -12
  102. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +0 -4
  103. package/v2Containers/TagList/index.js +19 -62
  104. package/v2Containers/Templates/_templates.scss +1 -60
  105. package/v2Containers/Templates/index.js +4 -89
  106. package/v2Containers/Templates/messages.js +0 -4
  107. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +0 -35
  108. package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +0 -874
  109. package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -254
  110. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -363
  111. package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
  112. package/v2Components/HtmlEditor/hooks/__tests__/useValidation.apiErrors.test.js +0 -630
  113. package/v2Containers/BeePopupEditor/constants.js +0 -10
  114. package/v2Containers/BeePopupEditor/index.js +0 -193
  115. package/v2Containers/BeePopupEditor/tests/index.test.js +0 -627
  116. package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +0 -1317
  117. package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +0 -1605
  118. package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +0 -520
  119. package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +0 -643
  120. package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +0 -376
  121. package/v2Containers/InApp/__tests__/sagas.test.js +0 -363
  122. package/v2Containers/InApp/tests/selectors.test.js +0 -612
  123. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +0 -162
  124. package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +0 -267
  125. package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +0 -9
  126. package/v2Containers/InAppWrapper/constants.js +0 -16
  127. package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +0 -473
  128. package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +0 -198
  129. package/v2Containers/InAppWrapper/index.js +0 -148
  130. package/v2Containers/InAppWrapper/messages.js +0 -49
  131. package/v2Containers/InappAdvance/index.js +0 -1099
  132. package/v2Containers/InappAdvance/index.scss +0 -10
  133. package/v2Containers/InappAdvance/tests/index.test.js +0 -448
@@ -1,193 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { injectIntl } from 'react-intl';
4
- import { connect } from 'react-redux';
5
- // import { bindActionCreators } from 'redux';
6
- import { createStructuredSelector } from 'reselect';
7
- import { UserIsAuthenticated } from '../../utils/authWrapper';
8
- import TagList from '../TagList';
9
- import {
10
- ANDROID, BEE_LAYOUT_OPTIONS, MOBILE, UNSUBSCRIBE,
11
- } from './constants';
12
- import emptyAndroidSvg from '../../assets/Android.png';
13
- import emptyIosSvg from '../../assets/iOS.png';
14
- function BeePopupEditor(props) {
15
- const {
16
- uid,
17
- id,
18
- tokenData,
19
- saveBeeInstance,
20
- saveBeeData,
21
- saveBeeHtmlValue,
22
- beeJson,
23
- templateLayoutType,
24
- moduleFilterEnabled,
25
- label,
26
- location,
27
- injectedTags,
28
- className,
29
- userLocale,
30
- selectedOfferDetails,
31
- tags,
32
- onContextChange,
33
- device,
34
- } = props;
35
-
36
- let beePluginInstance = null;
37
- let intervalTimer;
38
- const savedCallback = useRef();
39
- const beeInstanceRef = useRef(null);
40
- const isInitializedRef = useRef(false);
41
-
42
- const [visibleTaglist, setVisibleTaglist] = useState(false);
43
- const [selectedTag, setSelectedTag] = useState({});
44
- const filteredTags = (tags || []).filter((obj) => obj.definition.value !== UNSUBSCRIBE);
45
-
46
- useEffect(() => {
47
- // Only recreate BEE editor when layout type changes, not when content (beeJson) changes
48
- // If beeJson is in dependencies, editor reloads on every keystroke!
49
- const beeConfig = {
50
- uid,
51
- trackChanges: true,
52
- container: 'bee-plugin-container',
53
- workspace: {
54
- popup: {
55
- backgroundImageMobile: device === ANDROID ? emptyAndroidSvg : emptyIosSvg,
56
- layout: BEE_LAYOUT_OPTIONS[templateLayoutType],
57
- customStyles: {
58
- container: {
59
- width: "90%",
60
- margin: "1.5rem",
61
- },
62
- },
63
- },
64
- stage: MOBILE,
65
- hideStageToggle: true,
66
- },
67
- contentDialog: {
68
- mergeTags: {
69
- label: 'Add Label',
70
- handler: async (resolve, reject) => {
71
- // this will open tag modal
72
- await setVisibleTaglist(true);
73
- // until tag modal will not open promise will not execute
74
- // once tag modal is opened it will start 2 sec interval to wait use has selected any tag or cancel the tag selection
75
- const promise = new Promise((resolveP) => {
76
- intervalTimer = setInterval(() => {
77
- // this will execute, if user cancel the tag selection
78
- if ((savedCallback.current || {}).close === true) {
79
- reject();
80
- clearInterval(intervalTimer);
81
- return;
82
- }
83
- // this block is checking use has selected any tag or not
84
- if (Object.keys(savedCallback.current || {}).length > 0) {
85
- resolveP(savedCallback.current);
86
- setSelectedTag({});
87
- clearInterval(intervalTimer);
88
- }
89
- }, 2000);
90
- });
91
- // once prmise will resolve , pass the resolve data to handler to show tags in bee edior
92
- const result = await promise;
93
- resolve(result);
94
- },
95
- },
96
- },
97
- onChange: (jsonFile, htmlFile) => {
98
- saveBeeData(jsonFile, htmlFile, device);
99
- },
100
- onSave: (jsonFile, htmlFile) => {
101
- // onSave provides the actual HTML value, use it to update beeHtml.value
102
- if (saveBeeHtmlValue && htmlFile) {
103
- saveBeeHtmlValue(htmlFile, device);
104
- }
105
- // Also call saveBeeData to update JSON
106
- saveBeeData(jsonFile, htmlFile, device);
107
- },
108
- };
109
- window.BeePlugin.create(tokenData, beeConfig, (instance) => {
110
- beePluginInstance = instance;
111
- beeInstanceRef.current = instance;
112
- // Check if beeJson is already an object (happens when layout type changes)
113
- const parseJson = typeof beeJson === 'string' ? JSON.parse(beeJson) : beeJson;
114
- beePluginInstance.start(parseJson);
115
- saveBeeInstance(beePluginInstance, device);
116
- isInitializedRef.current = true;
117
- });
118
- return () => {
119
- clearInterval(intervalTimer);
120
- // Reset initialization flag when component unmounts or layout changes
121
- isInitializedRef.current = false;
122
- };
123
- // IMPORTANT: Only include templateLayoutType, NOT beeJson
124
- // beeJson changes on every keystroke and would cause editor to reload constantly
125
- }, [templateLayoutType]);
126
-
127
- useEffect(() => {
128
- savedCallback.current = Object?.keys(selectedTag)?.length > 0 && selectedTag;
129
- }, [selectedTag]);
130
-
131
- const onTagSelect = (result) => {
132
- const msg = {
133
- name: result,
134
- value: `{{${result}}}`,
135
- };
136
- setSelectedTag(msg);
137
- setVisibleTaglist(false);
138
- };
139
-
140
- const onCancelTagList = () => {
141
- setVisibleTaglist(false);
142
- setSelectedTag({ close: true });
143
- };
144
-
145
- return (
146
- <>
147
- <div id="bee-plugin-container" style={{ height: "46.5rem" }}></div>
148
- <TagList
149
- moduleFilterEnabled={moduleFilterEnabled}
150
- label={label}
151
- onTagSelect={onTagSelect}
152
- location={location}
153
- tags={filteredTags}
154
- injectedTags={injectedTags}
155
- className={className}
156
- id={id}
157
- userLocale={userLocale}
158
- selectedOfferDetails={selectedOfferDetails}
159
- visibleTaglist={visibleTaglist}
160
- hidePopover
161
- modalProps={{
162
- onCancel: onCancelTagList,
163
- style: { left: 135, top: 250 },
164
- className: "bee-editor-tag-list",
165
- }}
166
- onContextChange={onContextChange}
167
- />
168
- </>
169
- );
170
- }
171
- BeePopupEditor.propTypes = {
172
- saveBeeData: PropTypes.func.isRequired,
173
- saveBeeInstance: PropTypes.func.isRequired,
174
- beeJson: PropTypes.object.isRequired,
175
- tokenData: PropTypes.object.isRequired,
176
- uid: PropTypes.string.isRequired,
177
- templateLayoutType: PropTypes.string.isRequired,
178
- id: PropTypes.string.isRequired,
179
- moduleFilterEnabled: PropTypes.bool.isRequired,
180
- label: PropTypes.string.isRequired,
181
- location: PropTypes.object.isRequired,
182
- injectedTags: PropTypes.array.isRequired,
183
- className: PropTypes.string.isRequired,
184
- userLocale: PropTypes.string.isRequired,
185
- selectedOfferDetails: PropTypes.object.isRequired,
186
- tags: PropTypes.array.isRequired,
187
- onContextChange: PropTypes.func.isRequired,
188
- device: PropTypes.string.isRequired,
189
- };
190
- const mapStateToProps = () => createStructuredSelector({});
191
-
192
- function mapDispatchToProps() { }
193
- export default UserIsAuthenticated(connect(mapStateToProps, mapDispatchToProps)(injectIntl(BeePopupEditor)));