@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
@@ -1,143 +0,0 @@
1
- import React from 'react';
2
- import { mountWithIntl, shallowWithIntl } from '../../../../helpers/intl-enzym-test-helpers';
3
- import TemplateNameSection from './TemplateNameSection';
4
- import CapInput from '@capillarytech/cap-ui-library/CapInput';
5
- import CapRow from '@capillarytech/cap-ui-library/CapRow';
6
- import CapDivider from '@capillarytech/cap-ui-library/CapDivider';
7
-
8
- describe('TemplateNameSection', () => {
9
- const mockFormatMessage = jest.fn((message) => message.defaultMessage || message);
10
- const mockOnChange = jest.fn();
11
-
12
- const mockMessages = {
13
- creativeName: {
14
- defaultMessage: 'Creative Name',
15
- },
16
- creativeNamePlaceholder: {
17
- defaultMessage: 'Enter creative name',
18
- },
19
- emptyTemplateErrorMessage: {
20
- defaultMessage: 'Template name is required',
21
- },
22
- };
23
-
24
- const defaultProps = {
25
- isFullMode: true,
26
- value: 'Test Template',
27
- error: false,
28
- onChange: mockOnChange,
29
- formatMessage: mockFormatMessage,
30
- messages: mockMessages,
31
- };
32
-
33
- beforeEach(() => {
34
- jest.clearAllMocks();
35
- });
36
-
37
- describe('Rendering in Full Mode', () => {
38
- it('should render correctly with default props', () => {
39
- const wrapper = shallowWithIntl(<TemplateNameSection {...defaultProps} />);
40
- expect(wrapper).toMatchSnapshot();
41
- });
42
-
43
- it('should render when isFullMode is true', () => {
44
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} isFullMode={true} />);
45
- expect(wrapper.find(CapInput).exists()).toBe(true);
46
- });
47
-
48
- it('should render CapInput with correct props', () => {
49
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} />);
50
- const input = wrapper.find(CapInput);
51
- expect(input.prop('id')).toBe('webpush-template-name-input');
52
- expect(input.prop('className')).toBe('webpush-template-name-input');
53
- expect(input.prop('value')).toBe('Test Template');
54
- expect(input.prop('size')).toBe('default');
55
- });
56
-
57
- it('should render label correctly', () => {
58
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} />);
59
- const input = wrapper.find(CapInput);
60
- expect(input.exists()).toBe(true);
61
- expect(mockFormatMessage).toHaveBeenCalledWith(mockMessages.creativeName);
62
- });
63
-
64
- it('should render placeholder correctly', () => {
65
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} />);
66
- const input = wrapper.find(CapInput);
67
- expect(input.exists()).toBe(true);
68
- expect(mockFormatMessage).toHaveBeenCalledWith(mockMessages.creativeNamePlaceholder);
69
- });
70
-
71
- it('should render error status when error is true', () => {
72
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} error={true} />);
73
- const input = wrapper.find(CapInput);
74
- expect(input.exists()).toBe(true);
75
- expect(mockFormatMessage).toHaveBeenCalledWith(mockMessages.emptyTemplateErrorMessage);
76
- });
77
-
78
- it('should not render error status when error is false', () => {
79
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} error={false} />);
80
- const input = wrapper.find(CapInput);
81
- expect(input.exists()).toBe(true);
82
- });
83
-
84
- it('should render Divider', () => {
85
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} />);
86
- expect(wrapper.find(CapDivider).exists()).toBe(true);
87
- });
88
-
89
- it('should call onChange when input value changes', () => {
90
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} />);
91
- const input = wrapper.find(CapInput);
92
- const event = { target: { value: 'New Template Name' } };
93
- input.prop('onChange')(event);
94
- expect(mockOnChange).toHaveBeenCalledWith(event);
95
- });
96
- });
97
-
98
- describe('Not Rendering in Non-Full Mode', () => {
99
- it('should not render when isFullMode is false', () => {
100
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} isFullMode={false} />);
101
- expect(wrapper.find(CapInput).exists()).toBe(false);
102
- expect(wrapper.find(CapDivider).exists()).toBe(false);
103
- });
104
-
105
- it('should return null when isFullMode is false', () => {
106
- const wrapper = shallowWithIntl(<TemplateNameSection {...defaultProps} isFullMode={false} />);
107
- expect(wrapper.type()).toBe(null);
108
- });
109
- });
110
-
111
- describe('Error Handling', () => {
112
- it('should show error message when error is true', () => {
113
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} error={true} />);
114
- const input = wrapper.find(CapInput);
115
- expect(input.exists()).toBe(true);
116
- expect(mockFormatMessage).toHaveBeenCalledWith(mockMessages.emptyTemplateErrorMessage);
117
- });
118
-
119
- it('should not show error message when error is false', () => {
120
- const wrapper = mountWithIntl(<TemplateNameSection {...defaultProps} error={false} />);
121
- const input = wrapper.find(CapInput);
122
- expect(input.exists()).toBe(true);
123
- });
124
- });
125
-
126
- describe('Default Props', () => {
127
- it('should use default error value when not provided', () => {
128
- const wrapper = mountWithIntl(
129
- <TemplateNameSection
130
- isFullMode={true}
131
- value="Test"
132
- onChange={mockOnChange}
133
- formatMessage={mockFormatMessage}
134
- messages={mockMessages}
135
- />
136
- );
137
- const input = wrapper.find(CapInput);
138
- expect(input.prop('status')).toBe('');
139
- expect(input.prop('help')).toBe('');
140
- });
141
- });
142
- });
143
-
@@ -1,86 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`ButtonsLinksSection Rendering should render correctly with default props 1`] = `
4
- <Fragment>
5
- <CapRow
6
- className="creatives-webpush-buttons-links"
7
- >
8
- <CapHeading
9
- className="webpush-buttons-links"
10
- type="h4"
11
- >
12
- <FormattedMessage
13
- defaultMessage="Buttons and Links"
14
- id="app.webpush.buttonsAndLinks"
15
- values={Object {}}
16
- />
17
- </CapHeading>
18
- <CapHeading
19
- className="webpush-on-click-behaviour"
20
- type="h5"
21
- >
22
- <FormattedMessage
23
- defaultMessage="On-click Behaviour"
24
- id="app.webpush.onClickBehaviour"
25
- values={Object {}}
26
- />
27
- </CapHeading>
28
- <CapRadioGroup
29
- errorMessage=""
30
- onChange={[MockFunction]}
31
- options={
32
- Array [
33
- Object {
34
- "label": "Open Site",
35
- "value": "SITE_URL",
36
- },
37
- Object {
38
- "label": "Redirect to URL",
39
- "value": "REDIRECT_TO_URL",
40
- },
41
- ]
42
- }
43
- value="SITE_URL"
44
- />
45
- </CapRow>
46
- <CapRow
47
- className="creatives-webpush-buttons-section"
48
- >
49
- <CapHeading
50
- className="webpush-buttons-section-heading"
51
- type="h5"
52
- >
53
- <FormattedMessage
54
- defaultMessage="Buttons"
55
- id="app.webpush.buttons"
56
- values={Object {}}
57
- />
58
-
59
- <span
60
- className="optional-text"
61
- >
62
- <FormattedMessage
63
- defaultMessage="(Optional)"
64
- id="app.webpush.optional"
65
- values={Object {}}
66
- />
67
- </span>
68
- </CapHeading>
69
- <MockButtonList
70
- buttons={Array []}
71
- disableSecondaryButton={false}
72
- disabled={false}
73
- inlineFormIndex={null}
74
- isInlineFormVisible={false}
75
- onAddPrimary={[MockFunction]}
76
- onAddSecondary={[MockFunction]}
77
- onDelete={[MockFunction]}
78
- onEdit={[MockFunction]}
79
- onReorder={[MockFunction]}
80
- renderInlineForm={null}
81
- showAddPrimary={false}
82
- showAddSecondary={false}
83
- />
84
- </CapRow>
85
- </Fragment>
86
- `;
@@ -1,16 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`FormActions Rendering should render correctly with default props 1`] = `
4
- <Fragment>
5
- <CapRow
6
- className="creatives-webpush-actions"
7
- >
8
- <CapButton
9
- disabled={false}
10
- isAddBtn={false}
11
- onClick={[MockFunction]}
12
- type="primary"
13
- />
14
- </CapRow>
15
- </Fragment>
16
- `;
@@ -1,41 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`MediaSection Rendering should render correctly with default props 1`] = `
4
- <Fragment>
5
- <CapRow
6
- className="creatives-webpush-media"
7
- >
8
- <CapHeading
9
- className="webpush-media-type"
10
- type="h4"
11
- >
12
- <FormattedMessage
13
- defaultMessage="Media Type"
14
- id="app.webpush.mediaType"
15
- values={Object {}}
16
- />
17
- </CapHeading>
18
- <_Class
19
- className="margin-t-4"
20
- disabled={false}
21
- labelPosition="top"
22
- onChange={[MockFunction]}
23
- options={
24
- Array [
25
- Object {
26
- "label": "None",
27
- "value": "NONE",
28
- },
29
- Object {
30
- "label": "Image",
31
- "value": "IMAGE",
32
- },
33
- ]
34
- }
35
- value="NONE"
36
- width="100%"
37
- />
38
- </CapRow>
39
- <CapDivider />
40
- </Fragment>
41
- `;
@@ -1,54 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`MessageSection Rendering should render correctly with default props 1`] = `
4
- <Fragment>
5
- <CapRow
6
- className="creatives-webpush-message"
7
- >
8
- <CapRow
9
- className="tooltip-add-label-container webpush-message-taglist"
10
- />
11
- <CapHeading
12
- className="webpush-message"
13
- type="h4"
14
- >
15
- <FormattedMessage
16
- defaultMessage="Message"
17
- id="app.webpush.message"
18
- values={Object {}}
19
- />
20
- </CapHeading>
21
- <InjectIntl(Wrapper)
22
- onChange={[MockFunction]}
23
- textAreaRef={null}
24
- value="Test Message"
25
- >
26
- <_Class
27
- autosize={
28
- Object {
29
- "maxRows": 5,
30
- "minRows": 3,
31
- }
32
- }
33
- errorMessage=""
34
- id="webpush-message-input"
35
- isRequired={true}
36
- labelPosition="top"
37
- onChange={[MockFunction]}
38
- setInputRef={[MockFunction]}
39
- size="default"
40
- value="Test Message"
41
- />
42
- </InjectIntl(Wrapper)>
43
- <CapLabel
44
- className="webpush-character-count"
45
- type="label2"
46
- >
47
- <span />
48
- </CapLabel>
49
- </CapRow>
50
- <CapDivider
51
- className="webpush-message-divider"
52
- />
53
- </Fragment>
54
- `;
@@ -1,37 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`NotificationTitleSection Rendering should render correctly with default props 1`] = `
4
- <CapRow
5
- className="creatives-webpush-title"
6
- >
7
- <CapRow
8
- className="tooltip-add-label-container webpush-title-taglist"
9
- />
10
- <CapHeading
11
- className="webpush-title"
12
- type="h4"
13
- >
14
- <FormattedMessage
15
- defaultMessage="Notification Title"
16
- id="app.webpush.notificationTitle"
17
- values={Object {}}
18
- />
19
- </CapHeading>
20
- <_Class
21
- errorMessage=""
22
- id="webpush-notification-title-input"
23
- isRequired={true}
24
- labelPosition="top"
25
- maxLength={65}
26
- onChange={[MockFunction]}
27
- size="default"
28
- value="Test Title"
29
- />
30
- <CapLabel
31
- className="webpush-character-count"
32
- type="label2"
33
- >
34
- <span />
35
- </CapLabel>
36
- </CapRow>
37
- `;
@@ -1,21 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`TemplateNameSection Rendering in Full Mode should render correctly with default props 1`] = `
4
- <Fragment>
5
- <CapRow
6
- className="input-group creative-name-container"
7
- >
8
- <_Class
9
- className="webpush-template-name-input"
10
- help=""
11
- id="webpush-template-name-input"
12
- labelPosition="top"
13
- onChange={[MockFunction]}
14
- size="default"
15
- status=""
16
- value="Test Template"
17
- />
18
- </CapRow>
19
- <CapDivider />
20
- </Fragment>
21
- `;
@@ -1,246 +0,0 @@
1
- @import '~@capillarytech/cap-ui-library/styles/_variables';
2
-
3
- // Button components styles for Web Push Create
4
-
5
- .webpush-button-form {
6
- border: 0.063rem solid $CAP_G07;
7
- border-radius: $CAP_SPACE_08;
8
- padding: $CAP_SPACE_20;
9
- margin-bottom: $CAP_SPACE_16;
10
-
11
- .button-form-row {
12
- margin-bottom: $CAP_SPACE_16;
13
-
14
- &:last-child {
15
- margin-bottom: 0;
16
- }
17
- }
18
-
19
- .button-form-heading {
20
- margin-bottom: $CAP_SPACE_08;
21
- font-weight: 600;
22
- }
23
-
24
- .button-form-field {
25
- position: relative;
26
- }
27
-
28
- .button-character-count-suffix {
29
- font-size: $FONT_SIZE_S;
30
- color: $FONT_COLOR_03;
31
- display: inline-flex;
32
- align-items: center;
33
- }
34
-
35
- .button-form-actions {
36
- display: flex;
37
- gap: $CAP_SPACE_12;
38
- margin-top: $CAP_SPACE_20;
39
-
40
- .button-form-save {
41
- background-color: map-get($CAP_PRIMARY, base);
42
- border-color: map-get($CAP_PRIMARY, base);
43
-
44
- &:hover:not(:disabled) {
45
- background-color: map-get($CAP_PRIMARY, hover);
46
- border-color: map-get($CAP_PRIMARY, hover);
47
- }
48
-
49
- &:disabled {
50
- opacity: 0.5;
51
- cursor: not-allowed;
52
- }
53
- }
54
-
55
- .button-form-cancel {
56
- background-color: $CAP_G12;
57
- border-color: $CAP_COLOR_16;
58
- color: $FONT_COLOR_01;
59
-
60
- &:hover {
61
- background-color: $CAP_COLOR_16;
62
- border-color: $CAP_G06;
63
- }
64
- }
65
- }
66
- }
67
-
68
- .webpush-button-list {
69
- .button-list-add-button {
70
- margin-top: $CAP_SPACE_12;
71
- }
72
- }
73
-
74
- .button-add-controls {
75
- display: flex;
76
- gap: $CAP_SPACE_12;
77
- flex-wrap: wrap;
78
- margin-top: $CAP_SPACE_16;
79
- }
80
-
81
- // High specificity selectors to override Cap UI library styles
82
- // Target both CapButton and Ant Design button classes that may be on the same element
83
- .button-add-controls button.button-add-trigger,
84
- .button-add-controls .button-add-trigger.cap-button,
85
- .button-add-controls .button-add-trigger.ant-btn,
86
- .button-add-controls .button-add-trigger.cap-button-flat,
87
- .button-add-controls .button-add-trigger.ant-btn-flat,
88
- .webpush-button-list button.button-add-trigger,
89
- .webpush-button-list .button-add-trigger.cap-button,
90
- .webpush-button-list .button-add-trigger.ant-btn,
91
- .webpush-button-list .button-add-trigger.cap-button-flat,
92
- .webpush-button-list .button-add-trigger.ant-btn-flat {
93
- border: none;
94
- background: transparent;
95
- color: map-get($CAP_SECONDARY, base);
96
- font-weight: $FONT_WEIGHT_MEDIUM;
97
- border-radius: $CAP_SPACE_08;
98
- padding: $CAP_SPACE_08 $CAP_SPACE_16;
99
- display: inline-flex;
100
- align-items: center;
101
- gap: $CAP_SPACE_08;
102
-
103
- &:hover:not(:disabled) {
104
- background: $CAP_G09;
105
- }
106
-
107
- &:disabled {
108
- color: $CAP_G05;
109
- cursor: not-allowed;
110
- background: transparent;
111
- }
112
- }
113
-
114
- .button-inline-form {
115
- margin-bottom: $CAP_SPACE_12;
116
- }
117
-
118
- .webpush-button-item {
119
- border: 0.063rem solid $CAP_G07;
120
- border-radius: 0.571rem;
121
- padding: 0.7rem 0.857rem;
122
- margin-bottom: 0.857rem;
123
- background: $CAP_WHITE;
124
- transition: all 0.2s ease;
125
- cursor: move;
126
-
127
- &:hover {
128
- border-color: map-get($CAP_SECONDARY, base);
129
- box-shadow: 0 0.142rem 0.571rem $CAP_BLACK_ALPHA08;
130
- }
131
-
132
- &[draggable="true"] {
133
- cursor: move;
134
- }
135
-
136
- .button-item-content {
137
- align-items: center;
138
- }
139
-
140
- .button-item-drag-handle {
141
- display: flex;
142
- align-items: center;
143
- justify-content: center;
144
- cursor: move;
145
- padding-right: $CAP_SPACE_08;
146
-
147
- .drag-icon {
148
- font-size: 1rem;
149
- color: $FONT_COLOR_01;
150
- font-weight: 700;
151
- transform: rotate(90deg);
152
- display: inline-block;
153
- }
154
- }
155
-
156
- .button-item-icon {
157
- display: flex;
158
- align-items: center;
159
- justify-content: flex-start;
160
- padding-right: $CAP_SPACE_08;
161
-
162
- .link-icon {
163
- font-size: $FONT_SIZE_L;
164
- color: $FONT_COLOR_01;
165
- }
166
- }
167
-
168
- .button-item-info {
169
- display: flex;
170
- align-items: center;
171
- padding-right: $CAP_SPACE_12;
172
-
173
- .button-item-text-row {
174
- display: flex;
175
- align-items: center;
176
- width: 100%;
177
-
178
- .button-item-text {
179
- font-size: 0.813rem;
180
- font-weight: $FONT_WEIGHT_MEDIUM;
181
- color: $FONT_COLOR_01;
182
- overflow: hidden;
183
- text-overflow: ellipsis;
184
- white-space: nowrap;
185
- max-width: 100%;
186
- }
187
- }
188
- }
189
-
190
- .button-item-actions {
191
- display: flex;
192
- align-items: center;
193
- justify-content: flex-end;
194
- gap: $CAP_SPACE_12;
195
-
196
- .button-item-url {
197
- font-size: $FONT_SIZE_S;
198
- color: $FONT_COLOR_03;
199
- overflow: hidden;
200
- text-overflow: ellipsis;
201
- white-space: nowrap;
202
- max-width: 12.857rem;
203
- flex-shrink: 1;
204
- margin-right: $CAP_SPACE_12;
205
- }
206
-
207
- .action-icons {
208
- display: flex;
209
- align-items: center;
210
- gap: $CAP_SPACE_12;
211
- flex-shrink: 0;
212
-
213
- .action-icon {
214
- font-size: $FONT_SIZE_L;
215
- color: $FONT_COLOR_01;
216
- cursor: pointer;
217
- transition: color 0.2s ease;
218
-
219
- &:hover {
220
- color: map-get($CAP_SECONDARY, base);
221
- }
222
-
223
- &.delete-icon:hover {
224
- color: $CAP_RED;
225
- }
226
- }
227
- }
228
- }
229
-
230
- &.disabled {
231
- opacity: 0.6;
232
- cursor: not-allowed;
233
- pointer-events: none;
234
- }
235
- }
236
-
237
- .creatives-webpush-buttons-section {
238
- margin-top: $CAP_SPACE_20;
239
- margin-bottom: $CAP_SPACE_24;
240
-
241
- .webpush-buttons-section-heading {
242
- margin-bottom: $CAP_SPACE_16;
243
- font-weight: 600;
244
- }
245
- }
246
-