@capillarytech/creatives-library 8.0.263 → 8.0.265

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 (280) hide show
  1. package/assets/Android.png +0 -0
  2. package/assets/iOS.png +0 -0
  3. package/constants/unified.js +1 -3
  4. package/initialReducer.js +0 -2
  5. package/package.json +1 -1
  6. package/services/api.js +0 -15
  7. package/services/tests/api.test.js +0 -34
  8. package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +35 -17
  9. package/tests/integration/TemplateCreation/api-response.js +1 -31
  10. package/tests/integration/TemplateCreation/msw-handler.js +0 -2
  11. package/utils/common.js +0 -11
  12. package/utils/commonUtils.js +5 -28
  13. package/utils/tests/commonUtil.test.js +0 -224
  14. package/utils/tests/transformerUtils.test.js +0 -297
  15. package/utils/transformTemplateConfig.js +10 -0
  16. package/utils/transformerUtils.js +0 -40
  17. package/v2Components/CapDeviceContent/index.js +56 -61
  18. package/v2Components/CapImageUpload/constants.js +0 -2
  19. package/v2Components/CapImageUpload/index.js +16 -65
  20. package/v2Components/CapImageUpload/index.scss +1 -4
  21. package/v2Components/CapImageUpload/messages.js +1 -5
  22. package/v2Components/CapTagList/index.js +1 -6
  23. package/v2Components/CapTagListWithInput/index.js +1 -5
  24. package/v2Components/CapTagListWithInput/messages.js +1 -1
  25. package/v2Components/CapWhatsappCTA/tests/index.test.js +0 -5
  26. package/v2Components/ErrorInfoNote/index.js +72 -402
  27. package/v2Components/ErrorInfoNote/messages.js +6 -32
  28. package/v2Components/ErrorInfoNote/style.scss +6 -278
  29. package/v2Components/FormBuilder/tests/index.test.js +4 -13
  30. package/v2Components/HtmlEditor/HTMLEditor.js +99 -418
  31. package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +133 -1882
  32. package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +16 -27
  33. package/v2Components/HtmlEditor/_htmlEditor.scss +45 -108
  34. package/v2Components/HtmlEditor/_index.lazy.scss +1 -0
  35. package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +102 -23
  36. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +140 -148
  37. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +1 -2
  38. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
  39. package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +1 -9
  40. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +6 -31
  41. package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +0 -22
  42. package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +7 -4
  43. package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +45 -35
  44. package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +3 -1
  45. package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
  46. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +6 -7
  47. package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +10 -7
  48. package/v2Components/HtmlEditor/components/PreviewPane/index.js +43 -22
  49. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
  50. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +152 -0
  51. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/_validationErrorDisplay.scss +0 -18
  52. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +31 -36
  53. package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +34 -46
  54. package/v2Components/HtmlEditor/components/ValidationPanel/index.js +46 -52
  55. package/v2Components/HtmlEditor/constants.js +20 -45
  56. package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
  57. package/v2Components/HtmlEditor/hooks/__tests__/useValidation.test.js +16 -351
  58. package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
  59. package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
  60. package/v2Components/HtmlEditor/hooks/useValidation.js +56 -213
  61. package/v2Components/HtmlEditor/index.js +1 -1
  62. package/v2Components/HtmlEditor/messages.js +94 -102
  63. package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +45 -214
  64. package/v2Components/HtmlEditor/utils/__tests__/validationAdapter.test.js +0 -134
  65. package/v2Components/HtmlEditor/utils/contentSanitizer.js +41 -40
  66. package/v2Components/HtmlEditor/utils/htmlValidator.js +72 -71
  67. package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +124 -158
  68. package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
  69. package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -66
  70. package/v2Components/MobilePushPreviewV2/index.js +7 -33
  71. package/v2Components/TemplatePreview/_templatePreview.scss +24 -55
  72. package/v2Components/TemplatePreview/index.js +32 -47
  73. package/v2Components/TemplatePreview/messages.js +0 -4
  74. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +0 -1
  75. package/v2Containers/App/constants.js +0 -5
  76. package/v2Containers/BeeEditor/index.js +90 -172
  77. package/v2Containers/CreativesContainer/SlideBoxContent.js +53 -184
  78. package/v2Containers/CreativesContainer/SlideBoxFooter.js +13 -163
  79. package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -3
  80. package/v2Containers/CreativesContainer/constants.js +0 -4
  81. package/v2Containers/CreativesContainer/index.js +46 -408
  82. package/v2Containers/CreativesContainer/messages.js +0 -12
  83. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +0 -210
  84. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +2 -11
  85. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +50 -342
  86. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -103
  87. package/v2Containers/Email/actions.js +0 -7
  88. package/v2Containers/Email/constants.js +1 -5
  89. package/v2Containers/Email/index.js +36 -237
  90. package/v2Containers/Email/messages.js +0 -32
  91. package/v2Containers/Email/reducer.js +1 -12
  92. package/v2Containers/Email/sagas.js +7 -61
  93. package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +0 -2
  94. package/v2Containers/Email/tests/reducer.test.js +0 -46
  95. package/v2Containers/Email/tests/sagas.test.js +29 -320
  96. package/v2Containers/EmailWrapper/components/EmailWrapperView.js +21 -211
  97. package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +74 -40
  98. package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +67 -2
  99. package/v2Containers/EmailWrapper/constants.js +0 -2
  100. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +77 -629
  101. package/v2Containers/EmailWrapper/index.js +23 -103
  102. package/v2Containers/EmailWrapper/messages.js +1 -65
  103. package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +214 -0
  104. package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +77 -594
  105. package/v2Containers/InApp/actions.js +0 -7
  106. package/v2Containers/InApp/constants.js +4 -20
  107. package/v2Containers/InApp/index.js +359 -802
  108. package/v2Containers/InApp/index.scss +3 -4
  109. package/v2Containers/InApp/messages.js +3 -7
  110. package/v2Containers/InApp/reducer.js +3 -21
  111. package/v2Containers/InApp/sagas.js +9 -29
  112. package/v2Containers/InApp/selectors.js +5 -25
  113. package/v2Containers/InApp/tests/index.test.js +50 -154
  114. package/v2Containers/InApp/tests/reducer.test.js +0 -34
  115. package/v2Containers/InApp/tests/sagas.test.js +9 -61
  116. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +0 -3
  117. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +0 -2
  118. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +0 -2
  119. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +0 -9
  120. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -12
  121. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +0 -4
  122. package/v2Containers/TagList/index.js +19 -62
  123. package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
  124. package/v2Containers/Templates/_templates.scss +1 -265
  125. package/v2Containers/Templates/actions.js +1 -2
  126. package/v2Containers/Templates/constants.js +0 -1
  127. package/v2Containers/Templates/index.js +38 -363
  128. package/v2Containers/Templates/messages.js +0 -28
  129. package/v2Containers/Templates/reducer.js +0 -2
  130. package/v2Containers/Templates/tests/index.test.js +0 -10
  131. package/v2Containers/TemplatesV2/TemplatesV2.style.js +2 -4
  132. package/v2Containers/TemplatesV2/index.js +7 -15
  133. package/v2Containers/TemplatesV2/messages.js +0 -4
  134. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +0 -34
  135. package/utils/imageUrlUpload.js +0 -141
  136. package/v2Components/CapImageUrlUpload/constants.js +0 -26
  137. package/v2Components/CapImageUrlUpload/index.js +0 -365
  138. package/v2Components/CapImageUrlUpload/index.scss +0 -35
  139. package/v2Components/CapImageUrlUpload/messages.js +0 -47
  140. package/v2Components/ErrorInfoNote/constants.js +0 -1
  141. package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +0 -870
  142. package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +0 -6
  143. package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -281
  144. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -295
  145. package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
  146. package/v2Components/HtmlEditor/utils/validationConstants.js +0 -38
  147. package/v2Components/MobilePushPreviewV2/constants.js +0 -6
  148. package/v2Containers/BeePopupEditor/_beePopupEditor.scss +0 -14
  149. package/v2Containers/BeePopupEditor/constants.js +0 -10
  150. package/v2Containers/BeePopupEditor/index.js +0 -194
  151. package/v2Containers/BeePopupEditor/tests/index.test.js +0 -627
  152. package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +0 -1246
  153. package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +0 -2472
  154. package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +0 -520
  155. package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +0 -956
  156. package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +0 -376
  157. package/v2Containers/InApp/__tests__/sagas.test.js +0 -363
  158. package/v2Containers/InApp/tests/selectors.test.js +0 -612
  159. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +0 -151
  160. package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +0 -267
  161. package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +0 -23
  162. package/v2Containers/InAppWrapper/constants.js +0 -16
  163. package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +0 -473
  164. package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +0 -198
  165. package/v2Containers/InAppWrapper/index.js +0 -148
  166. package/v2Containers/InAppWrapper/messages.js +0 -49
  167. package/v2Containers/InappAdvance/index.js +0 -1099
  168. package/v2Containers/InappAdvance/index.scss +0 -10
  169. package/v2Containers/InappAdvance/tests/index.test.js +0 -448
  170. package/v2Containers/WebPush/Create/components/BrandIconSection.js +0 -108
  171. package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -172
  172. package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
  173. package/v2Containers/WebPush/Create/components/ButtonList.js +0 -145
  174. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +0 -164
  175. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +0 -463
  176. package/v2Containers/WebPush/Create/components/FormActions.js +0 -54
  177. package/v2Containers/WebPush/Create/components/FormActions.test.js +0 -163
  178. package/v2Containers/WebPush/Create/components/MediaSection.js +0 -142
  179. package/v2Containers/WebPush/Create/components/MediaSection.test.js +0 -341
  180. package/v2Containers/WebPush/Create/components/MessageSection.js +0 -103
  181. package/v2Containers/WebPush/Create/components/MessageSection.test.js +0 -268
  182. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +0 -87
  183. package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +0 -210
  184. package/v2Containers/WebPush/Create/components/TemplateNameSection.js +0 -54
  185. package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +0 -143
  186. package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +0 -86
  187. package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +0 -16
  188. package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +0 -41
  189. package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +0 -54
  190. package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +0 -37
  191. package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +0 -21
  192. package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
  193. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
  194. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
  195. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -633
  196. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
  197. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
  198. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -78
  199. package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +0 -138
  200. package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +0 -406
  201. package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +0 -30
  202. package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +0 -151
  203. package/v2Containers/WebPush/Create/hooks/useImageUpload.js +0 -104
  204. package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +0 -538
  205. package/v2Containers/WebPush/Create/hooks/useTagManagement.js +0 -122
  206. package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +0 -633
  207. package/v2Containers/WebPush/Create/index.js +0 -1148
  208. package/v2Containers/WebPush/Create/index.scss +0 -134
  209. package/v2Containers/WebPush/Create/messages.js +0 -211
  210. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -228
  211. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -294
  212. package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -90
  213. package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -305
  214. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -25
  215. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -155
  216. package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
  217. package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
  218. package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +0 -9
  219. package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +0 -9
  220. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  221. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  222. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
  223. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
  224. package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +0 -9
  225. package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +0 -9
  226. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
  227. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
  228. package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +0 -9
  229. package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +0 -9
  230. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -51
  231. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -145
  232. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
  233. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -68
  234. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -61
  235. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -99
  236. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -733
  237. package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +0 -571
  238. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -85
  239. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +0 -81
  240. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -50
  241. package/v2Containers/WebPush/Create/preview/constants.js +0 -637
  242. package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -79
  243. package/v2Containers/WebPush/Create/preview/preview.scss +0 -358
  244. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -370
  245. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
  246. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
  247. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
  248. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -47
  249. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
  250. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
  251. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
  252. package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -207
  253. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -153
  254. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
  255. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -101
  256. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -229
  257. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -909
  258. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1081
  259. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
  260. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -1327
  261. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -131
  262. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -112
  263. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
  264. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -129
  265. package/v2Containers/WebPush/Create/utils/payloadBuilder.js +0 -96
  266. package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +0 -396
  267. package/v2Containers/WebPush/Create/utils/previewUtils.js +0 -89
  268. package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -115
  269. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
  270. package/v2Containers/WebPush/Create/utils/validation.js +0 -75
  271. package/v2Containers/WebPush/Create/utils/validation.test.js +0 -283
  272. package/v2Containers/WebPush/actions.js +0 -60
  273. package/v2Containers/WebPush/constants.js +0 -132
  274. package/v2Containers/WebPush/index.js +0 -2
  275. package/v2Containers/WebPush/reducer.js +0 -104
  276. package/v2Containers/WebPush/sagas.js +0 -119
  277. package/v2Containers/WebPush/selectors.js +0 -65
  278. package/v2Containers/WebPush/tests/reducer.test.js +0 -863
  279. package/v2Containers/WebPush/tests/sagas.test.js +0 -566
  280. 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,6 +101,7 @@ 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');
104
105
  return templateConfig;
105
106
  }
106
107
 
@@ -108,19 +109,24 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
108
109
  let transformDirection;
109
110
  if (forceDirection) {
110
111
  transformDirection = forceDirection;
112
+ console.log(`Forced transformation direction: ${transformDirection}`);
111
113
  } else {
112
114
  // Auto-detect based on content
113
115
  if (contentType === MEDIA_CONTENT_TYPE.URLS) {
114
116
  transformDirection = TRANSFORM_DIRECTION.FORWARD; // URLs → tags
117
+ console.log('Detected URLs, applying forward transformation (URLs → tags)');
115
118
  } else if (contentType === MEDIA_CONTENT_TYPE.TAGS) {
116
119
  transformDirection = TRANSFORM_DIRECTION.REVERSE; // tags → URLs
120
+ console.log('Detected media_content tags, applying reverse transformation (tags → URLs)');
117
121
  } else if (contentType === MEDIA_CONTENT_TYPE.MIXED) {
118
122
  transformDirection = TRANSFORM_DIRECTION.SMART; // Handle mixed content intelligently
123
+ console.log('Detected mixed content, applying smart transformation');
119
124
  }
120
125
  }
121
126
 
122
127
  const newConfig = cloneDeep(templateConfig);
123
128
  try {
129
+ console.log(`Fetching media details for ${transformDirection} transformation, ID: ${mediaDetailsId}`);
124
130
 
125
131
  // Fetch media details mapping from API
126
132
  const response = await getMediaDetails({ id: mediaDetailsId })
@@ -139,6 +145,7 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
139
145
  idToUrlMapping[mediaId] = url;
140
146
  });
141
147
 
148
+ console.log(`Processing ${Object.keys(urlToIdMapping).length} media mappings`);
142
149
 
143
150
  // Apply transformations based on direction
144
151
  newConfig?.cards?.forEach(card => {
@@ -150,6 +157,7 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
150
157
  // Forward transformation: URL → tag
151
158
  const mediaDetailId = urlToIdMapping[currentUrl];
152
159
  if (mediaDetailId) {
160
+ console.log(`Forward: ${currentUrl} → {{media_content(${mediaDetailId})}}`);
153
161
  card.media.url = `{{media_content(${mediaDetailId})}}`;
154
162
  } else {
155
163
  console.warn(`No media detail ID found for URL: ${currentUrl}`);
@@ -161,6 +169,7 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
161
169
  if (mediaId) {
162
170
  const actualUrl = idToUrlMapping[mediaId];
163
171
  if (actualUrl) {
172
+ console.log(`Reverse: {{media_content(${mediaId})}} → ${actualUrl}`);
164
173
  card.media.url = actualUrl;
165
174
  } else {
166
175
  console.warn(`No URL found for media ID: ${mediaId}`);
@@ -176,6 +185,7 @@ export async function transformTemplateConfigWithMediaDetails(templateConfig, ch
176
185
  console.error('Failed to fetch media details for transformation:', error);
177
186
 
178
187
  // Fallback: try to extract/convert what we can without API
188
+ console.log('Falling back to URL extraction method');
179
189
  newConfig.cards.forEach(card => {
180
190
  if (card.media && card.media.url) {
181
191
  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,22 +167,21 @@ 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)}
185
- {/* here 0 signifies the tags for template title */}
184
+ {getTagList(0)} {/* here 0 signifies the tags for template title */}
186
185
  </CapColumn>
187
186
  <CapInput
188
187
  id="inapp-title-name-input"
@@ -214,7 +213,7 @@ const CapDeviceContent = (props) => {
214
213
  </CapRow>
215
214
  <CapRow className={`creatives-inapp-message ${!isMediaTypeImage && "message-bottom-margin"}`}>
216
215
  <CapColumn
217
- className="inapp-message-header"
216
+ className="inapp-message-header"
218
217
  >
219
218
  <CapHeading type="h5" className="inapp-message-header-style">
220
219
  {formatMessage(messages.message)}
@@ -223,37 +222,37 @@ const CapDeviceContent = (props) => {
223
222
  {/* here 1 signifies the tags for template message */}
224
223
  </CapColumn>
225
224
  <div className="inapp-create-template-message-input-wrapper">
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
- }
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
+ }}
240
254
  />
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
- )}
255
+ )}
257
256
  </div>
258
257
  {isMediaTypeImage && (
259
258
  <>
@@ -280,16 +279,14 @@ const CapDeviceContent = (props) => {
280
279
  </CapRow>
281
280
  </CapRow>
282
281
  <CapRow className="inapp-action-link">
283
- <CapCheckbox onChange={onActionLinkCheckBoxChange} checked={addActionLink} />
282
+ <CapCheckbox onChange={onActionLinkCheckBoxChange} checked={addActionLink}/>
284
283
  <CapRow className="inapp-render-heading">
285
284
  <CapHeader
286
- title={(
287
- <CapRow type="flex">
288
- <CapHeading type="h4">
289
- {formatMessage(messages.addActionLink)}
290
- </CapHeading>
291
- </CapRow>
292
- )}
285
+ title={<CapRow type="flex">
286
+ <CapHeading type="h4">
287
+ {formatMessage(messages.addActionLink)}
288
+ </CapHeading>
289
+ </CapRow>}
293
290
  description={<CapLabel type="label3">{formatMessage(messages.addActionLinkDesc)}</CapLabel>}
294
291
  />
295
292
  {addActionLink && (
@@ -313,21 +310,19 @@ const CapDeviceContent = (props) => {
313
310
  <CapRow className="inapp-cta-button">
314
311
  <CapHeader
315
312
  className="inapp-render-heading-cta-button"
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
- )}
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>}
329
324
  description={<CapLabel type="label3">{formatMessage(messages.btnDesc)}</CapLabel>}
330
- />
325
+ />
331
326
  <CapRadioGroup
332
327
  options={BUTTON_RADIO_OPTIONS}
333
328
  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
  };