@capillarytech/creatives-library 8.0.255-alpha.4 → 8.0.255

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 (278) hide show
  1. package/assets/Android.png +0 -0
  2. package/assets/iOS.png +0 -0
  3. package/constants/unified.js +2 -2
  4. package/initialReducer.js +2 -0
  5. package/package.json +1 -1
  6. package/services/api.js +10 -5
  7. package/services/tests/api.test.js +34 -0
  8. package/translations/en.json +3 -4
  9. package/utils/common.js +5 -6
  10. package/utils/commonUtils.js +28 -5
  11. package/utils/tests/commonUtil.test.js +224 -0
  12. package/utils/tests/transformerUtils.test.js +0 -297
  13. package/utils/transformTemplateConfig.js +0 -10
  14. package/utils/transformerUtils.js +0 -40
  15. package/v2Components/CapDeviceContent/index.js +61 -56
  16. package/v2Components/CapImageUpload/constants.js +0 -2
  17. package/v2Components/CapImageUpload/index.js +16 -65
  18. package/v2Components/CapImageUpload/index.scss +1 -4
  19. package/v2Components/CapImageUpload/messages.js +1 -5
  20. package/v2Components/CapTagList/index.js +6 -1
  21. package/v2Components/CapTagListWithInput/index.js +5 -1
  22. package/v2Components/CapTagListWithInput/messages.js +1 -1
  23. package/v2Components/CapWhatsappCTA/tests/index.test.js +5 -0
  24. package/v2Components/ErrorInfoNote/constants.js +1 -0
  25. package/v2Components/ErrorInfoNote/index.js +457 -72
  26. package/v2Components/ErrorInfoNote/messages.js +36 -6
  27. package/v2Components/ErrorInfoNote/style.scss +282 -6
  28. package/v2Components/FormBuilder/tests/index.test.js +13 -4
  29. package/v2Components/HtmlEditor/HTMLEditor.js +547 -94
  30. package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +874 -0
  31. package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +1441 -133
  32. package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +27 -16
  33. package/v2Components/HtmlEditor/_htmlEditor.scss +108 -45
  34. package/v2Components/HtmlEditor/_index.lazy.scss +0 -1
  35. package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +23 -102
  36. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +148 -140
  37. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +2 -1
  38. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
  39. package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +9 -0
  40. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +4 -4
  41. package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +22 -0
  42. package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +4 -7
  43. package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +35 -45
  44. package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +1 -3
  45. package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
  46. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +7 -6
  47. package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +3 -6
  48. package/v2Components/HtmlEditor/components/PreviewPane/index.js +22 -43
  49. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
  50. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/_validationErrorDisplay.scss +1 -0
  51. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +49 -31
  52. package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +50 -34
  53. package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +6 -0
  54. package/v2Components/HtmlEditor/components/ValidationPanel/index.js +70 -41
  55. package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +255 -0
  56. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +364 -0
  57. package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +51 -0
  58. package/v2Components/HtmlEditor/constants.js +42 -20
  59. package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +373 -16
  60. package/v2Components/HtmlEditor/hooks/__tests__/useValidation.test.js +103 -0
  61. package/v2Components/HtmlEditor/hooks/useEditorContent.js +5 -2
  62. package/v2Components/HtmlEditor/hooks/useInAppContent.js +88 -146
  63. package/v2Components/HtmlEditor/hooks/useValidation.js +189 -53
  64. package/v2Components/HtmlEditor/index.js +1 -1
  65. package/v2Components/HtmlEditor/messages.js +92 -94
  66. package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +94 -45
  67. package/v2Components/HtmlEditor/utils/__tests__/validationAdapter.test.js +134 -0
  68. package/v2Components/HtmlEditor/utils/contentSanitizer.js +40 -41
  69. package/v2Components/HtmlEditor/utils/htmlValidator.js +71 -72
  70. package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +134 -102
  71. package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +23 -25
  72. package/v2Components/HtmlEditor/utils/validationAdapter.js +66 -41
  73. package/v2Components/HtmlEditor/utils/validationConstants.js +40 -0
  74. package/v2Components/MobilePushPreviewV2/index.js +32 -7
  75. package/v2Components/TemplatePreview/_templatePreview.scss +55 -24
  76. package/v2Components/TemplatePreview/index.js +47 -32
  77. package/v2Components/TemplatePreview/messages.js +4 -0
  78. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +1 -0
  79. package/v2Containers/App/constants.js +0 -5
  80. package/v2Containers/BeeEditor/index.js +172 -90
  81. package/v2Containers/BeePopupEditor/_beePopupEditor.scss +14 -0
  82. package/v2Containers/BeePopupEditor/constants.js +10 -0
  83. package/v2Containers/BeePopupEditor/index.js +194 -0
  84. package/v2Containers/BeePopupEditor/tests/index.test.js +627 -0
  85. package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +3 -4
  86. package/v2Containers/CreativesContainer/SlideBoxContent.js +129 -107
  87. package/v2Containers/CreativesContainer/SlideBoxFooter.js +163 -13
  88. package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -2
  89. package/v2Containers/CreativesContainer/constants.js +1 -3
  90. package/v2Containers/CreativesContainer/index.js +239 -214
  91. package/v2Containers/CreativesContainer/messages.js +8 -4
  92. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +0 -210
  93. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +11 -2
  94. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +38 -354
  95. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +106 -0
  96. package/v2Containers/Email/actions.js +7 -0
  97. package/v2Containers/Email/constants.js +5 -1
  98. package/v2Containers/Email/index.js +234 -29
  99. package/v2Containers/Email/messages.js +32 -0
  100. package/v2Containers/Email/reducer.js +12 -1
  101. package/v2Containers/Email/sagas.js +61 -7
  102. package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +2 -0
  103. package/v2Containers/Email/tests/reducer.test.js +46 -0
  104. package/v2Containers/Email/tests/sagas.test.js +320 -29
  105. package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +1285 -0
  106. package/v2Containers/EmailWrapper/components/EmailWrapperView.js +211 -21
  107. package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +40 -74
  108. package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +1880 -0
  109. package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +520 -0
  110. package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +2 -67
  111. package/v2Containers/EmailWrapper/constants.js +2 -0
  112. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +629 -77
  113. package/v2Containers/EmailWrapper/index.js +103 -23
  114. package/v2Containers/EmailWrapper/messages.js +65 -1
  115. package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +643 -0
  116. package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +594 -77
  117. package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +376 -0
  118. package/v2Containers/InApp/__tests__/sagas.test.js +363 -0
  119. package/v2Containers/InApp/actions.js +7 -0
  120. package/v2Containers/InApp/constants.js +20 -4
  121. package/v2Containers/InApp/index.js +802 -359
  122. package/v2Containers/InApp/index.scss +4 -3
  123. package/v2Containers/InApp/messages.js +7 -3
  124. package/v2Containers/InApp/reducer.js +21 -3
  125. package/v2Containers/InApp/sagas.js +29 -9
  126. package/v2Containers/InApp/selectors.js +25 -5
  127. package/v2Containers/InApp/tests/index.test.js +154 -50
  128. package/v2Containers/InApp/tests/reducer.test.js +34 -0
  129. package/v2Containers/InApp/tests/sagas.test.js +61 -9
  130. package/v2Containers/InApp/tests/selectors.test.js +612 -0
  131. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +151 -0
  132. package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +267 -0
  133. package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +23 -0
  134. package/v2Containers/InAppWrapper/constants.js +16 -0
  135. package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +473 -0
  136. package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +198 -0
  137. package/v2Containers/InAppWrapper/index.js +148 -0
  138. package/v2Containers/InAppWrapper/messages.js +49 -0
  139. package/v2Containers/InappAdvance/index.js +1099 -0
  140. package/v2Containers/InappAdvance/index.scss +10 -0
  141. package/v2Containers/InappAdvance/tests/index.test.js +448 -0
  142. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +15 -36
  143. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +8 -8
  144. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +77 -100
  145. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +63 -72
  146. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +190 -250
  147. package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +12 -16
  148. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +40 -48
  149. package/v2Containers/TagList/index.js +62 -19
  150. package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
  151. package/v2Containers/Templates/_templates.scss +56 -202
  152. package/v2Containers/Templates/actions.js +1 -2
  153. package/v2Containers/Templates/constants.js +0 -1
  154. package/v2Containers/Templates/index.js +123 -278
  155. package/v2Containers/Templates/messages.js +4 -24
  156. package/v2Containers/Templates/reducer.js +0 -2
  157. package/v2Containers/Templates/tests/index.test.js +0 -10
  158. package/v2Containers/TemplatesV2/index.js +7 -15
  159. package/v2Containers/TemplatesV2/messages.js +0 -4
  160. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +768 -1272
  161. package/utils/imageUrlUpload.js +0 -141
  162. package/v2Components/CapImageUrlUpload/constants.js +0 -26
  163. package/v2Components/CapImageUrlUpload/index.js +0 -365
  164. package/v2Components/CapImageUrlUpload/index.scss +0 -35
  165. package/v2Components/CapImageUrlUpload/messages.js +0 -47
  166. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +0 -152
  167. package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +0 -214
  168. package/v2Containers/WebPush/Create/components/BrandIconSection.js +0 -108
  169. package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -172
  170. package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
  171. package/v2Containers/WebPush/Create/components/ButtonList.js +0 -145
  172. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +0 -164
  173. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +0 -463
  174. package/v2Containers/WebPush/Create/components/FormActions.js +0 -54
  175. package/v2Containers/WebPush/Create/components/FormActions.test.js +0 -163
  176. package/v2Containers/WebPush/Create/components/MediaSection.js +0 -142
  177. package/v2Containers/WebPush/Create/components/MediaSection.test.js +0 -341
  178. package/v2Containers/WebPush/Create/components/MessageSection.js +0 -103
  179. package/v2Containers/WebPush/Create/components/MessageSection.test.js +0 -268
  180. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +0 -87
  181. package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +0 -210
  182. package/v2Containers/WebPush/Create/components/TemplateNameSection.js +0 -54
  183. package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +0 -143
  184. package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +0 -86
  185. package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +0 -16
  186. package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +0 -41
  187. package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +0 -54
  188. package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +0 -37
  189. package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +0 -21
  190. package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
  191. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
  192. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
  193. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -633
  194. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
  195. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
  196. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -78
  197. package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +0 -138
  198. package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +0 -406
  199. package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +0 -30
  200. package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +0 -151
  201. package/v2Containers/WebPush/Create/hooks/useImageUpload.js +0 -104
  202. package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +0 -538
  203. package/v2Containers/WebPush/Create/hooks/useTagManagement.js +0 -122
  204. package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +0 -633
  205. package/v2Containers/WebPush/Create/index.js +0 -1148
  206. package/v2Containers/WebPush/Create/index.scss +0 -134
  207. package/v2Containers/WebPush/Create/messages.js +0 -203
  208. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -228
  209. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -294
  210. package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -90
  211. package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -305
  212. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -23
  213. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -155
  214. package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
  215. package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
  216. package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +0 -9
  217. package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +0 -9
  218. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  219. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  220. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
  221. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
  222. package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +0 -9
  223. package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +0 -9
  224. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
  225. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
  226. package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +0 -9
  227. package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +0 -9
  228. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -47
  229. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -141
  230. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
  231. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -68
  232. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -61
  233. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -99
  234. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -733
  235. package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +0 -571
  236. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -81
  237. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +0 -81
  238. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -50
  239. package/v2Containers/WebPush/Create/preview/constants.js +0 -637
  240. package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -79
  241. package/v2Containers/WebPush/Create/preview/preview.scss +0 -351
  242. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -370
  243. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
  244. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
  245. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
  246. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -47
  247. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
  248. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
  249. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
  250. package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -207
  251. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -153
  252. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
  253. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -101
  254. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -229
  255. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -909
  256. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1081
  257. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
  258. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -1327
  259. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -131
  260. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -112
  261. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
  262. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -129
  263. package/v2Containers/WebPush/Create/utils/payloadBuilder.js +0 -96
  264. package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +0 -396
  265. package/v2Containers/WebPush/Create/utils/previewUtils.js +0 -89
  266. package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -115
  267. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
  268. package/v2Containers/WebPush/Create/utils/validation.js +0 -75
  269. package/v2Containers/WebPush/Create/utils/validation.test.js +0 -283
  270. package/v2Containers/WebPush/actions.js +0 -60
  271. package/v2Containers/WebPush/constants.js +0 -132
  272. package/v2Containers/WebPush/index.js +0 -2
  273. package/v2Containers/WebPush/reducer.js +0 -104
  274. package/v2Containers/WebPush/sagas.js +0 -119
  275. package/v2Containers/WebPush/selectors.js +0 -65
  276. package/v2Containers/WebPush/tests/reducer.test.js +0 -863
  277. package/v2Containers/WebPush/tests/sagas.test.js +0 -566
  278. package/v2Containers/WebPush/tests/selectors.test.js +0 -960
@@ -15,7 +15,6 @@ import {
15
15
  RCS,
16
16
  LINE,
17
17
  VIBER,
18
- WEBPUSH,
19
18
  } from "../../v2Containers/CreativesContainer/constants";
20
19
 
21
20
  describe("transformerUtils", () => {
@@ -1183,302 +1182,6 @@ describe("transformerUtils", () => {
1183
1182
  });
1184
1183
  });
1185
1184
 
1186
- describe("WebPush payload transformation", () => {
1187
- it("should transform WebPush data correctly with minimal data", () => {
1188
- const mockData = {
1189
- channel: WEBPUSH,
1190
- messageSubject: "test webpush notification"
1191
- };
1192
-
1193
- const result = transformChannelPayload(mockData);
1194
-
1195
- expect(result.centralCommsPayload).toBeDefined();
1196
- expect(result.centralCommsPayload.channel).toEqual(WEBPUSH);
1197
- expect(result.centralCommsPayload.webpushMessageContent.messageSubject).toEqual(
1198
- "test webpush notification"
1199
- );
1200
- expect(result.centralCommsPayload.clientName).toEqual("VENENO");
1201
- });
1202
-
1203
- it("should transform WebPush data with all options", () => {
1204
- const mockData = {
1205
- channel: WEBPUSH,
1206
- messageSubject: "test webpush notification",
1207
- messageContent: {
1208
- content: {
1209
- accountId: 12345,
1210
- content: {
1211
- title: "WebPush Title",
1212
- message: "WebPush Message",
1213
- iconImageUrl: "https://example.com/icon.png",
1214
- cta: {
1215
- actionLink: "https://example.com/action",
1216
- actionText: "Click Here"
1217
- },
1218
- expandableDetails: {
1219
- style: "BIG_TEXT",
1220
- message: "Expanded Message"
1221
- }
1222
- },
1223
- offers: [
1224
- { id: "offer-1", title: "Offer 1" },
1225
- { id: "offer-2", title: "Offer 2" }
1226
- ]
1227
- }
1228
- }
1229
- };
1230
-
1231
- const options = {
1232
- loyaltyMetaData: {
1233
- actionId: "action-123",
1234
- ouId: 456,
1235
- clientName: "TestClient",
1236
- module: "TestModule",
1237
- transformedMessageDetails: {
1238
- webpushDeliverySettings: {
1239
- sendDate: "2023-01-01",
1240
- priority: "HIGH"
1241
- }
1242
- }
1243
- }
1244
- };
1245
-
1246
- const result = transformChannelPayload(mockData, options);
1247
-
1248
- // Check base payload
1249
- expect(result.centralCommsPayload.sourceEntityId).toEqual("action-123");
1250
- expect(result.centralCommsPayload.ouId).toEqual(456);
1251
- expect(result.centralCommsPayload.clientName).toEqual("TestClient");
1252
- expect(result.centralCommsPayload.module).toEqual("TestModule");
1253
-
1254
- // Check WebPush-specific content
1255
- expect(result.centralCommsPayload.webpushMessageContent.channel).toEqual(WEBPUSH);
1256
- expect(result.centralCommsPayload.webpushMessageContent.accountId).toEqual(12345);
1257
- expect(result.centralCommsPayload.webpushMessageContent.messageSubject).toEqual(
1258
- "test webpush notification"
1259
- );
1260
- expect(result.centralCommsPayload.webpushMessageContent.content.title).toEqual(
1261
- "WebPush Title"
1262
- );
1263
- expect(result.centralCommsPayload.webpushMessageContent.content.message).toEqual(
1264
- "WebPush Message"
1265
- );
1266
- expect(result.centralCommsPayload.webpushMessageContent.content.iconImageUrl).toEqual(
1267
- "https://example.com/icon.png"
1268
- );
1269
- expect(result.centralCommsPayload.webpushMessageContent.content.cta).toEqual({
1270
- actionLink: "https://example.com/action",
1271
- actionText: "Click Here"
1272
- });
1273
- expect(result.centralCommsPayload.webpushMessageContent.content.expandableDetails).toEqual({
1274
- style: "BIG_TEXT",
1275
- message: "Expanded Message"
1276
- });
1277
- expect(result.centralCommsPayload.webpushMessageContent.offers).toEqual([
1278
- { id: "offer-1", title: "Offer 1" },
1279
- { id: "offer-2", title: "Offer 2" }
1280
- ]);
1281
-
1282
- // Check delivery settings
1283
- expect(result.centralCommsPayload.webpushDeliverySettings).toEqual({
1284
- sendDate: "2023-01-01",
1285
- priority: "HIGH"
1286
- });
1287
- });
1288
-
1289
- it("should handle missing messageContent structure", () => {
1290
- const mockData = {
1291
- channel: WEBPUSH,
1292
- messageSubject: "test webpush notification"
1293
- };
1294
-
1295
- const result = transformChannelPayload(mockData);
1296
-
1297
- expect(result.centralCommsPayload.webpushMessageContent.accountId).toEqual(0);
1298
- expect(result.centralCommsPayload.webpushMessageContent.content.title).toEqual("");
1299
- expect(result.centralCommsPayload.webpushMessageContent.content.message).toEqual("");
1300
- expect(result.centralCommsPayload.webpushMessageContent.offers).toEqual([]);
1301
- });
1302
-
1303
- it("should handle missing content properties", () => {
1304
- const mockData = {
1305
- channel: WEBPUSH,
1306
- messageSubject: "test webpush notification",
1307
- messageContent: {
1308
- content: {
1309
- accountId: 12345,
1310
- content: {}
1311
- }
1312
- }
1313
- };
1314
-
1315
- const result = transformChannelPayload(mockData);
1316
-
1317
- expect(result.centralCommsPayload.webpushMessageContent.accountId).toEqual(12345);
1318
- expect(result.centralCommsPayload.webpushMessageContent.content.title).toEqual("");
1319
- expect(result.centralCommsPayload.webpushMessageContent.content.message).toEqual("");
1320
- expect(result.centralCommsPayload.webpushMessageContent.content.iconImageUrl).toBeUndefined();
1321
- expect(result.centralCommsPayload.webpushMessageContent.content.cta).toBeUndefined();
1322
- expect(result.centralCommsPayload.webpushMessageContent.content.expandableDetails).toBeUndefined();
1323
- });
1324
-
1325
- it("should conditionally include iconImageUrl only when present", () => {
1326
- const mockDataWithoutIcon = {
1327
- channel: WEBPUSH,
1328
- messageSubject: "test",
1329
- messageContent: {
1330
- content: {
1331
- content: {
1332
- title: "Title",
1333
- message: "Message"
1334
- }
1335
- }
1336
- }
1337
- };
1338
-
1339
- const resultWithoutIcon = transformChannelPayload(mockDataWithoutIcon);
1340
- expect(resultWithoutIcon.centralCommsPayload.webpushMessageContent.content.iconImageUrl).toBeUndefined();
1341
-
1342
- const mockDataWithIcon = {
1343
- channel: WEBPUSH,
1344
- messageSubject: "test",
1345
- messageContent: {
1346
- content: {
1347
- content: {
1348
- title: "Title",
1349
- message: "Message",
1350
- iconImageUrl: "https://example.com/icon.png"
1351
- }
1352
- }
1353
- }
1354
- };
1355
-
1356
- const resultWithIcon = transformChannelPayload(mockDataWithIcon);
1357
- expect(resultWithIcon.centralCommsPayload.webpushMessageContent.content.iconImageUrl).toEqual(
1358
- "https://example.com/icon.png"
1359
- );
1360
- });
1361
-
1362
- it("should conditionally include cta only when present", () => {
1363
- const mockDataWithoutCta = {
1364
- channel: WEBPUSH,
1365
- messageSubject: "test",
1366
- messageContent: {
1367
- content: {
1368
- content: {
1369
- title: "Title",
1370
- message: "Message"
1371
- }
1372
- }
1373
- }
1374
- };
1375
-
1376
- const resultWithoutCta = transformChannelPayload(mockDataWithoutCta);
1377
- expect(resultWithoutCta.centralCommsPayload.webpushMessageContent.content.cta).toBeUndefined();
1378
-
1379
- const mockDataWithCta = {
1380
- channel: WEBPUSH,
1381
- messageSubject: "test",
1382
- messageContent: {
1383
- content: {
1384
- content: {
1385
- title: "Title",
1386
- message: "Message",
1387
- cta: {
1388
- actionLink: "https://example.com",
1389
- actionText: "Click"
1390
- }
1391
- }
1392
- }
1393
- }
1394
- };
1395
-
1396
- const resultWithCta = transformChannelPayload(mockDataWithCta);
1397
- expect(resultWithCta.centralCommsPayload.webpushMessageContent.content.cta).toEqual({
1398
- actionLink: "https://example.com",
1399
- actionText: "Click"
1400
- });
1401
- });
1402
-
1403
- it("should conditionally include expandableDetails only when present", () => {
1404
- const mockDataWithoutExpandable = {
1405
- channel: WEBPUSH,
1406
- messageSubject: "test",
1407
- messageContent: {
1408
- content: {
1409
- content: {
1410
- title: "Title",
1411
- message: "Message"
1412
- }
1413
- }
1414
- }
1415
- };
1416
-
1417
- const resultWithoutExpandable = transformChannelPayload(mockDataWithoutExpandable);
1418
- expect(resultWithoutExpandable.centralCommsPayload.webpushMessageContent.content.expandableDetails).toBeUndefined();
1419
-
1420
- const mockDataWithExpandable = {
1421
- channel: WEBPUSH,
1422
- messageSubject: "test",
1423
- messageContent: {
1424
- content: {
1425
- content: {
1426
- title: "Title",
1427
- message: "Message",
1428
- expandableDetails: {
1429
- style: "BIG_TEXT",
1430
- message: "Expanded"
1431
- }
1432
- }
1433
- }
1434
- }
1435
- };
1436
-
1437
- const resultWithExpandable = transformChannelPayload(mockDataWithExpandable);
1438
- expect(resultWithExpandable.centralCommsPayload.webpushMessageContent.content.expandableDetails).toEqual({
1439
- style: "BIG_TEXT",
1440
- message: "Expanded"
1441
- });
1442
- });
1443
-
1444
- it("should handle undefined webpushDeliverySettings", () => {
1445
- const mockData = {
1446
- channel: WEBPUSH,
1447
- messageSubject: "test webpush notification"
1448
- };
1449
-
1450
- const options = {
1451
- loyaltyMetaData: {
1452
- transformedMessageDetails: {}
1453
- }
1454
- };
1455
-
1456
- const result = transformChannelPayload(mockData, options);
1457
-
1458
- expect(result.centralCommsPayload.webpushDeliverySettings).toEqual({});
1459
- });
1460
-
1461
- it("should handle empty offers array", () => {
1462
- const mockData = {
1463
- channel: WEBPUSH,
1464
- messageSubject: "test",
1465
- messageContent: {
1466
- content: {
1467
- content: {
1468
- title: "Title",
1469
- message: "Message"
1470
- },
1471
- offers: []
1472
- }
1473
- }
1474
- };
1475
-
1476
- const result = transformChannelPayload(mockData);
1477
-
1478
- expect(result.centralCommsPayload.webpushMessageContent.offers).toEqual([]);
1479
- });
1480
- });
1481
-
1482
1185
  describe("getTemplateDiffState", () => {
1483
1186
  it("should return false for unsupported channel", () => {
1484
1187
  const result = getTemplateDiffState("UNSUPPORTED_CHANNEL", {}, {});
@@ -101,7 +101,6 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
101
101
  const contentType = detectMediaContentType(templateConfig);
102
102
 
103
103
  if (contentType === MEDIA_CONTENT_TYPE.NONE) {
104
- console.log('No media content detected, returning original config');
105
104
  return templateConfig;
106
105
  }
107
106
 
@@ -109,24 +108,19 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
109
108
  let transformDirection;
110
109
  if (forceDirection) {
111
110
  transformDirection = forceDirection;
112
- console.log(`Forced transformation direction: ${transformDirection}`);
113
111
  } else {
114
112
  // Auto-detect based on content
115
113
  if (contentType === MEDIA_CONTENT_TYPE.URLS) {
116
114
  transformDirection = TRANSFORM_DIRECTION.FORWARD; // URLs → tags
117
- console.log('Detected URLs, applying forward transformation (URLs → tags)');
118
115
  } else if (contentType === MEDIA_CONTENT_TYPE.TAGS) {
119
116
  transformDirection = TRANSFORM_DIRECTION.REVERSE; // tags → URLs
120
- console.log('Detected media_content tags, applying reverse transformation (tags → URLs)');
121
117
  } else if (contentType === MEDIA_CONTENT_TYPE.MIXED) {
122
118
  transformDirection = TRANSFORM_DIRECTION.SMART; // Handle mixed content intelligently
123
- console.log('Detected mixed content, applying smart transformation');
124
119
  }
125
120
  }
126
121
 
127
122
  const newConfig = cloneDeep(templateConfig);
128
123
  try {
129
- console.log(`Fetching media details for ${transformDirection} transformation, ID: ${mediaDetailsId}`);
130
124
 
131
125
  // Fetch media details mapping from API
132
126
  const response = await getMediaDetails({ id: mediaDetailsId })
@@ -145,7 +139,6 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
145
139
  idToUrlMapping[mediaId] = url;
146
140
  });
147
141
 
148
- console.log(`Processing ${Object.keys(urlToIdMapping).length} media mappings`);
149
142
 
150
143
  // Apply transformations based on direction
151
144
  newConfig?.cards?.forEach(card => {
@@ -157,7 +150,6 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
157
150
  // Forward transformation: URL → tag
158
151
  const mediaDetailId = urlToIdMapping[currentUrl];
159
152
  if (mediaDetailId) {
160
- console.log(`Forward: ${currentUrl} → {{media_content(${mediaDetailId})}}`);
161
153
  card.media.url = `{{media_content(${mediaDetailId})}}`;
162
154
  } else {
163
155
  console.warn(`No media detail ID found for URL: ${currentUrl}`);
@@ -169,7 +161,6 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
169
161
  if (mediaId) {
170
162
  const actualUrl = idToUrlMapping[mediaId];
171
163
  if (actualUrl) {
172
- console.log(`Reverse: {{media_content(${mediaId})}} → ${actualUrl}`);
173
164
  card.media.url = actualUrl;
174
165
  } else {
175
166
  console.warn(`No URL found for media ID: ${mediaId}`);
@@ -185,7 +176,6 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
185
176
  console.error('Failed to fetch media details for transformation:', error);
186
177
 
187
178
  // Fallback: try to extract/convert what we can without API
188
- console.log('Falling back to URL extraction method');
189
179
  newConfig.cards.forEach(card => {
190
180
  if (card.media && card.media.url) {
191
181
  if (transformDirection === TRANSFORM_DIRECTION.FORWARD) {
@@ -10,7 +10,6 @@ import {
10
10
  RCS,
11
11
  LINE,
12
12
  VIBER,
13
- WEBPUSH,
14
13
  EMF,
15
14
  VENENO,
16
15
  TEXT,
@@ -64,8 +63,6 @@ export const transformChannelPayload = (data, options = {}) => {
64
63
  return transformLinePayload(data, options);
65
64
  case VIBER:
66
65
  return transformViberPayload(data, options);
67
- case WEBPUSH:
68
- return transformWebpushPayload(data, options);
69
66
  default:
70
67
  return data; // Return unchanged for unsupported channels
71
68
  }
@@ -320,43 +317,6 @@ const transformViberPayload = (viberData, options = {}) => {
320
317
  return payload;
321
318
  };
322
319
 
323
- /**
324
- * Transforms WebPush data to the required payload format
325
- * @param {Object} webpushData - Current WebPush data
326
- * @param {Object} options - Additional options (ouId, sourceEntityId, etc.)
327
- * @returns {Object} - Transformed WebPush payload
328
- */
329
- const transformWebpushPayload = (webpushData, options = {}) => {
330
- const { loyaltyMetaData = {} } = options;
331
- const { transformedMessageDetails = {} } = loyaltyMetaData;
332
- const { webpushDeliverySettings = {} } = transformedMessageDetails || {};
333
-
334
- // Get base payload structure
335
- const payload = createBasePayload(WEBPUSH, loyaltyMetaData);
336
-
337
- // Extract webpush content from messageContent.content.content structure
338
- const webpushContent = webpushData?.messageContent?.content?.content || {};
339
- const accountId = webpushData?.messageContent?.content?.accountId || 0;
340
-
341
- // Add WebPush-specific properties
342
- payload.centralCommsPayload.webpushMessageContent = {
343
- channel: WEBPUSH,
344
- accountId,
345
- content: {
346
- title: webpushContent?.title || '',
347
- message: webpushContent?.message || '',
348
- ...(webpushContent?.iconImageUrl && { iconImageUrl: webpushContent.iconImageUrl }),
349
- ...(webpushContent?.cta && { cta: webpushContent.cta }),
350
- ...(webpushContent?.expandableDetails && { expandableDetails: webpushContent.expandableDetails }),
351
- },
352
- messageSubject: webpushData?.messageSubject || "",
353
- offers: webpushData?.messageContent?.content?.offers || [],
354
- };
355
- payload.centralCommsPayload.webpushDeliverySettings = webpushDeliverySettings;
356
-
357
- return payload;
358
- };
359
-
360
320
  // Checks if the template has changed
361
321
  export const getTemplateDiffState = (channel, oldData, newData) => {
362
322
  switch (channel.toUpperCase()) {
@@ -69,7 +69,7 @@ const CapDeviceContent = (props) => {
69
69
  templateDescErrorHandler,
70
70
  templateTitleError,
71
71
  setTemplateTitleError,
72
- isAiContentBotDisabled
72
+ isAiContentBotDisabled,
73
73
  } = props || {};
74
74
  const { TextArea } = CapInput;
75
75
  const { formatMessage } = intl;
@@ -167,21 +167,22 @@ const CapDeviceContent = (props) => {
167
167
  return (
168
168
  <>
169
169
  <CapRow className="creatives-device-content">
170
- <CapLink
170
+ <CapLink
171
171
  title={isAndroid
172
- ? formatMessage(messages.copyContentFromIOS)
173
- : formatMessage(messages.copyCotentFromAndroid)}
172
+ ? formatMessage(messages.copyContentFromIOS)
173
+ : formatMessage(messages.copyCotentFromAndroid)}
174
174
  className="inapp-copy-content"
175
175
  onClick={onCopyTitleAndContent}
176
- />
176
+ />
177
177
  <CapRow className="creatives-inapp-title">
178
178
  <CapColumn
179
- className="inapp-content-main"
179
+ className="inapp-content-main"
180
180
  >
181
181
  <CapHeading type="h5" className="inapp-title">
182
182
  {formatMessage(messages.title)}
183
183
  </CapHeading>
184
- {getTagList(0)} {/* here 0 signifies the tags for template title */}
184
+ {getTagList(0)}
185
+ {/* here 0 signifies the tags for template title */}
185
186
  </CapColumn>
186
187
  <CapInput
187
188
  id="inapp-title-name-input"
@@ -213,7 +214,7 @@ const CapDeviceContent = (props) => {
213
214
  </CapRow>
214
215
  <CapRow className={`creatives-inapp-message ${!isMediaTypeImage && "message-bottom-margin"}`}>
215
216
  <CapColumn
216
- className="inapp-message-header"
217
+ className="inapp-message-header"
217
218
  >
218
219
  <CapHeading type="h5" className="inapp-message-header-style">
219
220
  {formatMessage(messages.message)}
@@ -222,37 +223,37 @@ const CapDeviceContent = (props) => {
222
223
  {/* here 1 signifies the tags for template message */}
223
224
  </CapColumn>
224
225
  <div className="inapp-create-template-message-input-wrapper">
225
- <TextArea
226
- id="inapp-create-template-message-input"
227
- className="inapp-create-template-message-input"
228
- placeholder={formatMessage(messages.textAreaInputPlaceholder)}
229
- onChange={onTemplateMessageChange}
230
- value={templateMessage || ""}
231
- autosize={{ minRows: 5, maxRows: 5 }}
232
- errorMessage={
233
- templateMessageError && (
234
- <CapError className="inapp-template-message-error">
235
- {templateMessageError}
236
- </CapError>
237
- )
238
- }
239
- />
240
- {!isAiContentBotDisabled && (
241
- <CapAskAira.ContentGenerationBot
242
- text={templateMessage || ""}
243
- setText={(text) => {
244
- onTemplateMessageChange({ target: { value: text } });
245
- }}
246
- iconPlacement="float-br"
247
- iconSize="1.6rem"
248
- rootStyle={{
249
- bottom: "0.2rem",
250
- right: "0.2rem",
251
- left: "auto",
252
- position: "absolute",
253
- }}
226
+ <TextArea
227
+ id="inapp-create-template-message-input"
228
+ className="inapp-create-template-message-input"
229
+ placeholder={formatMessage(messages.textAreaInputPlaceholder)}
230
+ onChange={onTemplateMessageChange}
231
+ value={templateMessage || ""}
232
+ autosize={{ minRows: 5, maxRows: 5 }}
233
+ errorMessage={
234
+ templateMessageError && (
235
+ <CapError className="inapp-template-message-error">
236
+ {templateMessageError}
237
+ </CapError>
238
+ )
239
+ }
254
240
  />
255
- )}
241
+ {!isAiContentBotDisabled && (
242
+ <CapAskAira.ContentGenerationBot
243
+ text={templateMessage || ""}
244
+ setText={(text) => {
245
+ onTemplateMessageChange({ target: { value: text } });
246
+ }}
247
+ iconPlacement="float-br"
248
+ iconSize="1.6rem"
249
+ rootStyle={{
250
+ bottom: "0.2rem",
251
+ right: "0.2rem",
252
+ left: "auto",
253
+ position: "absolute",
254
+ }}
255
+ />
256
+ )}
256
257
  </div>
257
258
  {isMediaTypeImage && (
258
259
  <>
@@ -279,14 +280,16 @@ const CapDeviceContent = (props) => {
279
280
  </CapRow>
280
281
  </CapRow>
281
282
  <CapRow className="inapp-action-link">
282
- <CapCheckbox onChange={onActionLinkCheckBoxChange} checked={addActionLink}/>
283
+ <CapCheckbox onChange={onActionLinkCheckBoxChange} checked={addActionLink} />
283
284
  <CapRow className="inapp-render-heading">
284
285
  <CapHeader
285
- title={<CapRow type="flex">
286
- <CapHeading type="h4">
287
- {formatMessage(messages.addActionLink)}
288
- </CapHeading>
289
- </CapRow>}
286
+ title={(
287
+ <CapRow type="flex">
288
+ <CapHeading type="h4">
289
+ {formatMessage(messages.addActionLink)}
290
+ </CapHeading>
291
+ </CapRow>
292
+ )}
290
293
  description={<CapLabel type="label3">{formatMessage(messages.addActionLinkDesc)}</CapLabel>}
291
294
  />
292
295
  {addActionLink && (
@@ -310,19 +313,21 @@ const CapDeviceContent = (props) => {
310
313
  <CapRow className="inapp-cta-button">
311
314
  <CapHeader
312
315
  className="inapp-render-heading-cta-button"
313
- title={<CapRow type="flex">
314
- <CapHeading type="h4">
315
- {formatMessage(messages.btnLabel)}
316
- </CapHeading>
317
- <CapHeading
318
- type="h6"
319
- className="inapp-optional-label"
320
- >
321
- {formatMessage(messages.optional)}
322
- </CapHeading>
323
- </CapRow>}
316
+ title={(
317
+ <CapRow type="flex">
318
+ <CapHeading type="h4">
319
+ {formatMessage(messages.btnLabel)}
320
+ </CapHeading>
321
+ <CapHeading
322
+ type="h6"
323
+ className="inapp-optional-label"
324
+ >
325
+ {formatMessage(messages.optional)}
326
+ </CapHeading>
327
+ </CapRow>
328
+ )}
324
329
  description={<CapLabel type="label3">{formatMessage(messages.btnDesc)}</CapLabel>}
325
- />
330
+ />
326
331
  <CapRadioGroup
327
332
  options={BUTTON_RADIO_OPTIONS}
328
333
  value={buttonType}
@@ -4,6 +4,4 @@ export const MAX_SUPPORTED_IMAGE_SIZE = {
4
4
  INAPP: 5,
5
5
  WHATSAPP: 5,
6
6
  MOBILEPUSH: 2,
7
- WEBPUSH: 5,
8
- WEBPUSH_BRAND_ICON: 1
9
7
  };