@capillarytech/creatives-library 9.0.15-alpha.3 → 9.0.16-beta.0

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 (146) hide show
  1. package/AppRoot.js +80 -0
  2. package/app.js +5 -3
  3. package/constants/unified.js +0 -29
  4. package/entry.js +67 -1
  5. package/global-styles.js +1 -1
  6. package/mfe-exposed-components.js +2 -4
  7. package/package.json +2 -2
  8. package/services/api.js +1 -1
  9. package/services/tests/api.test.js +20 -35
  10. package/styles/containers/layout/_layoutPage.scss +8 -6
  11. package/utils/commonUtils.js +1 -19
  12. package/utils/getDataLayer.js +15 -0
  13. package/utils/gtmTrackers/gtmEvents/creativeDetails.js +2 -1
  14. package/utils/mfeDetect.js +1 -0
  15. package/v2Components/CapActionButton/constants.js +1 -8
  16. package/v2Components/CapActionButton/index.js +144 -202
  17. package/v2Components/CapActionButton/index.scss +14 -232
  18. package/v2Components/CapActionButton/messages.js +3 -19
  19. package/v2Components/CapActionButton/tests/index.test.js +18 -42
  20. package/v2Components/CapImageUpload/index.js +2 -2
  21. package/v2Components/CapTagList/index.js +0 -10
  22. package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +48 -70
  23. package/v2Components/CommonTestAndPreview/DeliverySettings/DeliverySettings.scss +2 -8
  24. package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +21 -214
  25. package/v2Components/CommonTestAndPreview/DeliverySettings/constants.js +0 -16
  26. package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +9 -83
  27. package/v2Components/CommonTestAndPreview/DeliverySettings/messages.js +0 -30
  28. package/v2Components/CommonTestAndPreview/DeliverySettings/utils/parseSenderDetailsResponse.js +11 -60
  29. package/v2Components/CommonTestAndPreview/SendTestMessage.js +5 -10
  30. package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +22 -202
  31. package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +80 -381
  32. package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +8 -155
  33. package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +0 -11
  34. package/v2Components/CommonTestAndPreview/constants.js +2 -38
  35. package/v2Components/CommonTestAndPreview/index.js +222 -761
  36. package/v2Components/CommonTestAndPreview/messages.js +3 -45
  37. package/v2Components/CommonTestAndPreview/sagas.js +6 -25
  38. package/v2Components/CommonTestAndPreview/tests/CommonTestAndPreview.addTestCustomer.test.js +0 -1
  39. package/v2Components/CommonTestAndPreview/tests/CustomValuesEditor.test.js +267 -284
  40. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/ModifyDeliverySettings.test.js +65 -231
  41. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/index.test.js +5 -118
  42. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/utils/parseSenderDetailsResponse.test.js +0 -341
  43. package/v2Components/CommonTestAndPreview/tests/PreviewSection.test.js +1 -8
  44. package/v2Components/CommonTestAndPreview/tests/SendTestMessage.test.js +13 -34
  45. package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/RcsPreviewContent.test.js +283 -281
  46. package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/index.test.js +1 -199
  47. package/v2Components/CommonTestAndPreview/tests/index.test.js +4 -133
  48. package/v2Components/CommonTestAndPreview/tests/sagas.test.js +24 -31
  49. package/v2Components/NavigationBar/index.js +9 -7
  50. package/v2Components/NavigationBar/mfeModuleHeader.config.js +16 -0
  51. package/v2Components/Pagination/_pagination.scss +2 -0
  52. package/v2Components/TemplatePreview/_templatePreview.scss +25 -45
  53. package/v2Components/TemplatePreview/index.js +32 -147
  54. package/v2Components/TemplatePreview/tests/index.test.js +0 -142
  55. package/v2Components/TestAndPreviewSlidebox/CustomValuesEditor.js +6 -6
  56. package/v2Components/TestAndPreviewSlidebox/index.js +1 -13
  57. package/v2Components/TestAndPreviewSlidebox/sagas.js +4 -11
  58. package/v2Components/TestAndPreviewSlidebox/tests/saga.test.js +1 -3
  59. package/v2Containers/Cap/constants.js +1 -0
  60. package/v2Containers/Cap/index.js +47 -21
  61. package/v2Containers/Cap/sagas.js +19 -0
  62. package/v2Containers/CommunicationFlow/Tests/CommunicationFlow.test.js +1 -4
  63. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/DeliverySettingsSection.test.js +0 -4
  64. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/SenderDetails.test.js +20 -20
  65. package/v2Containers/CreativesContainer/SlideBoxContent.js +7 -37
  66. package/v2Containers/CreativesContainer/SlideBoxFooter.js +5 -14
  67. package/v2Containers/CreativesContainer/SlideBoxHeader.js +5 -36
  68. package/v2Containers/CreativesContainer/constants.js +0 -11
  69. package/v2Containers/CreativesContainer/index.js +104 -323
  70. package/v2Containers/CreativesContainer/index.scss +1 -83
  71. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +34 -79
  72. package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +16 -79
  73. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +0 -8
  74. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +90 -333
  75. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +15 -20
  76. package/v2Containers/CreativesContainer/tests/index.test.js +9 -71
  77. package/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
  78. package/v2Containers/Rcs/constants.js +11 -131
  79. package/v2Containers/Rcs/index.js +829 -2682
  80. package/v2Containers/Rcs/index.scss +8 -443
  81. package/v2Containers/Rcs/messages.js +6 -45
  82. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +39409 -74176
  83. package/v2Containers/Rcs/tests/__snapshots__/utils.test.js.snap +74 -10
  84. package/v2Containers/Rcs/tests/index.test.js +40 -151
  85. package/v2Containers/Rcs/tests/mockData.js +0 -38
  86. package/v2Containers/Rcs/tests/utils.test.js +30 -643
  87. package/v2Containers/Rcs/utils.js +12 -466
  88. package/v2Containers/Sms/Create/index.js +48 -115
  89. package/v2Containers/SmsTrai/Create/index.js +4 -9
  90. package/v2Containers/SmsTrai/Edit/constants.js +0 -2
  91. package/v2Containers/SmsTrai/Edit/index.js +169 -678
  92. package/v2Containers/SmsTrai/Edit/messages.js +4 -14
  93. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +2854 -5455
  94. package/v2Containers/SmsWrapper/index.js +8 -37
  95. package/v2Containers/TagList/index.js +0 -6
  96. package/v2Containers/Templates/_templates.scss +11 -196
  97. package/v2Containers/Templates/actions.js +0 -11
  98. package/v2Containers/Templates/constants.js +0 -2
  99. package/v2Containers/Templates/index.js +60 -131
  100. package/v2Containers/Templates/sagas.js +13 -57
  101. package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +1015 -1060
  102. package/v2Containers/Templates/tests/sagas.test.js +16 -199
  103. package/v2Containers/TemplatesV2/TemplatesV2.style.js +10 -75
  104. package/v2Containers/TemplatesV2/index.js +43 -86
  105. package/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -9
  106. package/v2Containers/Whatsapp/index.js +25 -4
  107. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34 -578
  108. package/utils/rcsPayloadUtils.js +0 -92
  109. package/utils/templateVarUtils.js +0 -201
  110. package/utils/tests/rcsPayloadUtils.test.js +0 -226
  111. package/utils/tests/templateVarUtils.test.js +0 -204
  112. package/v2Components/CommonTestAndPreview/previewApiUtils.js +0 -59
  113. package/v2Components/CommonTestAndPreview/tests/previewApiUtils.test.js +0 -67
  114. package/v2Components/CommonTestAndPreview/utils.js +0 -84
  115. package/v2Components/SmsFallback/SmsFallbackLocalSelector.js +0 -91
  116. package/v2Components/SmsFallback/constants.js +0 -94
  117. package/v2Components/SmsFallback/index.js +0 -958
  118. package/v2Components/SmsFallback/index.scss +0 -266
  119. package/v2Components/SmsFallback/messages.js +0 -78
  120. package/v2Components/SmsFallback/smsFallbackUtils.js +0 -120
  121. package/v2Components/SmsFallback/tests/SmsFallbackLocalSelector.test.js +0 -50
  122. package/v2Components/SmsFallback/tests/rcsSmsFallback.acceptance.test.js +0 -147
  123. package/v2Components/SmsFallback/tests/smsFallbackHandlers.test.js +0 -304
  124. package/v2Components/SmsFallback/tests/smsFallbackUi.test.js +0 -208
  125. package/v2Components/SmsFallback/tests/smsFallbackUtils.test.js +0 -309
  126. package/v2Components/SmsFallback/tests/useLocalTemplateList.test.js +0 -422
  127. package/v2Components/SmsFallback/useLocalTemplateList.js +0 -92
  128. package/v2Components/TemplatePreview/constants.js +0 -2
  129. package/v2Components/VarSegmentMessageEditor/constants.js +0 -2
  130. package/v2Components/VarSegmentMessageEditor/index.js +0 -125
  131. package/v2Components/VarSegmentMessageEditor/index.scss +0 -46
  132. package/v2Containers/CreativesContainer/CreativesSlideBoxWrapper.js +0 -17
  133. package/v2Containers/CreativesContainer/embeddedSlideboxUtils.js +0 -79
  134. package/v2Containers/CreativesContainer/tests/SlideBoxContent.localTemplates.test.js +0 -90
  135. package/v2Containers/CreativesContainer/tests/embeddedSlideboxUtils.test.js +0 -258
  136. package/v2Containers/CreativesContainer/tests/useLocalTemplatesProp.test.js +0 -125
  137. package/v2Containers/Rcs/rcsLibraryHydrationUtils.js +0 -227
  138. package/v2Containers/Rcs/tests/rcsLibraryHydrationUtils.test.js +0 -318
  139. package/v2Containers/Sms/smsFormDataHelpers.js +0 -67
  140. package/v2Containers/Sms/tests/smsFormDataHelpers.test.js +0 -253
  141. package/v2Containers/SmsTrai/Edit/index.scss +0 -126
  142. package/v2Containers/Templates/TemplatesActionBar.js +0 -101
  143. package/v2Containers/Templates/tests/TemplatesActionBar.test.js +0 -120
  144. package/v2Containers/Templates/tests/smsTemplatesListApi.test.js +0 -180
  145. package/v2Containers/Templates/utils/smsTemplatesListApi.js +0 -79
  146. package/v2Containers/TemplatesV2/tests/TemplatesV2.localTemplates.test.js +0 -131
@@ -11,7 +11,6 @@ import PropTypes from 'prop-types';
11
11
  import CapRow from '@capillarytech/cap-ui-library/CapRow';
12
12
  import CapSpin from '@capillarytech/cap-ui-library/CapSpin';
13
13
  import CapIcon from '@capillarytech/cap-ui-library/CapIcon';
14
- import CapLabel from '@capillarytech/cap-ui-library/CapLabel';
15
14
  import PreviewHeader from './PreviewHeader';
16
15
  import DeviceFrame from './DeviceFrame';
17
16
  import EmailPreviewContent from './EmailPreviewContent';
@@ -23,21 +22,8 @@ import MobilePushPreviewContent from './MobilePushPreviewContent';
23
22
  import ViberPreviewContent from './ViberPreviewContent';
24
23
  import ZaloPreviewContent from './ZaloPreviewContent';
25
24
  import WebPushPreviewContent from './WebPushPreviewContent';
26
- import CapTab from '@capillarytech/cap-ui-library/CapTab';
27
- import {
28
- CHANNELS,
29
- DESKTOP,
30
- TABLET,
31
- MOBILE,
32
- ANDROID,
33
- IOS,
34
- PREVIEW_TAB_RCS,
35
- PREVIEW_TAB_SMS_FALLBACK,
36
- PREVIEW_TAB_KEYS,
37
- RCS_SMS_FALLBACK_VAR_MAPPED_PROP,
38
- } from '../constants';
25
+ import { CHANNELS, DESKTOP, TABLET, MOBILE, ANDROID, IOS } from '../constants';
39
26
  import messages from '../messages';
40
- import { getFallbackResolvedContent } from '../../../utils/templateVarUtils';
41
27
  import './_unifiedPreview.scss';
42
28
 
43
29
  const UnifiedPreview = ({
@@ -53,24 +39,7 @@ const UnifiedPreview = ({
53
39
  lastModified,
54
40
  updatedByName,
55
41
  showHeader, // Default to true for Test and Preview flow, false for channel component previews
56
- smsFallbackContent,
57
- smsFallbackResolvedText,
58
- activePreviewTab,
59
- onPreviewTabChange,
60
42
  }) => {
61
- const hasFallbackSmsTemplate = !!(smsFallbackContent?.templateContent || smsFallbackContent?.content);
62
- const showRcsSmsFallbackTabs = channel === CHANNELS.RCS && hasFallbackSmsTemplate;
63
- const rawFallbackTemplate = smsFallbackContent?.templateContent ?? smsFallbackContent?.content ?? '';
64
- const rcsFallbackVarMapped = smsFallbackContent?.[RCS_SMS_FALLBACK_VAR_MAPPED_PROP] ?? {};
65
- const hasRcsFallbackVarMapped = Object.keys(rcsFallbackVarMapped).length > 0;
66
- // When no varmap is present, show raw template so {{tags}} remain visible in the preview.
67
- // Only apply slot substitution when varmap entries exist or a resolved text is available.
68
- const smsFallbackDisplayContent =
69
- smsFallbackResolvedText != null && smsFallbackResolvedText !== ''
70
- ? smsFallbackResolvedText
71
- : hasRcsFallbackVarMapped
72
- ? getFallbackResolvedContent(rawFallbackTemplate, rcsFallbackVarMapped)
73
- : rawFallbackTemplate;
74
43
  /**
75
44
  * Render channel-specific preview content
76
45
  * For Phase 5, we'll render placeholders
@@ -157,21 +126,6 @@ const UnifiedPreview = ({
157
126
  case CHANNELS.RCS: {
158
127
  // RCS content is an object with rcsTitle, rcsDesc, rcsImageSrc, suggestions, etc.
159
128
  const rcsContent = typeof content === 'object' ? content : {};
160
-
161
- if (showRcsSmsFallbackTabs && activePreviewTab === PREVIEW_TAB_SMS_FALLBACK) {
162
- return (
163
- <SmsPreviewContent
164
- content={smsFallbackDisplayContent}
165
- device={ANDROID}
166
- isUpdating={isUpdating}
167
- error={error}
168
- formatMessage={formatMessage}
169
- senderId={smsFallbackContent?.senderId}
170
- showHeader={showHeader}
171
- />
172
- );
173
- }
174
-
175
129
  return (
176
130
  <RcsPreviewContent
177
131
  content={rcsContent}
@@ -359,96 +313,6 @@ const UnifiedPreview = ({
359
313
  * PreviewHeader is shown only when showHeader is true (for Test and Preview flow)
360
314
  * Channel-specific content will be in separate files in future phases
361
315
  */
362
- if (showRcsSmsFallbackTabs) {
363
- const renderPane = ({ paneChannel, paneDevice, paneShowDeviceToggle, paneContent }) => (
364
- <CapRow className="unified-preview-tab-pane">
365
- {showHeader && (
366
- <PreviewHeader
367
- selectedCustomer={selectedCustomer}
368
- device={paneDevice}
369
- showDeviceToggle={paneShowDeviceToggle}
370
- onDeviceChange={onDeviceChange}
371
- channel={paneChannel}
372
- />
373
- )}
374
-
375
- <CapRow className={`preview-content-container ${!showHeader ? 'preview-content-container-no-header' : ''}`}>
376
- {paneContent}
377
- </CapRow>
378
-
379
-
380
- </CapRow>
381
- );
382
-
383
- return (
384
- <CapRow className="unified-preview unified-preview-rcs-tabs">
385
- <CapTab
386
- activeKey={activePreviewTab}
387
- onChange={onPreviewTabChange}
388
- panes={[
389
- {
390
- tab: formatMessage(messages.rcsTab),
391
- key: PREVIEW_TAB_RCS,
392
- content: renderPane({
393
- paneChannel: CHANNELS.RCS,
394
- paneDevice: device,
395
- paneShowDeviceToggle: showDeviceToggle,
396
- paneContent: (
397
- <RcsPreviewContent
398
- content={typeof content === 'object' ? content : {}}
399
- device={device}
400
- isUpdating={isUpdating}
401
- error={error}
402
- formatMessage={formatMessage}
403
- senderId={content?.senderId}
404
- showHeader={showHeader}
405
- />
406
- ),
407
- }),
408
- },
409
- {
410
- tab: formatMessage(messages.smsFallbackTab),
411
- key: PREVIEW_TAB_SMS_FALLBACK,
412
- content: renderPane({
413
- paneChannel: CHANNELS.SMS,
414
- paneDevice: device,
415
- paneShowDeviceToggle: showDeviceToggle,
416
- paneContent: (
417
- <SmsPreviewContent
418
- content={smsFallbackDisplayContent}
419
- device={device}
420
- isUpdating={isUpdating}
421
- error={error}
422
- formatMessage={formatMessage}
423
- senderId={smsFallbackContent?.senderId}
424
- showHeader={showHeader}
425
- />
426
- ),
427
- }),
428
- },
429
- ]}
430
- />
431
- {(lastModified || updatedByName) && (
432
- <CapRow className="preview-metadata">
433
- {lastModified && (
434
- <CapLabel className="metadata-item">
435
- {formatMessage(messages.lastModified)}
436
- :
437
- {' '}
438
- {lastModified}
439
- </CapLabel>
440
- )}
441
- {updatedByName && (
442
- <CapLabel className="metadata-item">
443
- {formatMessage(messages.byAuthor, { name: updatedByName })}
444
- </CapLabel>
445
- )}
446
- </CapRow>
447
- )}
448
- </CapRow>
449
- );
450
- }
451
-
452
316
  return (
453
317
  <CapRow className="unified-preview">
454
318
  {/* PreviewHeader - shown only in Test and Preview flow, hidden in channel component previews */}
@@ -478,17 +342,19 @@ const UnifiedPreview = ({
478
342
  {(lastModified || updatedByName) && (
479
343
  <CapRow className="preview-metadata">
480
344
  {lastModified && (
481
- <CapLabel className="metadata-item">
345
+ <span className="metadata-item">
482
346
  {formatMessage(messages.lastModified)}
483
347
  :
484
348
  {' '}
485
349
  {lastModified}
486
- </CapLabel>
350
+ </span>
487
351
  )}
488
352
  {updatedByName && (
489
- <CapLabel className="metadata-item">
490
- {formatMessage(messages.byAuthor, { name: updatedByName })}
491
- </CapLabel>
353
+ <span className="metadata-item">
354
+ {formatMessage(messages.by)}
355
+ {' '}
356
+ {updatedByName}
357
+ </span>
492
358
  )}
493
359
  </CapRow>
494
360
  )}
@@ -528,15 +394,6 @@ UnifiedPreview.propTypes = {
528
394
 
529
395
  // Header display
530
396
  showHeader: PropTypes.bool, // Show PreviewHeader (true for Test and Preview flow, false for channel component previews)
531
-
532
- // RCS: SMS fallback preview support (same shape as SmsFallback / RCS smsFallbackData)
533
- smsFallbackContent: PropTypes.shape({
534
- templateContent: PropTypes.string,
535
- senderId: PropTypes.string,
536
- templateName: PropTypes.string,
537
- }),
538
- activePreviewTab: PropTypes.oneOf(PREVIEW_TAB_KEYS),
539
- onPreviewTabChange: PropTypes.func,
540
397
  };
541
398
 
542
399
  UnifiedPreview.defaultProps = {
@@ -549,10 +406,6 @@ UnifiedPreview.defaultProps = {
549
406
  lastModified: null,
550
407
  updatedByName: null,
551
408
  showHeader: true, // Default to true for Test and Preview flow
552
- smsFallbackContent: null,
553
- smsFallbackResolvedText: undefined,
554
- activePreviewTab: PREVIEW_TAB_RCS,
555
- onPreviewTabChange: () => {},
556
409
  };
557
410
 
558
411
  export default UnifiedPreview;
@@ -211,10 +211,6 @@
211
211
  margin-right: 0.5rem;
212
212
  }
213
213
 
214
- .cap-slide-box-v2.common-test-and-preview-slidebox .cap-slide-box-v2-container {
215
- z-index: 10030;
216
- }
217
-
218
214
  .common-test-and-preview-slidebox {
219
215
 
220
216
  .ant-modal-mask,
@@ -489,13 +485,6 @@
489
485
  }
490
486
  }
491
487
 
492
- .tags-section-title {
493
- margin: $CAP_SPACE_12 0;
494
- display: block;
495
- color: $CAP_G01;
496
- font-weight: $FONT_WEIGHT_MEDIUM;
497
- }
498
-
499
488
  .values-table {
500
489
  margin-bottom: $CAP_SPACE_16;
501
490
  border: $CAP_SPACE_01 solid $CAP_G12;
@@ -66,6 +66,7 @@ export const GET_WECRM_ACCOUNTS_REQUESTED = 'app/CommonTestAndPreview/GET_WECRM_
66
66
  export const GET_WECRM_ACCOUNTS_SUCCESS = 'app/CommonTestAndPreview/GET_WECRM_ACCOUNTS_SUCCESS';
67
67
  export const GET_WECRM_ACCOUNTS_FAILURE = 'app/CommonTestAndPreview/GET_WECRM_ACCOUNTS_FAILURE';
68
68
 
69
+
69
70
  // ============================================
70
71
  // CUSTOMER MODAL TYPE (test customer addition)
71
72
  // ============================================
@@ -86,44 +87,7 @@ export const CHANNELS = {
86
87
  ZALO: 'ZALO',
87
88
  WEBPUSH: 'WEBPUSH',
88
89
  };
89
-
90
- /** Unified preview tab keys when RCS shows RCS + SMS fallback panes. */
91
- export const PREVIEW_TAB_RCS = 'rcs';
92
- export const PREVIEW_TAB_SMS_FALLBACK = 'smsFallback';
93
- export const PREVIEW_TAB_KEYS = [PREVIEW_TAB_RCS, PREVIEW_TAB_SMS_FALLBACK];
94
-
95
- /** Channels whose Test & Preview defaults to Android/iOS device frame (not desktop). */
96
- export const CHANNELS_USING_ANDROID_PREVIEW_DEVICE = [
97
- CHANNELS.SMS,
98
- CHANNELS.WHATSAPP,
99
- CHANNELS.RCS,
100
- CHANNELS.INAPP,
101
- CHANNELS.MOBILEPUSH,
102
- CHANNELS.VIBER,
103
- ];
104
-
105
- /** RCS createMessageMeta test payload — rich card envelope literals. */
106
- export const RCS_TEST_META_CONTENT_TYPE_RICHCARD = 'RICHCARD';
107
- export const RCS_TEST_META_CARD_TYPE_STANDALONE = 'STANDALONE';
108
- export const RCS_TEST_META_CARD_ORIENTATION_VERTICAL = 'VERTICAL';
109
- export const RCS_TEST_META_CARD_WIDTH_SMALL = 'SMALL';
110
-
111
- /** React key fallback when a custom-values section has no `key` or title id. */
112
- export const CUSTOM_VALUES_EDITOR_SECTION_FALLBACK_KEY = 'section';
113
-
114
- /**
115
- * Matches at least one `{{variableName}}` token in SMS / RCS fallback template text.
116
- */
117
- export const SMS_MUSTACHE_TAG_PATTERN = /\{\{[^}]+\}\}/;
118
-
119
- /** TRAI DLT `{#…#}` placeholders (same idea as `COMBINED_SMS_TEMPLATE_VAR_REGEX` in unified constants). */
120
- export const SMS_DLT_HASH_TAG_PATTERN = /\{\#[^#]*\#\}/;
121
-
122
- /**
123
- * Key on `smsFallbackContent` passed into Test & Preview — RCS slot map from SmsTraiEdit
124
- * (`onRcsFallbackEditorStateChange`), merged before tag extraction like the embedded SMS editor.
125
- */
126
- export const RCS_SMS_FALLBACK_VAR_MAPPED_PROP = 'rcsSmsFallbackVarMapped';
90
+ export const CHANNELS_USING_ANDROID_PREVIEW_DEVICE = [CHANNELS.SMS, CHANNELS.RCS, CHANNELS.WHATSAPP, CHANNELS.VIBER, CHANNELS.ZALO, CHANNELS.INAPP, CHANNELS.MOBILEPUSH];
127
91
 
128
92
  // ============================================
129
93
  // DEVICE CONSTANTS