@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,363 +0,0 @@
1
- /**
2
- * InApp Sagas Tests
3
- *
4
- * Tests for InApp sagas including HTML content create/edit flows
5
- */
6
-
7
- import { call, put } from 'redux-saga/effects';
8
- import * as Api from '../../../services/api';
9
- import {
10
- inAppTemplateCreate,
11
- editTemplate,
12
- getTemplateDetails,
13
- uploadInAppAsset,
14
- } from '../sagas';
15
- import {
16
- INAPP_TEMPLATE_CREATE_SUCCESS,
17
- INAPP_TEMPLATE_CREATE_FAILURE,
18
- INAPP_EDIT_TEMPLATE_SUCCESS,
19
- INAPP_EDIT_TEMPLATE_FAILURE,
20
- GET_INAPP_TEMPLATE_DETAILS_SUCCESS,
21
- GET_INAPP_TEMPLATE_DETAILS_FAILURE,
22
- UPLOAD_INAPP_ASSET_SUCCESS,
23
- UPLOAD_INAPP_ASSET_FAILURE,
24
- } from '../constants';
25
- import { INAPP } from '../../CreativesContainer/constants';
26
-
27
- describe('InApp Sagas', () => {
28
- describe('inAppTemplateCreate', () => {
29
- const payload = {
30
- name: 'Test Template',
31
- versions: {
32
- base: {
33
- content: {
34
- ANDROID: {
35
- title: 'Android Title',
36
- message: '<p>Android HTML Content</p>',
37
- bodyType: 'MODAL',
38
- },
39
- IOS: {
40
- title: 'iOS Title',
41
- message: '<p>iOS HTML Content</p>',
42
- bodyType: 'MODAL',
43
- },
44
- },
45
- },
46
- },
47
- type: INAPP,
48
- };
49
-
50
- test('creates template successfully with HTML content', () => {
51
- const generator = inAppTemplateCreate({
52
- payload,
53
- callback: jest.fn(),
54
- });
55
-
56
- const mockResponse = {
57
- response: {
58
- id: 'template-123',
59
- name: 'Test Template',
60
- },
61
- status: {
62
- code: 201,
63
- },
64
- };
65
-
66
- expect(generator.next().value).toEqual(
67
- call(Api.createChannelWiseTemplate, { channel: INAPP, template: payload })
68
- );
69
-
70
- expect(generator.next(mockResponse).value).toEqual(
71
- put({
72
- type: INAPP_TEMPLATE_CREATE_SUCCESS,
73
- data: mockResponse.response,
74
- statusCode: 201,
75
- errorMsg: undefined,
76
- })
77
- );
78
-
79
- const callback = generator.next().value;
80
- expect(callback).toBeUndefined(); // Callback is called but not yielded
81
-
82
- expect(generator.next().done).toBe(true);
83
- });
84
-
85
- test('handles API error when creating template', () => {
86
- const generator = inAppTemplateCreate({
87
- payload,
88
- callback: jest.fn(),
89
- });
90
-
91
- const mockError = {
92
- response: null,
93
- status: {
94
- code: 400,
95
- },
96
- message: 'Validation error',
97
- };
98
-
99
- expect(generator.next().value).toEqual(
100
- call(Api.createChannelWiseTemplate, { channel: INAPP, template: payload })
101
- );
102
-
103
- expect(generator.next(mockError).value).toEqual(
104
- put({
105
- type: INAPP_TEMPLATE_CREATE_FAILURE,
106
- error: 'Validation error',
107
- errorMsg: 'Validation error',
108
- })
109
- );
110
-
111
- const callback = generator.next().value;
112
- expect(callback).toBeUndefined();
113
-
114
- expect(generator.next().done).toBe(true);
115
- });
116
-
117
- test('handles exception during template creation', () => {
118
- const generator = inAppTemplateCreate({
119
- payload,
120
- callback: jest.fn(),
121
- });
122
-
123
- const error = new Error('Network error');
124
-
125
- expect(generator.next().value).toEqual(
126
- call(Api.createChannelWiseTemplate, { channel: INAPP, template: payload })
127
- );
128
-
129
- expect(generator.throw(error).value).toEqual(
130
- put({
131
- type: INAPP_TEMPLATE_CREATE_FAILURE,
132
- error,
133
- errorMsg: undefined,
134
- })
135
- );
136
-
137
- expect(generator.next().done).toBe(true);
138
- });
139
- });
140
-
141
- describe('editTemplate', () => {
142
- const payload = {
143
- _id: 'template-123',
144
- name: 'Updated Template',
145
- versions: {
146
- base: {
147
- content: {
148
- ANDROID: {
149
- title: 'Updated Android Title',
150
- message: '<p>Updated Android HTML</p>',
151
- bodyType: 'MODAL',
152
- },
153
- IOS: {
154
- title: 'Updated iOS Title',
155
- message: '<p>Updated iOS HTML</p>',
156
- bodyType: 'MODAL',
157
- },
158
- },
159
- },
160
- },
161
- type: INAPP,
162
- };
163
-
164
- test('edits template successfully with HTML content', () => {
165
- const generator = editTemplate({
166
- payload,
167
- callback: jest.fn(),
168
- });
169
-
170
- const mockResponse = {
171
- response: {
172
- id: 'template-123',
173
- name: 'Updated Template',
174
- },
175
- status: {
176
- code: 200,
177
- },
178
- };
179
-
180
- expect(generator.next().value).toEqual(
181
- call(Api.createChannelWiseTemplate, { channel: INAPP, template: payload })
182
- );
183
-
184
- expect(generator.next(mockResponse).value).toEqual(
185
- put({
186
- type: INAPP_EDIT_TEMPLATE_SUCCESS,
187
- data: mockResponse.response,
188
- statusCode: 200,
189
- errorMsg: undefined,
190
- })
191
- );
192
-
193
- expect(generator.next().done).toBe(true);
194
- });
195
-
196
- test('handles API error when editing template', () => {
197
- const generator = editTemplate({
198
- payload,
199
- callback: jest.fn(),
200
- });
201
-
202
- const mockError = {
203
- response: null,
204
- status: {
205
- code: 404,
206
- },
207
- message: 'Template not found',
208
- };
209
-
210
- expect(generator.next().value).toEqual(
211
- call(Api.createChannelWiseTemplate, { channel: INAPP, template: payload })
212
- );
213
-
214
- expect(generator.next(mockError).value).toEqual(
215
- put({
216
- type: INAPP_EDIT_TEMPLATE_FAILURE,
217
- error: 'Template not found',
218
- errorMsg: 'Template not found',
219
- })
220
- );
221
-
222
- expect(generator.next().done).toBe(true);
223
- });
224
- });
225
-
226
- describe('getTemplateDetails', () => {
227
- test('fetches template details successfully', () => {
228
- const generator = getTemplateDetails({
229
- id: 'template-123',
230
- callback: jest.fn(),
231
- });
232
-
233
- const mockResponse = {
234
- response: {
235
- id: 'template-123',
236
- name: 'Test Template',
237
- versions: {
238
- base: {
239
- content: {
240
- ANDROID: {
241
- title: 'Android Title',
242
- message: '<p>Android HTML Content</p>',
243
- },
244
- IOS: {
245
- title: 'iOS Title',
246
- message: '<p>iOS HTML Content</p>',
247
- },
248
- },
249
- },
250
- },
251
- },
252
- };
253
-
254
- expect(generator.next().value).toEqual(
255
- call(Api.getTemplateDetails, {
256
- id: 'template-123',
257
- channel: INAPP,
258
- })
259
- );
260
-
261
- expect(generator.next(mockResponse).value).toEqual(
262
- put({
263
- type: GET_INAPP_TEMPLATE_DETAILS_SUCCESS,
264
- data: mockResponse.response,
265
- })
266
- );
267
-
268
- expect(generator.next().done).toBe(true);
269
- });
270
-
271
- test('handles error when fetching template details', () => {
272
- const generator = getTemplateDetails({
273
- id: 'template-123',
274
- callback: jest.fn(),
275
- });
276
-
277
- const error = new Error('Not found');
278
-
279
- expect(generator.next().value).toEqual(
280
- call(Api.getTemplateDetails, {
281
- id: 'template-123',
282
- channel: INAPP,
283
- })
284
- );
285
-
286
- expect(generator.throw(error).value).toEqual(
287
- put({
288
- type: GET_INAPP_TEMPLATE_DETAILS_FAILURE,
289
- error,
290
- })
291
- );
292
-
293
- expect(generator.next().done).toBe(true);
294
- });
295
- });
296
-
297
- describe('uploadInAppAsset', () => {
298
- test('uploads asset successfully', () => {
299
- const params = {
300
- file: new File(['test'], 'test.jpg'),
301
- assetType: 'image',
302
- fileParams: {},
303
- templateType: INAPP,
304
- };
305
-
306
- const generator = uploadInAppAsset(params);
307
-
308
- const mockResponse = {
309
- response: {
310
- asset: {
311
- url: 'https://cdn.example.com/image.jpg',
312
- id: 'asset-123',
313
- },
314
- },
315
- status: {
316
- code: 200,
317
- },
318
- };
319
-
320
- expect(generator.next().value).toEqual(
321
- call(Api.uploadFile, params)
322
- );
323
-
324
- expect(generator.next(mockResponse).value).toEqual(
325
- put({
326
- type: UPLOAD_INAPP_ASSET_SUCCESS,
327
- data: mockResponse.response.asset,
328
- statusCode: 200,
329
- templateType: INAPP,
330
- })
331
- );
332
-
333
- expect(generator.next().done).toBe(true);
334
- });
335
-
336
- test('handles error when uploading asset', () => {
337
- const params = {
338
- file: new File(['test'], 'test.jpg'),
339
- assetType: 'image',
340
- fileParams: {},
341
- templateType: INAPP,
342
- };
343
-
344
- const generator = uploadInAppAsset(params);
345
-
346
- const error = new Error('Upload failed');
347
-
348
- expect(generator.next().value).toEqual(
349
- call(Api.uploadFile, params)
350
- );
351
-
352
- expect(generator.throw(error).value).toEqual(
353
- put({
354
- type: UPLOAD_INAPP_ASSET_FAILURE,
355
- error,
356
- })
357
- );
358
-
359
- expect(generator.next().done).toBe(true);
360
- });
361
- });
362
- });
363
-