@capillarytech/creatives-library 3.1.0 → 3.1.2

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "3.1.0",
4
+ "version": "3.1.2",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",
@@ -13,6 +13,7 @@ import _ from 'lodash';
13
13
  import { Tabs, Table, Modal} from 'antd';
14
14
  import { CapButton, CapInput, CapPopover, CapCheckbox, CapRadio, CapSelect, CapTable, CapRow, CapColumn, CapNotification, CapUploader, CapHeading, CapIcon} from '@capillarytech/cap-ui-library';
15
15
  import LabelHOC from '@capillarytech/cap-ui-library/assets/HOCs/ComponentWithLabelHOC';
16
+ import { FormattedMessage } from 'react-intl';
16
17
  import TemplatePreview from '../TemplatePreview';
17
18
  import TagList from '../../v2Containers/TagList';
18
19
  import SlideBox from '../SlideBox';
@@ -20,6 +21,7 @@ import CardGrid from '../CardGrid';
20
21
  import CKEditor from "../Ckeditor/";
21
22
  import EDMEditor from "../Edmeditor";
22
23
  import CustomPopOver from '../CustomPopOver';
24
+ import messages from './messages';
23
25
  import './_formBuilder.scss';
24
26
  import {updateCharCount, checkUnicode} from "../../utils/smsCharCountV2";
25
27
  import {SMS} from '../../v2Containers/CreativesContainer/constants';
@@ -29,8 +31,6 @@ const {TextArea} = CapInput;
29
31
  const {CapRadioGroup} = CapRadio;
30
32
  // import styled from 'styled-components';
31
33
 
32
- // import { FormattedMessage } from 'react-intl';
33
- // import messages from './messages';
34
34
  const isUrl = (str) => {
35
35
  // eslint-disable-next-line no-useless-escape
36
36
  const res = str.match(/(http(s)?:\/\/.)(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g);
@@ -2742,15 +2742,13 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
2742
2742
  </CapColumn>
2743
2743
  );
2744
2744
  break;
2745
-
2746
2745
  case 'capUpload':
2747
2746
  columns.push(
2748
2747
  <CapUploader
2749
2748
  customRequest={(data) => this.capUploaderCustomRequest(data, val)}
2750
2749
  >
2751
2750
  <CapButton>
2752
- {"Upload"}
2753
- {' '}
2751
+ <FormattedMessage {...messages.upload} />
2754
2752
  </CapButton>
2755
2753
  </CapUploader>
2756
2754
  );
@@ -2763,10 +2761,14 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
2763
2761
  {...val.componentProps}
2764
2762
  className="form-builder-dragger"
2765
2763
  >
2766
- <CapHeading className="dragger-title" type="h7">Drag and drop image here</CapHeading>
2767
- <CapHeading className="dragger-or" type="label6">OR</CapHeading>
2764
+ <CapHeading className="dragger-title" type="h7">
2765
+ <FormattedMessage {...messages.dragAndDrop} />
2766
+ </CapHeading>
2767
+ <CapHeading className="dragger-or" type="label6">
2768
+ <FormattedMessage {...messages.or} />
2769
+ </CapHeading>
2768
2770
  <CapButton className="dragger-button" type="secondary">
2769
- Select a file from your computer
2771
+ <FormattedMessage {...messages.selectAFile} />
2770
2772
  </CapButton>
2771
2773
  </CapUploader.CapDragger>
2772
2774
  );
@@ -10,4 +10,52 @@ export default defineMessages({
10
10
  id: 'app.components.FormBuilder.header',
11
11
  defaultMessage: 'This is the FormBuilder component !',
12
12
  },
13
+ cancel: {
14
+ id: 'app.componentsv2.FormBuilder.cancel',
15
+ defaultMessage: 'Cancel',
16
+ },
17
+ yes: {
18
+ id: 'app.componentsv2.FormBuilder.header',
19
+ defaultMessage: 'Yes',
20
+ },
21
+ ok: {
22
+ id: 'app.componentsv2.FormBuilder.ok',
23
+ defaultMessage: 'Ok',
24
+ },
25
+ contentNotValidLanguage: {
26
+ id: 'app.componentsv2.FormBuilder.contentNotValidLanguage',
27
+ defaultMessage: 'Content is not valid for language:',
28
+ },
29
+ missingTags: {
30
+ id: 'app.componentsv2.FormBuilder.missingTags',
31
+ defaultMessage: 'Missing tags are:',
32
+ },
33
+ unsupportedTags: {
34
+ id: 'app.componentsv2.FormBuilder.unsupportedTags',
35
+ defaultMessage: 'Unsupported tags are:',
36
+ },
37
+ upload: {
38
+ id: 'app.componentsv2.FormBuilder.upload',
39
+ defaultMessage: 'Upload',
40
+ },
41
+ dragAndDrop: {
42
+ id: 'app.componentsv2.FormBuilder.dragAndDrop',
43
+ defaultMessage: 'Drag and drop image here',
44
+ },
45
+ or: {
46
+ id: 'app.componentsv2.FormBuilder.or',
47
+ defaultMessage: 'OR',
48
+ },
49
+ selectAFile: {
50
+ id: 'app.componentsv2.FormBuilder.selectAFile',
51
+ defaultMessage: 'Select a file from your computer',
52
+ },
53
+ layoutSelection: {
54
+ id: 'app.componentsv2.FormBuilder.layoutSelection',
55
+ defaultMessage: 'Layout Selection',
56
+ },
57
+ loadingEDMTemplates: {
58
+ id: 'app.componentsv2.FormBuilder.loadingEDMTemplates',
59
+ defaultMessage: 'Loading EDM Templates',
60
+ },
13
61
  });
@@ -0,0 +1,67 @@
1
+ import { defineMessages } from 'react-intl';
2
+ export default defineMessages({
3
+ "sms": {
4
+ id: 'reon.componentsv2.Cap.sms',
5
+ defaultMessage: 'SMS',
6
+ },
7
+ "wechat": {
8
+ id: 'reon.componentsv2.Cap.wechat',
9
+ defaultMessage: 'WeChat',
10
+ },
11
+ "gallery": {
12
+ id: 'reon.componentsv2.Cap.gallery',
13
+ defaultMessage: 'Gallery',
14
+ },
15
+ "creativesDashboard": {
16
+ id: 'reon.componentsv2.Cap.creativesDashboard',
17
+ defaultMessage: 'Creatives',
18
+ },
19
+ "creatives": {
20
+ id: 'reon.componentsv2.Cap.creatives',
21
+ defaultMessage: 'Creatives',
22
+ },
23
+ "campaigns": {
24
+ id: 'reon.componentsv2.Cap.campaigns',
25
+ defaultMessage: 'Campaigns',
26
+ },
27
+ "loyalty": {
28
+ id: 'reon.componentsv2.Cap.loyalty',
29
+ defaultMessage: 'Loyalty',
30
+ },
31
+ "member care": {
32
+ id: 'reon.componentsv2.Cap.memberCare',
33
+ defaultMessage: 'Member Care',
34
+ },
35
+ "workbench": {
36
+ id: 'reon.componentsv2.Cap.Workbench',
37
+ defaultMessage: 'WorkBench',
38
+ },
39
+ "store care": {
40
+ id: 'reon.componentsv2.Cap.storeCare',
41
+ defaultMessage: 'Store Care',
42
+ },
43
+ "store performance": {
44
+ id: 'reon.componentsv2.Cap.storePerformance',
45
+ defaultMessage: 'Store Performance',
46
+ },
47
+ "email": {
48
+ id: 'reon.componentsv2.Cap.email',
49
+ defaultMessage: 'Email',
50
+ },
51
+ "ebill": {
52
+ id: 'reon.componentsv2.Cap.ebill',
53
+ defaultMessage: 'Ebill',
54
+ },
55
+ "campaignsDashboard": {
56
+ id: 'reon.componentsv2.campaignsDashboard',
57
+ defaultMessage: 'Campaigns',
58
+ },
59
+ "campaignsHome": {
60
+ id: 'reon.componentsv2.campaignsHome',
61
+ defaultMessage: "Campaigns Home",
62
+ },
63
+ "appName": {
64
+ id: 'reon.componentsv2.appName',
65
+ defaultMessage: "App Name",
66
+ },
67
+ });
@@ -55,7 +55,7 @@ function SlideBoxHeader(props) {
55
55
  }
56
56
  />
57
57
  )}
58
- {!showTemplateNameHeader && slidBoxContent === 'createTemplate' && ( templateStep === 'modeSelection' || templateStep === "createTemplateContent" ) && (
58
+ {!showTemplateNameHeader && slidBoxContent === 'createTemplate' && ( templateStep === 'modeSelection' || (templateStep === "createTemplateContent" && weChatTemplateType !== MAP_TEMPLATE) ) && (
59
59
  <CapHeader
60
60
  title={<FormattedMessage {...messages.createMessageContent} values={{channel: getChannelLabel(channel)}}/>}
61
61
  prefix={!isFullMode && showPrefix &&
@@ -73,10 +73,10 @@ function SlideBoxHeader(props) {
73
73
  className="wechat-steps"
74
74
  >
75
75
  <CapSteps.CapStep
76
- title={<CapLabel type="label8">Select template</CapLabel>}
76
+ title={<CapLabel type="label8"><FormattedMessage {...messages.selectTemplate} /></CapLabel>}
77
77
  />
78
78
  <CapSteps.CapStep
79
- title={<CapLabel type="label8">Add content</CapLabel>}
79
+ title={<CapLabel type="label8"><FormattedMessage {...messages.addContent} /></CapLabel>}
80
80
  disabled
81
81
  />
82
82
  </CapSteps>
@@ -294,4 +294,12 @@ export default defineMessages({
294
294
  id: `${scope}.wechatAccountNotConfigured`,
295
295
  defaultMessage: 'Selected wechat account is not configured to create wechat templates',
296
296
  },
297
+ "selectTemplate": {
298
+ id: `${scope}.selectTemplate`,
299
+ defaultMessage: 'Select template',
300
+ },
301
+ "addContent": {
302
+ id: `${scope}.addContent`,
303
+ defaultMessage: 'Add content',
304
+ },
297
305
  });
@@ -1,21 +1,23 @@
1
- .mobile-push-row{
2
- margin-bottom: 16px;
3
- }
4
- .image-container{
5
- border: solid 1px #C2C2C2;
6
- border-radius: 5px;
7
- .image-placeholder{
8
- line-height: 150px;
1
+ .line-edit {
2
+ .mobile-push-row{
3
+ margin-bottom: 16px;
4
+ }
5
+ .image-container{
6
+ border: solid 1px #C2C2C2;
7
+ border-radius: 5px;
8
+ .image-placeholder{
9
+ line-height: 150px;
10
+ }
11
+ }
12
+ .ant-tabs-bar{
13
+ margin-bottom: 0 !important;
14
+ display: flex;
15
+ align-items: center;
16
+ flex-direction: row-reverse;
17
+ justify-content: flex-end;
18
+ }
19
+ .ant-tabs-tabpane{
20
+ padding: 16px 16px 16px 0;
21
+ border: solid 1px #D6D6D6;
9
22
  }
10
- }
11
- .ant-tabs-bar{
12
- margin-bottom: 0 !important;
13
- display: flex;
14
- align-items: center;
15
- flex-direction: row-reverse;
16
- justify-content: flex-end;
17
- }
18
- .ant-tabs-tabpane{
19
- padding: 16px 16px 16px 0;
20
- border: solid 1px #D6D6D6;
21
23
  }
@@ -961,7 +961,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
961
961
  tags = this.props.supportedTags;
962
962
  }
963
963
  return (
964
- <div>
964
+ <div className="line-edit">
965
965
  <Spin spinning={spinning}>
966
966
  {<Row style={{marginBottom: '16px', marginLeft: '-40px'}}>
967
967
  <Col offset={1}>
@@ -1650,10 +1650,16 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1650
1650
  />}
1651
1651
  {
1652
1652
  channel.toUpperCase() === WECHAT && <CapRadio.CapRadioGroup className="wechat-filters" defaultValue={wechatFilter} onChange={this.setWechatFilter}>
1653
- <CapRadio.Button value={WECHAT_FILTERS.ALL}><CapLabel type="label2">All</CapLabel></CapRadio.Button>
1654
- <CapRadio.Button value={WECHAT_FILTERS.MAPTEMPLATES}><CapLabel type="label2">Map templates</CapLabel></CapRadio.Button>
1655
- <CapRadio.Button value={WECHAT_FILTERS.RICHMEDIA}><CapLabel type="label2">Rich media templates</CapLabel></CapRadio.Button>
1656
- </CapRadio.CapRadioGroup>
1653
+ <CapRadio.Button value={WECHAT_FILTERS.ALL}><CapLabel type="label2">
1654
+ <FormattedMessage {...messages.all} />
1655
+ </CapLabel></CapRadio.Button>
1656
+ <CapRadio.Button value={WECHAT_FILTERS.MAPTEMPLATES}><CapLabel type="label2">
1657
+ <FormattedMessage {...messages.mapTemplates} />
1658
+ </CapLabel></CapRadio.Button>
1659
+ <CapRadio.Button value={WECHAT_FILTERS.RICHMEDIA}><CapLabel type="label2">
1660
+ <FormattedMessage {...messages.richMediaTemplates} />
1661
+ </CapLabel></CapRadio.Button>
1662
+ </CapRadio.CapRadioGroup>
1657
1663
  }
1658
1664
  <div style={{display: "flex", justifyContent: "space-between", alignItems: 'center'}}>
1659
1665
  {isfilterContentVisisble && <CapButton
@@ -326,4 +326,16 @@ export default defineMessages({
326
326
  id: `${scope}.mobilepushAccount`,
327
327
  defaultMessage: 'Mobilepush account',
328
328
  },
329
+ "all": {
330
+ id: `${scope}.all`,
331
+ defaultMessage: 'All',
332
+ },
333
+ "mapTemplates": {
334
+ id: `${scope}.mapTemplates`,
335
+ defaultMessage: 'Map templates',
336
+ },
337
+ "richMediaTemplates": {
338
+ id: `${scope}.richMediaTemplates`,
339
+ defaultMessage: 'Rich media templates',
340
+ },
329
341
  });
@@ -33,11 +33,11 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
33
33
  super(props);
34
34
  const defaultChannel = get(this, 'props.channel') || get(this, 'props.params.channel') || 'sms';
35
35
  const defaultPanes = {
36
- sms: {content: <div></div>, tab: 'SMS', key: 'sms'},
37
- email: {content: <div></div>, tab: 'Email', key: 'email'},
38
- weChat: {content: <div></div>, tab: 'Wechat', key: 'wechat'},
36
+ sms: {content: <div></div>, tab: props.intl.formatMessage(messages.sms), key: 'sms'},
37
+ email: {content: <div></div>, tab: props.intl.formatMessage(messages.email), key: 'email'},
38
+ weChat: {content: <div></div>, tab: props.intl.formatMessage(messages.wechat), key: 'wechat'},
39
39
  //'wechat': {content: this.getTemplatesComponent('wechat'), tab: 'Wechat', key: 'wechat'},
40
- mPush: {content: <div></div>, tab: 'Push notification', key: 'mobilepush'},
40
+ mPush: {content: <div></div>, tab: props.intl.formatMessage(messages.pushNotification), key: 'mobilepush'},
41
41
  };
42
42
  const channelsToHide = this.props.channelsToHide || [];
43
43
 
@@ -48,9 +48,9 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
48
48
  }, []);
49
49
 
50
50
  if (props.isFullMode ) {
51
- filteredPanes.push({content: <div></div>, tab: 'Gallery', key: 'assets'});
51
+ filteredPanes.push({content: <div></div>, tab: props.intl.formatMessage(messages.gallery), key: 'assets'});
52
52
  } else if (!channelsToHide.includes('callTask')) {
53
- filteredPanes.push({content: <div></div>, tab: 'Call Task', key: 'call_task'});
53
+ filteredPanes.push({content: <div></div>, tab: props.intl.formatMessage(messages.callTask), key: 'call_task'});
54
54
  }
55
55
 
56
56
  const panes = this.setChannelContent(defaultChannel, filteredPanes);
@@ -26,4 +26,28 @@ export default defineMessages({
26
26
  id: 'app.containers.TemplatesV2.creativesDesc',
27
27
  defaultMessage: 'These are pre-built templates which you could use to customize your message content.',
28
28
  },
29
+ sms: {
30
+ id: 'app.containersv2.TemplatesV2.sms',
31
+ defaultMessage: 'SMS',
32
+ },
33
+ email: {
34
+ id: 'app.containersv2.TemplatesV2.email',
35
+ defaultMessage: 'Email',
36
+ },
37
+ pushNotification: {
38
+ id: 'app.containersv2.TemplatesV2.pushNotification',
39
+ defaultMessage: 'Push notification',
40
+ },
41
+ callTask: {
42
+ id: 'app.containersv2.TemplatesV2.callTask',
43
+ defaultMessage: 'Call Task',
44
+ },
45
+ gallery: {
46
+ id: 'app.containersv2.TemplatesV2.gallery',
47
+ defaultMessage: 'Gallery',
48
+ },
49
+ wechat: {
50
+ id: 'app.containersv2.TemplatesV2.wechat',
51
+ defaultMessage: 'Wechat',
52
+ },
29
53
  });
@@ -553,7 +553,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
553
553
  cols: [{
554
554
  width: 23,
555
555
  id: `tagList-${title}`,
556
- label: "Tags",
556
+ label: this.props.intl.formatMessage(messages.Tags),
557
557
  type: "tag-list", //Resembles component to be used
558
558
  metaType: "List",
559
559
  datatype: "select",
@@ -589,7 +589,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
589
589
  type: "input", //Resembles component to be used
590
590
  metaType: "text",
591
591
  datatype: "string",
592
- errorMessage: `${title} has invalid content.`,
592
+ errorMessage: `${title} ${this.props.intl.formatMessage(messages.hasInvalidContent)}`,
593
593
  required: true,
594
594
  fluid: true,
595
595
  disabled: (this.props.location.query.type === 'embedded' && this.state.isEdit),
@@ -626,11 +626,11 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
626
626
  {
627
627
  id: 'template-link',
628
628
  placeholder: this.props.intl.formatMessage(messages.Link),
629
- label: 'Link',
629
+ label: this.props.intl.formatMessage(messages.Link),
630
630
  type: "input", //Resembles component to be used
631
631
  metaType: "text",
632
632
  datatype: "string",
633
- errorMessage: `Link cannot be empty.`,
633
+ errorMessage: this.props.intl.formatMessage(messages.linkErrorMessage),
634
634
  required: true,
635
635
  fluid: true,
636
636
  disabled: (this.props.location.query.type === 'embedded' && this.state.isEdit),
@@ -655,7 +655,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
655
655
  cols: [
656
656
  {
657
657
  id: "is-internal-url",
658
- label: 'Is this internal url',
658
+ label: this.props.intl.formatMessage(messages.isInternalUrl),
659
659
  standalone: true,
660
660
  labelStyle: {
661
661
  backgroundColor: "white",
@@ -70,6 +70,22 @@ export default defineMessages({
70
70
  id: 'app.containers.WeChat.somethingWentWrong',
71
71
  defaultMessage: "Something went wrong!!",
72
72
  },
73
+ "alertMessage": {
74
+ id: 'app.containersv2.WeChat.alertMessage',
75
+ defaultMessage: "Alert",
76
+ },
77
+ "goBackTemporaryChangesLost": {
78
+ id: 'app.containersv2.WeChat.goBackTemporaryChangesLost',
79
+ defaultMessage: "Do you really want to go back? All your temporary changes will be lost!",
80
+ },
81
+ "hasValidContent": {
82
+ id: 'app.containersv2.WeChat.hasValidContent',
83
+ defaultMessage: "has valid content.",
84
+ },
85
+ "linkCantEmpty": {
86
+ id: 'app.containersv2.WeChat.linkCantEmpty',
87
+ defaultMessage: "has valid content.",
88
+ },
73
89
  "select": {
74
90
  id: 'app.containers.WeChat.select',
75
91
  defaultMessage: 'Select',
@@ -78,4 +94,12 @@ export default defineMessages({
78
94
  id: 'app.containers.WeChat.newWechat',
79
95
  defaultMessage: 'New wechat',
80
96
  },
97
+ "linkErrorMessage": {
98
+ id: 'app.containers.WeChat.linkErrorMessage',
99
+ defaultMessage: 'Link cannot be empty.',
100
+ },
101
+ "hasInvalidContent": {
102
+ id: 'app.containers.WeChat.hasInvalidContent',
103
+ defaultMessage: 'has invalid content.',
104
+ },
81
105
  });
@@ -278,6 +278,12 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
278
278
  if (temp.placeholder && messages[temp.placeholder]) {
279
279
  temp.placeholder = this.props.intl.formatMessage(messages[temp.placeholder]);
280
280
  }
281
+ // if (temp.value && messages[temp.value] && temp.metaType === 'label') {
282
+ // temp.value = this.props.intl.formatMessage(messages[temp.value]);
283
+ // }
284
+ // if (temp.inductiveText && messages[temp.inductiveText]) {
285
+ // temp.inductiveText = this.props.intl.formatMessage(messages[temp.inductiveText]);
286
+ // }
281
287
  if (temp.options) {
282
288
  forEach(temp.options, (option, id) => {
283
289
  if (messages[option]) {
@@ -1,8 +1,8 @@
1
1
  /*
2
- * Create Messages
3
- *
4
- * This contains all the text for the Create component.
5
- */
2
+ * Create Messages
3
+ *
4
+ * This contains all the text for the Create component.
5
+ */
6
6
  import { defineMessages } from 'react-intl';
7
7
 
8
8
  export default defineMessages({
@@ -82,9 +82,9 @@ export default defineMessages({
82
82
  id: 'app.containers.Create.addNewRichmedia',
83
83
  defaultMessage: 'Add richmedia content',
84
84
  },
85
- 'Title*': {
86
- id: 'app.containers.Create.Title*',
87
- defaultMessage: 'Title*',
85
+ 'Title': {
86
+ id: 'app.containersv2.Create.Title',
87
+ defaultMessage: 'Title',
88
88
  },
89
89
  'Please input title': {
90
90
  id: 'app.containers.Create.Please_input_title',
@@ -98,9 +98,9 @@ export default defineMessages({
98
98
  id: 'app.containers.Create.Please_input_author',
99
99
  defaultMessage: 'Please input author',
100
100
  },
101
- 'Cover image*': {
102
- id: 'app.containers.Create.Cover_image*',
103
- defaultMessage: 'Cover image*',
101
+ 'Cover image': {
102
+ id: 'app.containersv2.Create.Cover_image',
103
+ defaultMessage: 'Cover image',
104
104
  },
105
105
  'Cover abstract': {
106
106
  id: 'app.containers.Create.Cover_abstract',
@@ -110,9 +110,9 @@ export default defineMessages({
110
110
  id: 'app.containers.Create.Please_input_cover_abstract',
111
111
  defaultMessage: 'Please input cover abstract',
112
112
  },
113
- 'Content*': {
114
- id: 'app.containers.Create.Content*',
115
- defaultMessage: 'Content*',
113
+ 'Content': {
114
+ id: 'app.containersv2.Create.Content',
115
+ defaultMessage: 'Content',
116
116
  },
117
117
  'Please input content': {
118
118
  id: 'app.containers.Create.Please_input_content',
@@ -138,4 +138,56 @@ export default defineMessages({
138
138
  id: 'app.containers.Create.Only_followers',
139
139
  defaultMessage: 'Only followers',
140
140
  },
141
+ 'visibility': {
142
+ id: 'app.containersv2.Create.visibility',
143
+ defaultMessage: 'visibility',
144
+ },
145
+ 'delete': {
146
+ id: 'app.containersv2.Create.delete',
147
+ defaultMessage: 'delete',
148
+ },
149
+ 'This field is required!': {
150
+ id: 'app.containersv2.Create.requiredField',
151
+ defaultMessage: 'This field is required!',
152
+ },
153
+ "Write a brief headline to draw customer's attention": {
154
+ id: 'app.containersv2.Create.titleInductiveText',
155
+ defaultMessage: "Write a brief headline to draw customer's attention",
156
+ },
157
+ "Brand/name that your customer will recognise": {
158
+ id: 'app.containersv2.Create.authorInductiveText',
159
+ defaultMessage: "Brand/name that your customer will recognise",
160
+ },
161
+ 'Resolution 360 x 200': {
162
+ id: 'app.containersv2.Create.resolutionText',
163
+ defaultMessage: 'Resolution 360 x 200',
164
+ },
165
+ 'The relevant image that complements title.': {
166
+ id: 'app.containersv2.Create.coverImageTitle',
167
+ defaultMessage: 'The relevant image that complements title.',
168
+ },
169
+ 'Upload Image': {
170
+ id: 'app.containersv2.Create.uploadImage',
171
+ defaultMessage: 'Upload Image',
172
+ },
173
+ 'A short description help customers learn more': {
174
+ id: 'app.containersv2.Create.coverAbstractInductive',
175
+ defaultMessage: 'A short description help customers learn more',
176
+ },
177
+ 'Article content': {
178
+ id: 'app.containersv2.Create.articleContent',
179
+ defaultMessage: 'Article content',
180
+ },
181
+ 'Insert Image': {
182
+ id: 'app.containersv2.Create.insertImage',
183
+ defaultMessage: 'Insert Image',
184
+ },
185
+ 'Read more link': {
186
+ id: 'app.containersv2.Create.readMoreLink',
187
+ defaultMessage: 'Read more link',
188
+ },
189
+ 'Link to help customers discover more about the brand.': {
190
+ id: 'app.containersv2.Create.linkInductiveText',
191
+ defaultMessage: 'Link to help customers discover more about the brand.',
192
+ },
141
193
  });