@capillarytech/creatives-library 8.0.250 → 8.0.251

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 (155) hide show
  1. package/constants/unified.js +0 -1
  2. package/package.json +1 -1
  3. package/services/api.js +0 -5
  4. package/translations/en.json +3 -4
  5. package/utils/common.js +0 -6
  6. package/utils/tests/transformerUtils.test.js +0 -297
  7. package/utils/transformerUtils.js +0 -40
  8. package/v2Components/CapImageUpload/constants.js +0 -2
  9. package/v2Components/CapImageUpload/index.js +16 -65
  10. package/v2Components/CapImageUpload/index.scss +1 -4
  11. package/v2Components/CapImageUpload/messages.js +1 -5
  12. package/v2Containers/App/constants.js +0 -5
  13. package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +3 -4
  14. package/v2Containers/CreativesContainer/SlideBoxContent.js +2 -57
  15. package/v2Containers/CreativesContainer/SlideBoxHeader.js +0 -1
  16. package/v2Containers/CreativesContainer/constants.js +0 -3
  17. package/v2Containers/CreativesContainer/index.js +0 -168
  18. package/v2Containers/CreativesContainer/messages.js +0 -4
  19. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +0 -210
  20. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +0 -304
  21. package/v2Containers/Email/index.js +7 -3
  22. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +9 -12
  23. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +6 -8
  24. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +75 -100
  25. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +54 -72
  26. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +174 -232
  27. package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +12 -16
  28. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +36 -48
  29. package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
  30. package/v2Containers/Templates/_templates.scss +0 -205
  31. package/v2Containers/Templates/actions.js +1 -2
  32. package/v2Containers/Templates/constants.js +0 -1
  33. package/v2Containers/Templates/index.js +34 -274
  34. package/v2Containers/Templates/messages.js +0 -24
  35. package/v2Containers/Templates/reducer.js +0 -4
  36. package/v2Containers/Templates/tests/index.test.js +0 -10
  37. package/v2Containers/TemplatesV2/index.js +7 -15
  38. package/v2Containers/TemplatesV2/messages.js +0 -4
  39. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +486 -648
  40. package/utils/imageUrlUpload.js +0 -141
  41. package/v2Components/CapImageUrlUpload/constants.js +0 -26
  42. package/v2Components/CapImageUrlUpload/index.js +0 -365
  43. package/v2Components/CapImageUrlUpload/index.scss +0 -35
  44. package/v2Components/CapImageUrlUpload/messages.js +0 -47
  45. package/v2Containers/WebPush/Create/components/BrandIconSection.js +0 -108
  46. package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -172
  47. package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
  48. package/v2Containers/WebPush/Create/components/ButtonList.js +0 -107
  49. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +0 -160
  50. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +0 -476
  51. package/v2Containers/WebPush/Create/components/FormActions.js +0 -54
  52. package/v2Containers/WebPush/Create/components/FormActions.test.js +0 -163
  53. package/v2Containers/WebPush/Create/components/MediaSection.js +0 -143
  54. package/v2Containers/WebPush/Create/components/MediaSection.test.js +0 -341
  55. package/v2Containers/WebPush/Create/components/MessageSection.js +0 -103
  56. package/v2Containers/WebPush/Create/components/MessageSection.test.js +0 -268
  57. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +0 -87
  58. package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +0 -210
  59. package/v2Containers/WebPush/Create/components/TemplateNameSection.js +0 -54
  60. package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +0 -143
  61. package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +0 -82
  62. package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +0 -16
  63. package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +0 -41
  64. package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +0 -54
  65. package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +0 -37
  66. package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +0 -21
  67. package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
  68. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
  69. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
  70. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -515
  71. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
  72. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
  73. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -46
  74. package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +0 -150
  75. package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +0 -406
  76. package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +0 -30
  77. package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +0 -151
  78. package/v2Containers/WebPush/Create/hooks/useImageUpload.js +0 -104
  79. package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +0 -538
  80. package/v2Containers/WebPush/Create/hooks/useTagManagement.js +0 -122
  81. package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +0 -633
  82. package/v2Containers/WebPush/Create/index.js +0 -1148
  83. package/v2Containers/WebPush/Create/index.scss +0 -134
  84. package/v2Containers/WebPush/Create/messages.js +0 -203
  85. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -228
  86. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -294
  87. package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -90
  88. package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -305
  89. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -23
  90. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -155
  91. package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
  92. package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
  93. package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +0 -9
  94. package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +0 -9
  95. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  96. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  97. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
  98. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
  99. package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +0 -9
  100. package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +0 -9
  101. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
  102. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
  103. package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +0 -9
  104. package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +0 -9
  105. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -47
  106. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -141
  107. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
  108. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -68
  109. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -61
  110. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -99
  111. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -733
  112. package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +0 -571
  113. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -81
  114. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +0 -81
  115. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -50
  116. package/v2Containers/WebPush/Create/preview/constants.js +0 -637
  117. package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -79
  118. package/v2Containers/WebPush/Create/preview/preview.scss +0 -351
  119. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -370
  120. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
  121. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
  122. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
  123. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -47
  124. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
  125. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
  126. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
  127. package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -207
  128. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -153
  129. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
  130. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -101
  131. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -229
  132. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -909
  133. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1081
  134. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
  135. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -1327
  136. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -131
  137. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -112
  138. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
  139. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -129
  140. package/v2Containers/WebPush/Create/utils/payloadBuilder.js +0 -96
  141. package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +0 -396
  142. package/v2Containers/WebPush/Create/utils/previewUtils.js +0 -89
  143. package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -115
  144. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
  145. package/v2Containers/WebPush/Create/utils/validation.js +0 -75
  146. package/v2Containers/WebPush/Create/utils/validation.test.js +0 -283
  147. package/v2Containers/WebPush/actions.js +0 -60
  148. package/v2Containers/WebPush/constants.js +0 -132
  149. package/v2Containers/WebPush/index.js +0 -2
  150. package/v2Containers/WebPush/reducer.js +0 -104
  151. package/v2Containers/WebPush/sagas.js +0 -119
  152. package/v2Containers/WebPush/selectors.js +0 -65
  153. package/v2Containers/WebPush/tests/reducer.test.js +0 -863
  154. package/v2Containers/WebPush/tests/sagas.test.js +0 -566
  155. package/v2Containers/WebPush/tests/selectors.test.js +0 -960
@@ -17,18 +17,17 @@ import {
17
17
  CapImage,
18
18
  CapError,
19
19
  } from '@capillarytech/cap-ui-library';
20
- import { injectIntl, FormattedMessage, intlShape } from 'react-intl';
20
+ import { injectIntl, FormattedMessage, intlShape} from 'react-intl';
21
21
  import { isEmpty, get } from 'lodash';
22
22
  import './index.scss';
23
23
  import Gallery from '../../v2Containers/Assets/Gallery';
24
24
  import { MAX_SUPPORTED_IMAGE_SIZE } from './constants';
25
25
  import {
26
- FACEBOOK, INAPP, RCS, WHATSAPP, VIBER, WEBPUSH, WEBPUSH_BRAND_ICON
26
+ FACEBOOK, INAPP, RCS, WHATSAPP, VIBER,
27
27
  } from "../../v2Containers/CreativesContainer/constants";
28
28
 
29
29
  import messages from './messages';
30
30
  import { MOBILEPUSH } from '../CapVideoUpload/constants';
31
- import { CAP_SPACE_16 } from '@capillarytech/cap-ui-library/styled/variables';
32
31
  function CapImageUpload(props) {
33
32
  const {
34
33
  intl,
@@ -51,8 +50,6 @@ function CapImageUpload(props) {
51
50
  channelSpecificStyle,
52
51
  showReUploadButton = true,
53
52
  disableAutoRestore = false, // New prop to disable automatic restoration
54
- recommendedDimensions, // Array of {width, height} objects for recommended dimensions
55
- disabled = false,
56
53
  } = props;
57
54
  const {
58
55
  formatMessage,
@@ -75,7 +72,7 @@ function CapImageUpload(props) {
75
72
  const [isImageError, updateImageErrorMessage] = useState(false);
76
73
  const [isDrawerRequired, updateDrawerRequirement] = useState(false);
77
74
 
78
- const { CapHeadingSpan } = CapHeading;
75
+ const {CapHeadingSpan} = CapHeading;
79
76
  const ImageComponent = useCallback(
80
77
  () => (
81
78
  <>
@@ -94,7 +91,7 @@ function CapImageUpload(props) {
94
91
 
95
92
  const WithLabel = LabelHOC(ImageComponent);
96
93
 
97
- const uploadImages = useCallback((e, { files }) => {
94
+ const uploadImages = useCallback((e, {files}) => {
98
95
  if (e) {
99
96
  e.preventDefault();
100
97
  }
@@ -112,13 +109,13 @@ function CapImageUpload(props) {
112
109
  height: img.height,
113
110
  error: file && (file.size / (1e+6) > 5), // Checking if file exists and its size is greater than 5MB (5 * 10^6 bytes)
114
111
  };
115
- submitAction({ file, type: 'image', fileParams }, incorrectFile);
112
+ submitAction({file, type: 'image', fileParams}, incorrectFile);
116
113
  };
117
114
  img.onerror = () => {
118
115
  const fileParams = {
119
116
  error: true,
120
117
  };
121
- submitAction({ fileParams }, incorrectFile);
118
+ submitAction({fileParams}, incorrectFile);
122
119
  };
123
120
  if (e) {
124
121
  const event = e;
@@ -126,7 +123,7 @@ function CapImageUpload(props) {
126
123
  }
127
124
  }, []);
128
125
 
129
- const rcsValidation = useCallback((incorrectFile, data, size, height, width, error) => {
126
+ const rcsValidation = useCallback((incorrectFile, data, size, height, width, error) => {
130
127
  if (incorrectFile || size < minImgSize || size > imgSize || height !== imgHeight || width !== imgWidth || error) {
131
128
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
132
129
  } else {
@@ -149,19 +146,6 @@ function CapImageUpload(props) {
149
146
  const { height, width, error } = fileParams || {};
150
147
  if (channel === RCS) {
151
148
  rcsValidation(incorrectFile, data, size, height, width, error);
152
- } else if ([WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel)) {
153
- // For WEBPUSH, only validate file extension, size, and format - no dimension validation
154
- if (incorrectFile || size > imgSize || error) {
155
- updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
156
- } else {
157
- updateImageErrorMessage('');
158
- uploadAsset(
159
- data.file,
160
- data.type,
161
- data.fileParams,
162
- index,
163
- );
164
- }
165
149
  } else if (incorrectFile || size > imgSize || height > imgHeight || width > imgWidth || error) {
166
150
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
167
151
  } else {
@@ -176,7 +160,7 @@ function CapImageUpload(props) {
176
160
  }, [isImageError]);
177
161
 
178
162
  const capUploaderCustomRequest = useCallback((uploadData) => {
179
- uploadImages(undefined, { files: [uploadData.file] });
163
+ uploadImages(undefined, {files: [uploadData.file]});
180
164
  }, [uploadImages]);
181
165
 
182
166
  const setDrawerVisibility = useCallback((drawervisibleFlag) => updateDrawerRequirement(drawervisibleFlag), [isDrawerRequired]);
@@ -197,27 +181,19 @@ function CapImageUpload(props) {
197
181
  secure_file_path: image, width, height, file_size: size,
198
182
  } = get(imageTemplate, 'metaInfo', {});
199
183
  updateDrawerRequirement(false);
200
- // For WEBPUSH, skip dimension validation - only check extension, size
201
- if ([WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel)) {
202
- if (!allowedExtensionsRegex.test(image) || size > imgSize) {
203
- updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
204
- } else {
205
- updateImageErrorMessage('');
206
- updateImageSrc(image);
207
- }
208
- } else if (!allowedExtensionsRegex.test(image) || height > imgHeight || width > imgWidth || size > imgSize) {
184
+ if (!allowedExtensionsRegex.test(image) || height > imgHeight || width > imgWidth || size > imgSize ) {
209
185
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
210
186
  } else {
211
187
  updateImageErrorMessage('');
212
188
  updateImageSrc(image);
213
189
  }
214
- }, [isImageError, isDrawerRequired, channel, allowedExtensionsRegex, imgSize, formatMessage]);
190
+ }, [isImageError, isDrawerRequired]);
215
191
 
216
192
  const getGalleryDrawerContent = useCallback(() => {
217
193
  const locationGallery = {
218
194
  pathname: `/assets`,
219
195
  search: '',
220
- query: !isFullMode ? { type: 'embedded', module: 'library' } : {},
196
+ query: !isFullMode ? {type: 'embedded', module: 'library'} : {},
221
197
  };
222
198
  return (
223
199
  <>
@@ -254,7 +230,6 @@ function CapImageUpload(props) {
254
230
  customRequest={capUploaderCustomRequest}
255
231
  className="form-builder-dragger grey-background"
256
232
  showUploadList={!isImageError}
257
- disabled={disabled}
258
233
  >
259
234
  <CapHeading className="dragger-title" type="h7">
260
235
  <FormattedMessage {...messages.dragAndDrop} />
@@ -262,7 +237,7 @@ function CapImageUpload(props) {
262
237
  <CapHeading className="dragger-or" type="label6">
263
238
  <FormattedMessage {...messages.or} />
264
239
  </CapHeading>
265
- <CapButton className="dragger-button upload-image" type="secondary" disabled={disabled} tabIndex={disabled ? -1 : undefined}>
240
+ <CapButton className="dragger-button upload-image" type="secondary">
266
241
  <FormattedMessage {...messages.uploadComputer} />
267
242
  </CapButton>
268
243
  {channel !== WHATSAPP && (
@@ -270,8 +245,6 @@ function CapImageUpload(props) {
270
245
  className="dragger-button gallery-select"
271
246
  type="secondary"
272
247
  onClick={onGalleryClick}
273
- disabled={disabled}
274
- tabIndex={disabled ? -1 : undefined}
275
248
  >
276
249
  <FormattedMessage {...messages.uploadGallery} />
277
250
  </CapButton>
@@ -289,15 +262,13 @@ function CapImageUpload(props) {
289
262
  className="dragger-button re-upload"
290
263
  type="flat"
291
264
  onClick={onReUpload}
292
- style={channelSpecificStyle ? { marginTop: `-${CAP_SPACE_16}` } : {}}
293
- disabled={disabled}
294
- tabIndex={disabled ? -1 : undefined}
265
+ style={channelSpecificStyle ? { marginTop: '-16px'} : {}}
295
266
  >
296
267
  <FormattedMessage {...messages.imageReUpload} />
297
268
  </CapButton>
298
269
  );
299
270
  }
300
- }, [isImageError, imageSrc, disabled, showReUploadButton, channel, channelSpecificStyle, capUploaderCustomRequest, onGalleryClick, onReUpload]);
271
+ }, [isImageError, imageSrc]);
301
272
 
302
273
  return (
303
274
  <div style={style} className="cap-custom-image-upload">
@@ -314,8 +285,6 @@ function CapImageUpload(props) {
314
285
  type="file"
315
286
  onChange={(e) => uploadImages(e, { files: e.target.files })}
316
287
  accept={supportedExtensions || "image/*"}
317
- disabled={disabled}
318
- tabIndex={disabled ? -1 : undefined}
319
288
  />
320
289
  {getImageSection()}
321
290
  <CapDrawer
@@ -336,18 +305,7 @@ function CapImageUpload(props) {
336
305
  )}
337
306
  {![WHATSAPP, INAPP].includes(channel) && (
338
307
  <CapHeadingSpan type="label2" className="image-dimension">
339
- {[WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel) && recommendedDimensions?.length ? (
340
- <FormattedMessage
341
- {...messages.recommendedDimensions}
342
- values={{
343
- dimensions: recommendedDimensions
344
- .map((dim) => `${dim.width} x ${dim.height}px`)
345
- .join(', '),
346
- }}
347
- />
348
- ) : (
349
- <FormattedMessage {...messages.imageDimenstionDescription} values={{ width: imgWidth, height: imgHeight }} />
350
- )}
308
+ <FormattedMessage {...messages.imageDimenstionDescription} values={{ width: imgWidth, height: imgHeight }} />
351
309
  </CapHeadingSpan>
352
310
  )}
353
311
  {channel === FACEBOOK && (
@@ -370,7 +328,7 @@ function CapImageUpload(props) {
370
328
  getImageSizeLabel()
371
329
  )
372
330
  )}
373
- {[VIBER, INAPP, MOBILEPUSH, WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel) && getImageSizeLabel()}
331
+ {[VIBER, INAPP, MOBILEPUSH].includes(channel) && getImageSizeLabel()}
374
332
  <CapHeadingSpan type="label2" className="image-format">
375
333
  {channel === INAPP ? <FormattedMessage {...messages.format2} /> : <FormattedMessage {...messages.format} />}
376
334
  </CapHeadingSpan>
@@ -399,13 +357,6 @@ CapImageUpload.propTypes = {
399
357
  channel: PropTypes.string,
400
358
  channelSpecificStyle: PropTypes.bool,
401
359
  disableAutoRestore: PropTypes.bool,
402
- recommendedDimensions: PropTypes.arrayOf(
403
- PropTypes.shape({
404
- width: PropTypes.number.isRequired,
405
- height: PropTypes.number.isRequired,
406
- })
407
- ),
408
- disabled: PropTypes.bool,
409
360
  };
410
361
 
411
362
  export default injectIntl(CapImageUpload);
@@ -19,8 +19,5 @@ $classPrefix: cap-custom-image-upload;
19
19
  }
20
20
  .upload-image-error{
21
21
  margin-top: $CAP_SPACE_04;
22
- }
23
- .ant-upload-list-item{
24
- height: 1.65rem;
25
- }
22
+ }
26
23
  }
@@ -34,10 +34,6 @@ export default defineMessages({
34
34
  id: `${scope}.imageDimenstionDescription`,
35
35
  defaultMessage: 'Dimensions upto: {width}px x {height}px',
36
36
  },
37
- recommendedDimensions: {
38
- id: `${scope}.recommendedDimensions`,
39
- defaultMessage: 'Recommended dimensions: {dimensions}',
40
- },
41
37
  format: {
42
38
  id: `${scope}.format`,
43
39
  defaultMessage: 'Format: JPEG, JPG, PNG',
@@ -61,7 +57,7 @@ export default defineMessages({
61
57
  },
62
58
  channelImageSize: {
63
59
  id: `${scope}.channelImageSize`,
64
- defaultMessage: 'Size up to: {size}MB',
60
+ defaultMessage: 'Size upto: {size}MB',
65
61
  },
66
62
  RcschannelImageSize: {
67
63
  id: `${scope}.RcschannelImageSize`,
@@ -40,7 +40,6 @@ export const TRACK_CREATE_IMAGE = 'createImage';
40
40
  export const TRACK_CREATE_LINE = 'createLine';
41
41
  export const TRACK_CREATE_VIBER = 'createViber';
42
42
  export const TRACK_CREATE_FACEBOOK = 'createFacebook';
43
- export const TRACK_CREATE_WEBPUSH = 'createWebPush';
44
43
 
45
44
  export const CREATE = 'create';
46
45
  export const EDIT = 'edit';
@@ -55,7 +54,6 @@ export const EMAIL = 'email';
55
54
  export const ASSETS = 'assets';
56
55
  export const ZALO = 'zalo';
57
56
  export const INAPP = 'inapp';
58
- export const WEBPUSH = 'webpush';
59
57
 
60
58
  export const JP_LOCALE_HIDE_FEATURE = 'JP_LOCALE_HIDE_FEATURE';
61
59
 
@@ -67,7 +65,6 @@ export const TRACK_EDIT_IMAGE = 'editImage';
67
65
  export const TRACK_EDIT_LINE = 'editLine';
68
66
  export const TRACK_EDIT_VIBER = 'editViber';
69
67
  export const TRACK_EDIT_FACEBOOK = 'editFacebook';
70
- export const TRACK_EDIT_WEBPUSH = 'editWebPush';
71
68
 
72
69
  export const CHANNEL_CREATE_TRACK_MAPPING = {
73
70
  sms: TRACK_CREATE_SMS,
@@ -78,7 +75,6 @@ export const CHANNEL_CREATE_TRACK_MAPPING = {
78
75
  line: TRACK_CREATE_LINE,
79
76
  viber: TRACK_CREATE_VIBER,
80
77
  facebook: TRACK_CREATE_FACEBOOK,
81
- webpush: TRACK_CREATE_WEBPUSH,
82
78
  };
83
79
 
84
80
  export const CHANNEL_EDIT_TRACK_MAPPING = {
@@ -90,7 +86,6 @@ export const CHANNEL_EDIT_TRACK_MAPPING = {
90
86
  line: TRACK_EDIT_LINE,
91
87
  viber: TRACK_EDIT_VIBER,
92
88
  facebook: TRACK_EDIT_FACEBOOK,
93
- webpush: TRACK_EDIT_WEBPUSH,
94
89
  };
95
90
  export const GTM_TRACKING_ID = 'UA-110024621-2';
96
91
  export const BEE_PLUGIN = 'BEE_PLUGIN';
@@ -243,7 +243,7 @@ exports[`<Cap /> should render correct component 1`] = `
243
243
  "creatives.componentsV2.CapDocumentUpload.imageDimenstionDescription": "Dimensions upto: {width}px x {height}px",
244
244
  "creatives.componentsV2.CapDocumentUpload.or": "OR",
245
245
  "creatives.componentsV2.CapDocumentUpload.uploadComputer": "Select from computer",
246
- "creatives.componentsV2.CapDocumentUpload.whatsappDocSize": "Size up to: {size}",
246
+ "creatives.componentsV2.CapDocumentUpload.whatsappDocSize": "Size upto: {size}",
247
247
  "creatives.componentsV2.CapImageUpload.aspectRatio": "Aspect ratio: 1:1",
248
248
  "creatives.componentsV2.CapImageUpload.dragAndDrop": "Drag and drop image here",
249
249
  "creatives.componentsV2.CapImageUpload.format": "Format: JPEG, JPG, PNG",
@@ -251,13 +251,13 @@ exports[`<Cap /> should render correct component 1`] = `
251
251
  "creatives.componentsV2.CapImageUpload.imageErrorDesc": "Please upload the image with allowed file extension, size, dimension and aspect ratio",
252
252
  "creatives.componentsV2.CapImageUpload.imageGallery": "Gallery",
253
253
  "creatives.componentsV2.CapImageUpload.imageReUpload": "Reupload",
254
- "creatives.componentsV2.CapImageUpload.imageSize": "Size up to: 2MB",
254
+ "creatives.componentsV2.CapImageUpload.imageSize": "Size upto: 2MB",
255
255
  "creatives.componentsV2.CapImageUpload.or": "OR",
256
256
  "creatives.componentsV2.CapImageUpload.uploadComputer": "Select from computer",
257
257
  "creatives.componentsV2.CapImageUpload.uploadGallery": "Gallery",
258
258
  "creatives.componentsV2.CapImageUpload.uploadImageDescription": "The relevant image that complements the message context.",
259
259
  "creatives.componentsV2.CapImageUpload.whatsappAspectRatio": "Max aspect ratio: 1.91:1",
260
- "creatives.componentsV2.CapImageUpload.whatsappImageSize": "Size up to: 5MB",
260
+ "creatives.componentsV2.CapImageUpload.whatsappImageSize": "Size upto: 5MB",
261
261
  "creatives.componentsV2.CapTagList.Cancel": "Cancel",
262
262
  "creatives.componentsV2.CapTagList.Ok": "Ok",
263
263
  "creatives.componentsV2.CapTagList.all": "All",
@@ -1950,7 +1950,6 @@ new message content.",
1950
1950
  "creatives.containersV2.WeChat.templateName": "Template Name",
1951
1951
  "creatives.containersV2.WeChat.wechatCreateSuccess": "WeChat template mapped successfully",
1952
1952
  "creatives.containersV2.WeChat.wechatEditSuccess": "WeChat template edited successfully",
1953
- "creatives.containersV2.WebPush.addLabels": "Add labels",
1954
1953
  "creatives.containersV2.Whatsapp.IncorrectCategoryError": "INCORRECT CATEGORY: Message content different from expected content in the category selected. Refer {here} for expected content in each category.",
1955
1954
  "creatives.containersV2.Whatsapp.accountUpdate": "Account update",
1956
1955
  "creatives.containersV2.Whatsapp.accountUpdateTooltip": "Let customers know about updates or changes to their accounts.",
@@ -28,10 +28,6 @@ import { getWhatsappContent } from '../Whatsapp/utils';
28
28
  import * as commonUtil from '../../utils/common';
29
29
  import Zalo from '../Zalo';
30
30
  import MobilePushNew from '../MobilePushNew';
31
- import WebPush from '../WebPush';
32
- import DevicePreviewContent from '../WebPush/Create/preview/DevicePreviewContent';
33
- import { LAYOUT_MODE } from '../WebPush/Create/preview/constants';
34
- import { WEBPUSH_CONTENT_FIELDS, WEBPUSH_TEMPLATE_PATHS } from '../WebPush/constants';
35
31
  const CreativesWrapper = styled.div`
36
32
  .ant-popover,
37
33
  .ant-notification,
@@ -168,7 +164,6 @@ export function SlideBoxContent(props) {
168
164
  handleTestAndPreview,
169
165
  handleCloseTestAndPreview,
170
166
  isTestAndPreviewMode,
171
- supportedTags = [],
172
167
  } = props;
173
168
  const type = (messageDetails.type || '').toLowerCase(); // type is context in get tags values : outbound | dvs | referral | loyalty | coupons
174
169
  const query = { type: !isFullMode && 'embedded', module: isFullMode ? 'default' : 'library', isEditFromCampaigns: (templateData || {}).isEditFromCampaigns};
@@ -205,7 +200,6 @@ export function SlideBoxContent(props) {
205
200
  const isCreateRcs = isCreate && channel === constants.RCS;
206
201
  const isCreateMPush = isCreate && channel === constants.MOBILE_PUSH;
207
202
  const isCreateCallTask = isCreate && channel === constants.CALL_TASK;
208
- const isCreateWebPush = isCreate && channel === constants.WEBPUSH;
209
203
  let isEditSms = false;
210
204
  let isEditEmailWithId = false;
211
205
  let isEmailEditWithContent = false;
@@ -213,14 +207,12 @@ export function SlideBoxContent(props) {
213
207
  let isEmailPreview = false;
214
208
  let isMpushPreview = false;
215
209
  let isInappPreview = false;
216
- let isWebPushPreview = false;
217
210
  let isEditCallTask = false;
218
211
  let isEditMPush = false;
219
212
  let isEditFacebook = false;
220
213
  let isEditFTP = false;
221
214
  let isEditWhatsapp = false;
222
215
  let isEditInApp = false;
223
- let isEditWebPush = false;
224
216
  let isEditRcs = false;
225
217
  let isEditZalo = false;
226
218
  const isEmailCreate = isCreate && channel === constants.EMAIL;
@@ -234,12 +226,10 @@ export function SlideBoxContent(props) {
234
226
  isEditFacebook = isEdit && channel === constants.FACEBOOK;
235
227
  isEditWhatsapp = isEdit && channel === constants.WHATSAPP;
236
228
  isEditRcs = isEdit && channel === constants.RCS;
237
- isEditWebPush = isEdit && channel === constants.WEBPUSH;
238
229
  isPreview = slidBoxContent === 'preview' && [constants.SMS, constants.LINE, constants.WHATSAPP, constants.FACEBOOK, constants.VIBER, constants.RCS].includes(channel);
239
230
  isEmailPreview = slidBoxContent === 'preview' && channel === constants.EMAIL;
240
231
  isMpushPreview = slidBoxContent === 'preview' && channel === constants.MOBILE_PUSH;
241
232
  isInappPreview = slidBoxContent === 'preview' && channel === constants.INAPP;
242
- isWebPushPreview = slidBoxContent === 'preview' && channel === constants.WEBPUSH;
243
233
  isEditFTP = isEdit && [constants.NO_COMMUNICATION, constants.FTP].includes(channel);
244
234
  isEditZalo = isEdit && channel?.toUpperCase() === constants.ZALO;
245
235
  isEditInApp = isEdit && channel === constants.INAPP;
@@ -487,30 +477,8 @@ export function SlideBoxContent(props) {
487
477
  templateData={templateData}
488
478
  channel={channel}
489
479
  forwardedTags={forwardedTags}
490
- />
480
+ />
491
481
  )}
492
- {isWebPushPreview && (() => {
493
- const webpushContent = get(templateData, WEBPUSH_TEMPLATE_PATHS.CONTENT, {});
494
- const notificationTitle = webpushContent?.[WEBPUSH_CONTENT_FIELDS.TITLE] || '';
495
- const notificationBody = webpushContent?.[WEBPUSH_CONTENT_FIELDS.MESSAGE] || '';
496
- const imageSrc = webpushContent?.[WEBPUSH_CONTENT_FIELDS.IMAGE] || '';
497
- const brandIconSrc = webpushContent?.[WEBPUSH_CONTENT_FIELDS.BRAND_ICON] || '';
498
- // Extract URL from onClickAction or use empty string
499
- const url = webpushContent?.[WEBPUSH_CONTENT_FIELDS.ON_CLICK_ACTION]?.url || '';
500
-
501
- return (
502
- <div className="webpush-preview-container">
503
- <DevicePreviewContent
504
- notificationTitle={notificationTitle}
505
- notificationBody={notificationBody}
506
- url={url}
507
- imageSrc={imageSrc}
508
- brandIconSrc={brandIconSrc}
509
- layoutMode={LAYOUT_MODE.COMPACT}
510
- />
511
- </div>
512
- );
513
- })()}
514
482
 
515
483
  {
516
484
  (currentChannel === constants.WECHAT && !!slidBoxContent) && <WechatWrapper
@@ -1046,28 +1014,6 @@ export function SlideBoxContent(props) {
1046
1014
  />
1047
1015
  )}
1048
1016
 
1049
- {(isCreateWebPush || isEditWebPush) && (
1050
- <WebPush
1051
- isFullMode={isFullMode}
1052
- handleClose={handleClose}
1053
- onCreateComplete={onCreateComplete}
1054
- getFormData={getFormData}
1055
- isGetFormData={isGetFormData}
1056
- templateData={isEditWebPush ? templateData : undefined}
1057
- creativesMode={creativesMode}
1058
- params={isEditWebPush && templateData ? { id: templateData._id } : undefined}
1059
- location={{
1060
- pathname: isEditWebPush ? '/webpush/edit' : '/webpush/create',
1061
- query,
1062
- search: '',
1063
- }}
1064
- getDefaultTags={type}
1065
- forwardedTags={forwardedTags}
1066
- supportedTags={supportedTags}
1067
- selectedOfferDetails={selectedOfferDetails}
1068
- eventContextTags={eventContextTags}
1069
- />
1070
- )}
1071
1017
  {isCreateRcs && (<Rcs
1072
1018
  {...rcsCommonProps}
1073
1019
  showLiquidErrorInFooter={showLiquidErrorInFooter}
@@ -1130,7 +1076,6 @@ SlideBoxContent.propTypes = {
1130
1076
  onValidationFail: PropTypes.func,
1131
1077
  channelsToHide: PropTypes.array,
1132
1078
  forwardedTags: PropTypes.object,
1133
- supportedTags: PropTypes.array,
1134
1079
  selectedOfferDetails: PropTypes.array,
1135
1080
  channelsToDisable: PropTypes.array,
1136
1081
  weChatTemplateType: PropTypes.string,
@@ -1146,7 +1091,7 @@ SlideBoxContent.propTypes = {
1146
1091
  onFTPSubmit: PropTypes.func,
1147
1092
  messageStrategy: PropTypes.string,
1148
1093
  fbAdManager: PropTypes.string,
1149
- showDisabledFBInfo: PropTypes.bool,
1094
+ showDisabledFBInfo: PropTypes.boolean,
1150
1095
  orgUnitId: PropTypes.any,
1151
1096
  smsRegister: PropTypes.any,
1152
1097
  getCmsTemplatesInProgress: PropTypes.bool,
@@ -71,7 +71,6 @@ export function SlideBoxHeader(props) {
71
71
  rcs: <FormattedMessage {...messages.rcsCreative} />,
72
72
  zalo: <FormattedMessage {...messages.zaloTemplate} />,
73
73
  viber: <FormattedMessage {...messages.viberTemplate} />,
74
- webpush: <FormattedMessage {...messages.webPushTemplate} />,
75
74
  };
76
75
  return labels[currentChannel.toLowerCase()];
77
76
  };
@@ -21,8 +21,6 @@ export const PUSH = "PUSH";
21
21
  export const RCS = "RCS";
22
22
  export const ZALO = "ZALO";
23
23
  export const INAPP = "INAPP";
24
- export const WEBPUSH = "WEBPUSH";
25
- export const WEBPUSH_BRAND_ICON = "WEBPUSH_BRAND_ICON";
26
24
  export const PREVIEW = "preview";
27
25
  export const EDIT_TEMPLATE = "editTemplate";
28
26
  export const JOURNEY = "journey";
@@ -50,4 +48,3 @@ export const BIG_TEXT = "BIG_TEXT";
50
48
  export const GENERIC = "GENERIC";
51
49
  export const LIQUID_ERROR_MSG = "LIQUID_ERROR_MSG";
52
50
  export const STANDARD_ERROR_MSG = "STANDARD_ERROR_MSG";
53
- export const COMMON_CHANNELS = ['sms', 'email', 'wechat', 'mobilepush', 'webpush', 'line', 'viber', 'facebook', 'call_task', 'ftp', 'assets'];
@@ -42,7 +42,6 @@ import { makeSelectFetchingCmsData } from '../Email/selectors';
42
42
  import {
43
43
  IMAGE as LINE_IMAGE, IMAGE_MAP, IMAGE_CAROUSEL, VIDEO as LINE_VIDEO, TEMPLATE, STICKER,
44
44
  } from '../Line/Container/constants';
45
- import {EXTERNAL_URL, SITE_URL, WEBPUSH_MEDIA_TYPES} from '../WebPush/constants';
46
45
  import { IMAGE, VIDEO } from '../Facebook/Advertisement/constant';
47
46
  import {RCS_STATUSES} from '../Rcs/constants';
48
47
  import { CREATIVE } from '../Facebook/constants';
@@ -709,73 +708,6 @@ export class Creatives extends React.Component {
709
708
  };
710
709
  break;
711
710
  }
712
- case constants.WEBPUSH: {
713
- // Convert from campaign format (messageContent.content.content) to creatives format
714
- const webpushContent = get(templateData, 'content', {});
715
- const accountId = get(templateData, 'accountId');
716
- const {
717
- title,
718
- message,
719
- iconImageUrl: brandIcon = "",
720
- cta,
721
- expandableDetails
722
- } = webpushContent || {};
723
-
724
- // Map cta to onClickAction
725
- let onClickAction = null;
726
- if (cta) {
727
- if (cta?.type === EXTERNAL_URL) {
728
- onClickAction = {
729
- type: URL,
730
- url: cta?.actionLink || '',
731
- };
732
- } else {
733
- onClickAction = {
734
- type: cta?.type || SITE_URL,
735
- };
736
- }
737
- }
738
-
739
- // Map expandableDetails.ctas to ctas array
740
- let ctas = [];
741
- if (expandableDetails?.ctas && expandableDetails?.ctas?.length > 0) {
742
- ctas = expandableDetails?.ctas?.map((ctaItem) => ({
743
- actionText: ctaItem?.title || ctaItem?.actionText || '',
744
- type: URL,
745
- actionLink: ctaItem?.actionLink || '',
746
- }));
747
- }
748
-
749
- // Map expandableDetails.media to image if present
750
- let image = null;
751
- if (expandableDetails?.media && expandableDetails?.media?.length > 0) {
752
- const firstMedia = expandableDetails?.media[0];
753
- if (firstMedia?.type === WEBPUSH_MEDIA_TYPES.IMAGE && firstMedia?.url) {
754
- image = firstMedia?.url;
755
- }
756
- }
757
-
758
- creativesTemplateData = {
759
- type: channel,
760
- name: templateData?.messageSubject,
761
- versions: {
762
- base: {
763
- content: {
764
- webpush: {
765
- title: title || '',
766
- message: message || '',
767
- ...(brandIcon && { brandIcon }),
768
- ...(onClickAction && { onClickAction }),
769
- ...(ctas.length > 0 && { ctas }),
770
- ...(image && { image, mediaType: IMAGE }),
771
- },
772
- },
773
- },
774
- },
775
- definition: { accountId },
776
- };
777
- break;
778
- }
779
711
  default:
780
712
  break;
781
713
  }
@@ -1190,105 +1122,6 @@ export class Creatives extends React.Component {
1190
1122
  }
1191
1123
  }
1192
1124
  break;
1193
- case constants.WEBPUSH: {
1194
- if (template.value) {
1195
- const channelTemplate = template.value;
1196
- const accountId = get(channelTemplate, 'definition.accountId');
1197
- const webpushContent = get(channelTemplate, 'versions.base.content.webpush', {});
1198
- const {
1199
- title,
1200
- message,
1201
- brandIcon,
1202
- iconImageUrl: templateImageUrl ,
1203
- onClickAction,
1204
- ctas: templateCtas,
1205
- cta: templateCta,
1206
- expandableDetails: templateExpandableDetails,
1207
- image
1208
- } = webpushContent || {};
1209
-
1210
- const iconImageUrl = brandIcon || templateImageUrl || '';
1211
-
1212
- // Map onClickAction to cta
1213
- let cta = null;
1214
- if (onClickAction) {
1215
- if (onClickAction?.type === URL) {
1216
- cta = {
1217
- type: EXTERNAL_URL,
1218
- actionLink: onClickAction?.url || '',
1219
- };
1220
- } else {
1221
- cta = {
1222
- type: onClickAction?.type || SITE_URL,
1223
- actionLink: onClickAction?.url || '',
1224
- };
1225
- }
1226
- } else if (templateCta) {
1227
- // Fallback to cta if onClickAction is not present
1228
- cta = {
1229
- type: templateCta?.type || EXTERNAL_URL,
1230
- actionLink: templateCta?.actionLink || '',
1231
- };
1232
- }
1233
-
1234
- // Map ctas array to expandableDetails.ctas
1235
- let expandableDetails = null;
1236
- const hasCtas = templateCtas && templateCtas.length > 0;
1237
- const hasImage = image;
1238
-
1239
- if (hasCtas || hasImage) {
1240
- expandableDetails = {
1241
- media: [],
1242
- ctas: [],
1243
- };
1244
-
1245
- // Map image to expandableDetails.media
1246
- if (hasImage) {
1247
- expandableDetails.media = [{
1248
- url: image,
1249
- type: IMAGE,
1250
- }];
1251
- }
1252
-
1253
- // Map ctas array to expandableDetails.ctas
1254
- if (hasCtas) {
1255
- expandableDetails.ctas = templateCtas.map((ctaItem) => ({
1256
- type: ctaItem?.type === URL ? EXTERNAL_URL : ctaItem?.type,
1257
- action: ctaItem?.action || '',
1258
- title: ctaItem?.actionText || ctaItem?.title || '',
1259
- actionLink: ctaItem?.actionLink || '',
1260
- }));
1261
- }
1262
- } else if (templateExpandableDetails) {
1263
- // If expandableDetails already exists, use it
1264
- expandableDetails = {
1265
- media: templateExpandableDetails?.media || [],
1266
- ctas: templateExpandableDetails?.ctas || [],
1267
- };
1268
- }
1269
-
1270
- // Convert from creatives format to campaign format
1271
- templateData = {
1272
- channel,
1273
- messageContent: {
1274
- content: {
1275
- channel: constants.WEBPUSH,
1276
- accountId,
1277
- content: {
1278
- title: title || '',
1279
- message: message || '',
1280
- ...(iconImageUrl && { iconImageUrl }),
1281
- ...(cta && { cta }),
1282
- ...(expandableDetails && { expandableDetails }),
1283
- },
1284
- messageSubject: channelTemplate?.name ? channelTemplate.name : 'messageSubject',
1285
- offers: [],
1286
- },
1287
- },
1288
- };
1289
- }
1290
- break;
1291
- }
1292
1125
  default:
1293
1126
  break;
1294
1127
  }
@@ -1340,7 +1173,6 @@ export class Creatives extends React.Component {
1340
1173
  case constants.SMS:
1341
1174
  case constants.WECHAT:
1342
1175
  case constants.VIBER:
1343
- case constants.WEBPUSH:
1344
1176
  break;
1345
1177
  case constants.EMAIL:
1346
1178
  gtmDetails = {