@capillarytech/creatives-library 9.0.55-alpha.1 → 9.0.55

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 (42) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/constants/unified.js +1 -0
  3. package/package.json +1 -1
  4. package/services/api.js +0 -20
  5. package/styles/containers/layout/_layoutPage.scss +2 -1
  6. package/translations/en.json +2 -2
  7. package/utils/common.js +4 -0
  8. package/v2Components/AccessForbidden/_accessForbidden.scss +22 -12
  9. package/v2Components/AccessForbidden/index.js +27 -8
  10. package/v2Components/AccessForbidden/messages.js +2 -3
  11. package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +0 -20
  12. package/v2Components/CommonTestAndPreview/constants.js +0 -2
  13. package/v2Components/CommonTestAndPreview/index.js +4 -1
  14. package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/index.test.js +0 -106
  15. package/v2Components/CommonTestAndPreview/tests/constants.test.js +1 -9
  16. package/v2Components/NavigationBar/mfeModuleHeader.config.js +1 -1
  17. package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +2 -2
  18. package/v2Containers/CommunicationFlow/CommunicationFlow.js +56 -118
  19. package/v2Containers/CommunicationFlow/CommunicationFlow.scss +1 -1
  20. package/v2Containers/CommunicationFlow/CommunicationFlowCard.js +6 -22
  21. package/v2Containers/CommunicationFlow/Tests/CommunicationFlow.test.js +49 -421
  22. package/v2Containers/CommunicationFlow/Tests/CommunicationFlowCard.test.js +2 -18
  23. package/v2Containers/CommunicationFlow/constants.js +1 -90
  24. package/v2Containers/CommunicationFlow/index.js +20 -15
  25. package/v2Containers/CommunicationFlow/messages.js +0 -4
  26. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/SenderDetails.js +0 -6
  27. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/SenderDetails.test.js +0 -25
  28. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/deliverySettingsConfig.test.js +4 -11
  29. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/deliverySettingsConfig.js +5 -24
  30. package/v2Containers/CreativesContainer/index.js +7 -1
  31. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +6 -6
  32. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +4 -4
  33. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +32 -32
  34. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +36 -36
  35. package/v2Containers/Rcs/constants.js +1 -0
  36. package/v2Containers/Rcs/index.js +10 -1
  37. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +226 -118
  38. package/v2Containers/Rcs/tests/index.test.js +121 -0
  39. package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +8 -8
  40. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +30 -30
  41. package/v2Containers/Templates/index.js +26 -0
  42. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +268 -268
@@ -38,95 +38,6 @@ export const CHANNEL_PRIORITY = 'CHANNEL_PRIORITY';
38
38
  export const AB_TEST = 'AB_TEST';
39
39
  export const SINGLE_TEMPLATE = 'SINGLE_TEMPLATE';
40
40
 
41
- // CCS CommDefinition strategyType — distinct from SINGLE_TEMPLATE above, which
42
- // is this UI's own communicationStrategy value. Only SINGLE is supported this
43
- // phase; CCS create is skipped entirely for CHANNEL_PRIORITY/AB_TEST.
44
- export const CCS_STRATEGY_TYPE_SINGLE = 'SINGLE';
45
-
46
- // Mirrors CCS's SingleChannelStrategy field names exactly (Cap Notify API
47
- // Design doc sample payloads, verified against real create responses). Kept
48
- // separate from CHANNEL_CONTENT_KEY_MAP/CHANNEL_DELIVERY_KEY_MAP below, which
49
- // are the legacy messageMeta payload's keys.
50
- export const CCS_CHANNEL_CONTENT_KEY_MAP = {
51
- SMS: 'smsMessageContent',
52
- EMAIL: 'emailMessageContent',
53
- WHATSAPP: 'whatsappMessageContent',
54
- // CCS's channel enum value for mobile push is 'PUSH' (verified against real
55
- // create responses), even though the content/delivery keys stay 'mpush*'.
56
- PUSH: 'mpushMessageContent',
57
- INAPP: 'inAppMessageContent',
58
- ANDROID: 'androidMessageContent',
59
- IOS: 'iosMessageContent',
60
- ZALO: 'zaloMessageContent',
61
- VIBER: 'viberMessageContent',
62
- LINE: 'lineMessageContent',
63
- WEBPUSH: 'webPushMessageContent',
64
- RCS: 'rcsMessageContent',
65
- };
66
-
67
- // contentItem.templateData is built by the legacy CreativesContainer content
68
- // editor (messageMeta-oriented field names) — for channels whose legacy field
69
- // names don't match CCS's own content schema, transform before sending rather
70
- // than dumping templateData as-is. EMAIL: legacy stores the subject as
71
- // `emailSubject` and the HTML body as `emailBody` (see
72
- // extractContentForPreview.js and CreativesContainer/index.js, where the Bee
73
- // editor's output is written back into templateData.emailBody — also
74
- // mirrored by the existing legacy emailMessageContent builder in
75
- // utils/transformerUtils.js). CCS expects `messageSubject`/`messageBody`.
76
- export const CCS_CONTENT_TRANSFORMS = {
77
- EMAIL: (templateData = {}) => ({
78
- messageSubject: templateData.emailSubject,
79
- messageBody: templateData.emailBody || templateData.emailHtml,
80
- }),
81
- // SMS: legacy stores the typed text as `messageBody` (see
82
- // CreativesContainer/index.js's getCreativesData SMS case, and the existing
83
- // legacy smsMessageContent builder in utils/transformerUtils.js, both of
84
- // which read/write this same field) — CCS's schema expects it as `message`
85
- // (confirmed against a real CCS response showing smsMessageContent.message
86
- // stayed null when messageBody was sent instead).
87
- SMS: (templateData = {}) => ({
88
- message: templateData.messageBody || '',
89
- }),
90
- // WEBPUSH: the legacy editor nests the real data under
91
- // messageContent.content (see CommunicationFlowCard.js's own comment on
92
- // this same wrapping, for the edit-mode case) — extracting it flat here
93
- // matches CCS's shape ({ messageSubject, accountId, content }); `offers`
94
- // (a legacy-only field) is deliberately dropped, not part of CCS's schema.
95
- WEBPUSH: (templateData = {}) => {
96
- const inner = templateData.messageContent?.content || templateData;
97
- return {
98
- messageSubject: inner.messageSubject,
99
- accountId: inner.accountId,
100
- content: inner.content,
101
- };
102
- },
103
- };
104
-
105
- export const CCS_CHANNEL_DELIVERY_KEY_MAP = {
106
- SMS: 'smsDeliverySettings',
107
- EMAIL: 'emailDeliverySettings',
108
- WHATSAPP: 'whatsappDeliverySettings',
109
- PUSH: 'mpushDeliverySettings',
110
- INAPP: 'inAppDeliverySettings',
111
- ANDROID: 'androidDeliverySettings',
112
- IOS: 'iosDeliverySettings',
113
- ZALO: 'zaloDeliverySettings',
114
- VIBER: 'viberDeliverySettings',
115
- LINE: 'lineDeliverySettings',
116
- WEBPUSH: 'webPushDeliverySettings',
117
- RCS: 'rcsDeliverySettings',
118
- };
119
-
120
- // The UI's own internal channel identifier for mobile push is 'MOBILEPUSH'
121
- // (see CreativesContainer/constants.js MOBILE_PUSH), but CCS's channel enum
122
- // value is 'PUSH' (verified against real create responses — the content/
123
- // delivery KEYS still say 'mpush*', only the enum VALUE is 'PUSH') —
124
- // normalize before building the CCS payload. Every other channel identifier
125
- // matches CCS as-is.
126
- export const CCS_CHANNEL_NAME_MAP = {
127
- MOBILEPUSH: 'PUSH',
128
- };
129
-
130
41
  // Channel config - single source of truth for CreativesContainer and TemplatesV2
131
42
  // paneKey: TemplatesV2 defaultPanes object key (for channelsToHide)
132
43
  // channelProp: CreativesContainer channel prop (must match pane.key for tab to be active)
@@ -321,4 +232,4 @@ export const INCENTIVE_TYPES = [
321
232
  {
322
233
  value: 'badges', label: <FormattedMessage {...messages.badges} />, isActive: false, disabled: false,
323
234
  },
324
- ];
235
+ ];
@@ -9,6 +9,7 @@
9
9
  import React from 'react';
10
10
  import PropTypes from 'prop-types';
11
11
  import CommunicationFlow from './CommunicationFlow';
12
+ import { hasSupportEngagementModule } from '../../utils/common';
12
13
 
13
14
  const CommunicationFlowContainer = ({
14
15
  config,
@@ -17,16 +18,22 @@ const CommunicationFlowContainer = ({
17
18
  onCancel,
18
19
  onChange,
19
20
  ...otherProps
20
- }) => (
21
- <CommunicationFlow
22
- config={config}
23
- initialData={initialData}
24
- onSave={onSave}
25
- onCancel={onCancel}
26
- onChange={onChange}
27
- {...otherProps}
28
- />
29
- );
21
+ }) => {
22
+ if (!hasSupportEngagementModule()) {
23
+ return null;
24
+ }
25
+
26
+ return (
27
+ <CommunicationFlow
28
+ config={config}
29
+ initialData={initialData}
30
+ onSave={onSave}
31
+ onCancel={onCancel}
32
+ onChange={onChange}
33
+ {...otherProps}
34
+ />
35
+ );
36
+ };
30
37
 
31
38
  CommunicationFlowContainer.propTypes = {
32
39
  config: PropTypes.shape({
@@ -80,13 +87,11 @@ CommunicationFlowContainer.propTypes = {
80
87
  controls: PropTypes.array,
81
88
  }),
82
89
  }),
83
- context: PropTypes.object, // ouId, campaignId, programId; name (required for CCS create),
84
- // referenceId (optional, auto-generated from name if absent), description (optional).
85
- useCCS: PropTypes.bool, // If false, skips the CCS createCommDefinition call on save. Defaults to true.
90
+ context: PropTypes.object, // ouId, campaignId, programId, etc.
91
+ useCCS: PropTypes.bool, // If false, skips CCS bulk-claim-approve on save. Defaults to true.
86
92
  }).isRequired,
87
93
  initialData: PropTypes.object, // for edit/preview mode
88
- onSave: PropTypes.func.isRequired, // (data) => void - called when user saves; data.ccsCommDefinition
89
- // ({id, referenceId, version, status}) is present when the CCS create succeeded
94
+ onSave: PropTypes.func.isRequired, // (data) => void - called when user saves
90
95
  onCancel: PropTypes.func.isRequired, // () => void - called when user cancels
91
96
  onChange: PropTypes.func, // (data) => void - optional, called on data changes
92
97
  };
@@ -363,8 +363,4 @@ export default {
363
363
  id: `${prefix}.senderNotConfiguredError`,
364
364
  defaultMessage: 'Selected domain gateway id is not correct. Please change the domain id or contact the gateway team to register them with Capillary.',
365
365
  },
366
- duplicateReferenceIdError: {
367
- id: `${prefix}.duplicateReferenceIdError`,
368
- defaultMessage: 'This reference ID is already in use in your organization. Please use a different reference ID.',
369
- },
370
366
  };
@@ -29,7 +29,6 @@ import {
29
29
  getEmailDefaultsForDomainId,
30
30
  getSmsDefaultsForDomainId,
31
31
  getRcsAccountName,
32
- getEmailDomainGatewayMapIdByDomainId,
33
32
  } from './deliverySettingsConfig';
34
33
  import messages from '../../messages';
35
34
  import './SenderDetails.scss';
@@ -152,11 +151,6 @@ const SenderDetails = ({
152
151
  saveValues.whatsappDomainId = matchedDomain?.domainProperties?.id ?? matchedDomain?.domainId ?? matchedDomain?.id;
153
152
  }
154
153
  }
155
- // Include EMAIL domainGatewayMapId derived from the selected domain for persistence -
156
- // CCS needs it alongside domainId, but it's not a user-facing field.
157
- if (entity && fieldValues.emailDomain != null && fieldValues.emailDomain !== '') {
158
- saveValues.emailDomainGatewayMapId = getEmailDomainGatewayMapIdByDomainId(entity, fieldValues.emailDomain);
159
- }
160
154
  onSave(saveValues);
161
155
  }
162
156
  onClose();
@@ -83,7 +83,6 @@ const ENTITIES = {
83
83
  emailTwoDomains: {
84
84
  EMAIL: [
85
85
  {
86
- id: 'gwmap-a',
87
86
  domainProperties: {
88
87
  id: 'em-a',
89
88
  domainName: 'Mail Alpha',
@@ -102,7 +101,6 @@ const ENTITIES = {
102
101
  },
103
102
  },
104
103
  {
105
- id: 'gwmap-b',
106
104
  domainProperties: {
107
105
  id: 'em-b',
108
106
  domainName: 'Mail Beta',
@@ -324,29 +322,6 @@ describe('SenderDetails', () => {
324
322
  });
325
323
  });
326
324
 
327
- it('persists emailDomainGatewayMapId derived from the selected email domain on save', async () => {
328
- const { onSave } = renderSenderDetails({
329
- channels: ['EMAIL'],
330
- preloadedDomainProperties: ENTITIES.emailTwoDomains,
331
- });
332
- const root = document.querySelector('.sender-details');
333
- await waitFor(() => expect(within(root).getByText('Mail Alpha')).toBeInTheDocument());
334
-
335
- await openSelectAndChoose(root, 0, 'Mail Beta');
336
- await waitFor(() => expect(within(root).getByText('beta@other.com')).toBeInTheDocument());
337
-
338
- const saveBtn = within(root).getByRole('button', { name: /save changes/i });
339
- await waitFor(() => expect(saveBtn).not.toBeDisabled());
340
- fireEvent.click(saveBtn);
341
-
342
- expect(onSave).toHaveBeenCalledWith(
343
- expect.objectContaining({
344
- emailDomain: 'em-b',
345
- emailDomainGatewayMapId: 'gwmap-b',
346
- }),
347
- );
348
- });
349
-
350
325
  it('resets email domain row back to the first gateway', async () => {
351
326
  renderSenderDetails({
352
327
  channels: ['EMAIL'],
@@ -438,7 +438,6 @@ describe('deliverySettingsConfig — user-facing flows', () => {
438
438
  smsDomain: 'd1',
439
439
  smsSenderId: 'g1',
440
440
  emailDomain: 'ed',
441
- emailDomainGatewayMapId: 'gwmap-1',
442
441
  emailSenderId: 'mail@x.com',
443
442
  emailSenderName: 'N',
444
443
  emailReplyToId: 'r@x.com',
@@ -456,10 +455,9 @@ describe('deliverySettingsConfig — user-facing flows', () => {
456
455
  SMS: { domainId: 'd1', gsmSenderId: 'g1' },
457
456
  EMAIL: {
458
457
  domainId: 'ed',
459
- domainGatewayMapId: 'gwmap-1',
460
- senderId: 'mail@x.com',
458
+ senderEmail: 'mail@x.com',
461
459
  senderLabel: 'N',
462
- replyToId: 'r@x.com',
460
+ senderReplyTo: 'r@x.com',
463
461
  },
464
462
  WHATSAPP: { domainId: 'wd', senderMobNum: '+w' },
465
463
  RCS: { senderMobNum: '+r', rcsSender: '+r' },
@@ -474,10 +472,9 @@ describe('deliverySettingsConfig — user-facing flows', () => {
474
472
  SMS: { domainId: 'd', gsmSenderId: 'g' },
475
473
  EMAIL: {
476
474
  domainId: 'ed',
477
- domainGatewayMapId: 'gwmap-2',
478
- senderId: 'e@e.com',
475
+ senderEmail: 'e@e.com',
479
476
  senderLabel: 'L',
480
- replyToId: 'r@e.com',
477
+ senderReplyTo: 'r@e.com',
481
478
  },
482
479
  WHATSAPP: { senderMobNum: '+w', domainId: 'wid' },
483
480
  RCS: { rcsSender: '+r' },
@@ -489,10 +486,6 @@ describe('deliverySettingsConfig — user-facing flows', () => {
489
486
  smsDomain: 'd',
490
487
  smsSenderId: 'g',
491
488
  emailDomain: 'ed',
492
- emailDomainGatewayMapId: 'gwmap-2',
493
- emailSenderId: 'e@e.com',
494
- emailSenderName: 'L',
495
- emailReplyToId: 'r@e.com',
496
489
  whatsappDomainId: 'wid',
497
490
  viberSenderId: 'vx',
498
491
  });
@@ -181,14 +181,6 @@ const getEmailDomainValue = (entity) => {
181
181
  return emailData.domainProperties?.id ?? emailData.domainId ?? emailData.id ?? '';
182
182
  };
183
183
 
184
- // CCS's domainGatewayMapId is the domainProperties API's own outer `id`
185
- // (distinct from `domainProperties.id`, which is the numeric domainId) - the
186
- // domain-gateway-mapping id for the selected domain entry.
187
- const getEmailDomainGatewayMapIdByDomainId = (entity, domainId) => {
188
- const domainEntry = getEmailDomainById(entity, domainId);
189
- return domainEntry?.id ?? '';
190
- };
191
-
192
184
  /** Domain name for summary display (parseEntityForDisplay) */
193
185
  const getEmailDomainNameForDisplay = (entity) => {
194
186
  const emailData = getEmailData(entity);
@@ -270,8 +262,6 @@ const getEmailDefaultsForDomain = (domainData) => {
270
262
  * context.fieldValues has current form state (e.g. selected emailDomain)
271
263
  * Aligned with adiona-ui/cap-campaigns-v2: default = contactInfo item with default:true, or first
272
264
  */
273
- export { getEmailDomainGatewayMapIdByDomainId };
274
-
275
265
  export const getDefaultValueForField = (fieldKey, entity, context = {}) => {
276
266
  if (!entity) return '';
277
267
  const fieldValues = context?.fieldValues || {};
@@ -584,11 +574,7 @@ export const parseEntityForDisplay = (entity, context = {}) => {
584
574
  senderDetails: entity,
585
575
  smsSenderId: getSmsSenderIdValue(entity),
586
576
  smsDomain: getSmsDomainValue(entity),
587
- // emailDomain here is the domain NAME (for display only) - buildChannelSettingFromFieldValues
588
- // needs the numeric domainId/domainGatewayMapId, sourced separately below.
589
577
  emailDomain: getEmailDomainNameForDisplay(entity),
590
- emailDomainId: getEmailDomainValue(entity),
591
- emailDomainGatewayMapId: getEmailDomainGatewayMapIdByDomainId(entity, getEmailDomainValue(entity)),
592
578
  emailSenderId: getEmailSenderIdValue(entity),
593
579
  viberSenderId: getSenderIdFromContactInfo(entity, 'VIBER'),
594
580
  zaloSenderId: getSenderIdFromContactInfo(entity, 'ZALO'),
@@ -614,14 +600,10 @@ export const buildChannelSettingFromFieldValues = (fieldValues = {}) => {
614
600
  }
615
601
  if (fieldValues.emailDomain != null || fieldValues.emailSenderId != null || fieldValues.emailSenderName != null || fieldValues.emailReplyToId != null) {
616
602
  channelSetting.EMAIL = {
617
- // emailDomainId (numeric, from the auto-save-defaults path via parseEntityForDisplay)
618
- // takes priority over emailDomain, which is numeric when sourced from SenderDetails'
619
- // own field state but a display NAME string when sourced from parseEntityForDisplay.
620
- domainId: fieldValues.emailDomainId ?? fieldValues.emailDomain,
621
- domainGatewayMapId: fieldValues.emailDomainGatewayMapId,
622
- senderId: fieldValues.emailSenderId,
603
+ domainId: fieldValues.emailDomain,
604
+ senderEmail: fieldValues.emailSenderId,
623
605
  senderLabel: fieldValues.emailSenderName,
624
- replyToId: fieldValues.emailReplyToId,
606
+ senderReplyTo: fieldValues.emailReplyToId,
625
607
  };
626
608
  }
627
609
  if (fieldValues.whatsappSenderNumber != null || fieldValues.whatsappAccount != null) {
@@ -691,10 +673,9 @@ export const parseChannelSettingForDisplay = (channelSetting = {}) => {
691
673
  }
692
674
  if (channelSetting.EMAIL) {
693
675
  out.emailDomain = channelSetting.EMAIL.domainId;
694
- out.emailDomainGatewayMapId = channelSetting.EMAIL.domainGatewayMapId;
695
- out.emailSenderId = channelSetting.EMAIL.senderId;
676
+ out.emailSenderId = channelSetting.EMAIL.senderEmail;
696
677
  out.emailSenderName = channelSetting.EMAIL.senderLabel;
697
- out.emailReplyToId = channelSetting.EMAIL.replyToId;
678
+ out.emailReplyToId = channelSetting.EMAIL.senderReplyTo;
698
679
  }
699
680
  if (channelSetting.WHATSAPP) {
700
681
  out.whatsappSenderNumber = channelSetting.WHATSAPP.senderMobNum;
@@ -1441,7 +1441,12 @@ export class Creatives extends React.Component {
1441
1441
  cardType = "",
1442
1442
  cardSettings = {},
1443
1443
  accountId = "",
1444
+ vfTemplateId: vfTemplateIdFromPayload,
1444
1445
  } = get(versions, 'base.content.RCS.rcsContent', {});
1446
+ const { templateId: rootTemplateId = '' } = versions || {};
1447
+ const vfTemplateId = vfTemplateIdFromPayload
1448
+ || get(this.state.templateData, 'versions.base.content.RCS.rcsContent.vfTemplateId', '')
1449
+ || rootTemplateId;
1445
1450
  const firstCardFromSubmit = Array.isArray(cardContentFromSubmit)
1446
1451
  ? cardContentFromSubmit[0]
1447
1452
  : null;
@@ -1469,6 +1474,7 @@ export class Creatives extends React.Component {
1469
1474
  creativeName: name,
1470
1475
  rcsContent,
1471
1476
  accountId,
1477
+ ...(vfTemplateId && { templateId: vfTemplateId }),
1472
1478
  ...(includeRootRcsCardVarMappedOnConsumerPayload
1473
1479
  ? { rcsCardVarMapped: cardVarMappedFromFirstRcsCard }
1474
1480
  : {}),
@@ -2456,7 +2462,7 @@ export class Creatives extends React.Component {
2456
2462
  )}
2457
2463
  handleClose={this.handleCloseSlideBox}
2458
2464
  show={showSlideBox}
2459
- size="size-l"
2465
+ size="size-xl"
2460
2466
  />
2461
2467
  </SlideBoxWrapper>
2462
2468
  );
@@ -87,8 +87,8 @@ exports[`Creatives line image carousel test/> should render 1`] = `
87
87
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
88
88
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
89
89
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
90
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
91
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
90
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
91
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
92
92
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
93
93
  "creatives.components.CapTagList.Cancel": "Cancel",
94
94
  "creatives.components.CapTagList.Ok": "Ok",
@@ -4228,8 +4228,8 @@ exports[`Creatives line image carousel test/> should render 2`] = `
4228
4228
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
4229
4229
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
4230
4230
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
4231
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
4232
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
4231
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
4232
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
4233
4233
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
4234
4234
  "creatives.components.CapTagList.Cancel": "Cancel",
4235
4235
  "creatives.components.CapTagList.Ok": "Ok",
@@ -8508,8 +8508,8 @@ exports[`Creatives line image carousel test/> should render 3`] = `
8508
8508
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
8509
8509
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
8510
8510
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
8511
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
8512
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
8511
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
8512
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
8513
8513
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
8514
8514
  "creatives.components.CapTagList.Cancel": "Cancel",
8515
8515
  "creatives.components.CapTagList.Ok": "Ok",
@@ -87,8 +87,8 @@ exports[`line wrapper test/> should render line component new 1`] = `
87
87
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
88
88
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
89
89
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
90
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
91
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
90
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
91
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
92
92
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
93
93
  "creatives.components.CapTagList.Cancel": "Cancel",
94
94
  "creatives.components.CapTagList.Ok": "Ok",
@@ -15138,8 +15138,8 @@ exports[`line wrapper test/> should render line component old 1`] = `
15138
15138
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
15139
15139
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
15140
15140
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
15141
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
15142
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
15141
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
15142
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
15143
15143
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
15144
15144
  "creatives.components.CapTagList.Cancel": "Cancel",
15145
15145
  "creatives.components.CapTagList.Ok": "Ok",
@@ -87,8 +87,8 @@ exports[`line wrapper test/> should render create mode 1`] = `
87
87
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
88
88
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
89
89
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
90
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
91
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
90
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
91
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
92
92
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
93
93
  "creatives.components.CapTagList.Cancel": "Cancel",
94
94
  "creatives.components.CapTagList.Ok": "Ok",
@@ -10741,8 +10741,8 @@ new message content.",
10741
10741
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
10742
10742
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
10743
10743
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
10744
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
10745
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
10744
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
10745
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
10746
10746
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
10747
10747
  "creatives.components.CapTagList.Cancel": "Cancel",
10748
10748
  "creatives.components.CapTagList.Ok": "Ok",
@@ -13287,8 +13287,8 @@ new message content.",
13287
13287
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
13288
13288
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
13289
13289
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
13290
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
13291
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
13290
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
13291
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
13292
13292
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
13293
13293
  "creatives.components.CapTagList.Cancel": "Cancel",
13294
13294
  "creatives.components.CapTagList.Ok": "Ok",
@@ -16306,8 +16306,8 @@ new message content.",
16306
16306
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
16307
16307
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
16308
16308
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
16309
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
16310
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
16309
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
16310
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
16311
16311
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
16312
16312
  "creatives.components.CapTagList.Cancel": "Cancel",
16313
16313
  "creatives.components.CapTagList.Ok": "Ok",
@@ -18720,8 +18720,8 @@ exports[`line wrapper test/> should render create mode 2`] = `
18720
18720
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
18721
18721
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
18722
18722
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
18723
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
18724
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
18723
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
18724
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
18725
18725
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
18726
18726
  "creatives.components.CapTagList.Cancel": "Cancel",
18727
18727
  "creatives.components.CapTagList.Ok": "Ok",
@@ -33790,8 +33790,8 @@ new message content.",
33790
33790
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
33791
33791
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
33792
33792
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
33793
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
33794
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
33793
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
33794
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
33795
33795
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
33796
33796
  "creatives.components.CapTagList.Cancel": "Cancel",
33797
33797
  "creatives.components.CapTagList.Ok": "Ok",
@@ -36528,8 +36528,8 @@ new message content.",
36528
36528
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
36529
36529
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
36530
36530
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
36531
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
36532
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
36531
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
36532
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
36533
36533
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
36534
36534
  "creatives.components.CapTagList.Cancel": "Cancel",
36535
36535
  "creatives.components.CapTagList.Ok": "Ok",
@@ -39823,8 +39823,8 @@ new message content.",
39823
39823
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
39824
39824
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
39825
39825
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
39826
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
39827
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
39826
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
39827
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
39828
39828
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
39829
39829
  "creatives.components.CapTagList.Cancel": "Cancel",
39830
39830
  "creatives.components.CapTagList.Ok": "Ok",
@@ -42561,8 +42561,8 @@ new message content.",
42561
42561
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
42562
42562
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
42563
42563
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
42564
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
42565
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
42564
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
42565
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
42566
42566
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
42567
42567
  "creatives.components.CapTagList.Cancel": "Cancel",
42568
42568
  "creatives.components.CapTagList.Ok": "Ok",
@@ -46410,8 +46410,8 @@ new message content.",
46410
46410
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
46411
46411
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
46412
46412
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
46413
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
46414
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
46413
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
46414
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
46415
46415
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
46416
46416
  "creatives.components.CapTagList.Cancel": "Cancel",
46417
46417
  "creatives.components.CapTagList.Ok": "Ok",
@@ -49291,8 +49291,8 @@ new message content.",
49291
49291
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
49292
49292
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
49293
49293
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
49294
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
49295
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
49294
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
49295
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
49296
49296
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
49297
49297
  "creatives.components.CapTagList.Cancel": "Cancel",
49298
49298
  "creatives.components.CapTagList.Ok": "Ok",
@@ -52190,8 +52190,8 @@ new message content.",
52190
52190
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
52191
52191
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
52192
52192
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
52193
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
52194
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
52193
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
52194
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
52195
52195
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
52196
52196
  "creatives.components.CapTagList.Cancel": "Cancel",
52197
52197
  "creatives.components.CapTagList.Ok": "Ok",
@@ -55523,8 +55523,8 @@ new message content.",
55523
55523
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
55524
55524
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
55525
55525
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
55526
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
55527
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
55526
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
55527
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
55528
55528
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
55529
55529
  "creatives.components.CapTagList.Cancel": "Cancel",
55530
55530
  "creatives.components.CapTagList.Ok": "Ok",
@@ -61706,8 +61706,8 @@ new message content.",
61706
61706
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
61707
61707
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
61708
61708
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
61709
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
61710
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
61709
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
61710
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
61711
61711
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
61712
61712
  "creatives.components.CapTagList.Cancel": "Cancel",
61713
61713
  "creatives.components.CapTagList.Ok": "Ok",
@@ -64448,8 +64448,8 @@ new message content.",
64448
64448
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
64449
64449
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
64450
64450
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
64451
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
64452
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
64451
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
64452
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
64453
64453
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
64454
64454
  "creatives.components.CapTagList.Cancel": "Cancel",
64455
64455
  "creatives.components.CapTagList.Ok": "Ok",
@@ -67036,8 +67036,8 @@ new message content.",
67036
67036
  "app.v2containers.SmsTrai.Edit.traiEditTitle": "Message",
67037
67037
  "app.v2containers.SmsTrai.Edit.unicodeLabel": "Allow unicode characters",
67038
67038
  "app.v2containers.SmsTrai.Edit.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
67039
- "creatives.components.AccessForbidden.forbiddenDesc": "Please contact your organisation administrator to request access.",
67040
- "creatives.components.AccessForbidden.forbiddenHeader": "You don't have permission to view this page.",
67039
+ "creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
67040
+ "creatives.components.AccessForbidden.forbiddenHeader": "Access Denied",
67041
67041
  "creatives.components.BreadCrumbs.header": "This is the BreadCrumbs component !",
67042
67042
  "creatives.components.CapTagList.Cancel": "Cancel",
67043
67043
  "creatives.components.CapTagList.Ok": "Ok",