@capillarytech/creatives-library 7.8.0 → 7.9.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.
- package/app.js +5 -1
- package/components/FormBuilder/index.js +2 -2
- package/containers/Email/index.js +8 -3
- package/containers/MobilePush/Create/index.js +2 -2
- package/containers/MobilePush/Edit/index.js +2 -2
- package/containers/WeChat/MapTemplates/index.js +15 -3
- package/package.json +1 -1
- package/services/api.js +20 -5
- package/translations/en.json +113 -2
- package/translations/zh.json +112 -1
- package/utils/gtmTrackers/gtmEvents/creativeDetails.js +6 -2
- package/utils/gtmTrackers/index.js +8 -4
- package/v2Components/CapImageUpload/index.js +14 -8
- package/v2Components/FormBuilder/index.js +10 -1
- package/v2Components/NavigationBar/index.js +63 -29
- package/v2Components/NavigationBar/messages.js +5 -0
- package/v2Components/TemplatePreview/assets/images/mobile.svg +24 -0
- package/v2Containers/App/constants.js +23 -3
- package/v2Containers/Cap/actions.js +2 -2
- package/v2Containers/Cap/constants.js +3 -2
- package/v2Containers/Cap/index.js +31 -18
- package/v2Containers/Cap/messages.js +8 -0
- package/v2Containers/Cap/sagas.js +18 -6
- package/v2Containers/CapFacebookPreview/constants.js +4 -0
- package/v2Containers/CapFacebookPreview/index.js +92 -67
- package/v2Containers/CapFacebookPreview/reducer.js +19 -10
- package/v2Containers/CreativesContainer/SlideBoxContent.js +2 -0
- package/v2Containers/CreativesContainer/index.js +80 -2
- package/v2Containers/Facebook/Advertisement/index.js +2 -2
- package/v2Containers/Facebook/Advertisement/index.scss +1 -1
- package/v2Containers/Facebook/index.js +15 -4
- package/v2Containers/Line/Container/Drawer/index.js +1 -1
- package/v2Containers/Line/Create/_lineCreate.scss +64 -0
- package/v2Containers/Line/Create/actions.js +94 -0
- package/v2Containers/Line/Create/constants.js +43 -0
- package/v2Containers/Line/Create/index.js +1132 -0
- package/v2Containers/Line/Create/initialSchema.js +378 -0
- package/v2Containers/Line/Create/messages.js +229 -0
- package/v2Containers/Line/Create/reducer.js +99 -0
- package/v2Containers/Line/Create/sagas.js +113 -0
- package/v2Containers/Line/Create/selectors.js +30 -0
- package/v2Containers/Line/CreateWrapper/constants.js +2 -0
- package/v2Containers/Line/CreateWrapper/index.js +117 -0
- package/v2Containers/Line/CreateWrapper/messages.js +55 -0
- package/v2Containers/Line/Edit/_lineEdit.scss +23 -0
- package/v2Containers/Line/Edit/actions.js +79 -0
- package/v2Containers/Line/Edit/constants.js +27 -0
- package/v2Containers/Line/Edit/index.js +1051 -0
- package/v2Containers/Line/Edit/messages.js +173 -0
- package/v2Containers/Line/Edit/reducer.js +83 -0
- package/v2Containers/Line/Edit/sagas.js +81 -0
- package/v2Containers/Line/Edit/selectors.js +29 -0
- package/v2Containers/Line/Edit/tests/actions.test.js +18 -0
- package/v2Containers/Line/Edit/tests/index.test.js +10 -0
- package/v2Containers/Line/Edit/tests/reducer.test.js +9 -0
- package/v2Containers/Line/Edit/tests/sagas.test.js +15 -0
- package/v2Containers/Line/Edit/tests/selectors.test.js +10 -0
- package/v2Containers/MobilePush/Edit/index.js +2 -2
- package/v2Containers/MobilepushWrapper/index.js +1 -1
- package/v2Containers/Templates/_templates.scss +4 -2
- package/v2Containers/Templates/index.js +5 -2
- package/v2Containers/TemplatesV2/index.js +11 -3
- package/v2Containers/WeChat/MapTemplates/index.js +12 -2
package/app.js
CHANGED
|
@@ -102,7 +102,11 @@ export const BugsnagClient = Bugsnag;
|
|
|
102
102
|
const rootRoute = {
|
|
103
103
|
component: (props) => {
|
|
104
104
|
// eslint-disable-next-line react/prop-types
|
|
105
|
-
if (
|
|
105
|
+
if (
|
|
106
|
+
props.location.pathname === 'v2' ||
|
|
107
|
+
props.location.pathname === 'v2/' ||
|
|
108
|
+
props.location.pathname === 'v2/loyalty'
|
|
109
|
+
) {
|
|
106
110
|
return <CapV2 {...props} />;
|
|
107
111
|
}
|
|
108
112
|
return <Cap {...props} />;
|
|
@@ -214,7 +214,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
214
214
|
if (nextProps.isNewVersionFlow && !this.state.formData[this.state.currentTab - 1][this.state.formData[this.state.currentTab - 1].activeTab].tabKey) {
|
|
215
215
|
this.resetTabKeys(nextProps.formData, nextProps.tabCount, false, true);
|
|
216
216
|
}
|
|
217
|
-
if (type === 'embedded' || this.props
|
|
217
|
+
if (type === 'embedded' || (this.props?.schema?.channel || "").toUpperCase() === 'EMAIL') {
|
|
218
218
|
this.validateForm();
|
|
219
219
|
}
|
|
220
220
|
if ((this.props.schema && this.props.schema.channel && this.props.schema.channel.toUpperCase() === 'MOBILEPUSH')) {
|
|
@@ -2917,7 +2917,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
2917
2917
|
}
|
|
2918
2918
|
|
|
2919
2919
|
const currentLang = ((!_.isEmpty(this.state.formData) && !_.isEmpty(this.state.formData[`${this.state.currentTab - 1}`]) && !_.isEmpty(this.state.formData[`${this.state.currentTab - 1}`].selectedLanguages) && this.state.formData[`${this.state.currentTab - 1}`].selectedLanguages[langIndex]) ? this.state.formData[`${this.state.currentTab - 1}`].selectedLanguages[langIndex] : this.props.baseLanguage) || 'en';
|
|
2920
|
-
const content =
|
|
2920
|
+
const content = this.state?.formData?.[`${this.state.currentTab - 1}`]?.[currentLang]?.['template-content'] || "";
|
|
2921
2921
|
|
|
2922
2922
|
if (this.state.formData[`${this.state.currentTab - 1}`][currentLang].is_drag_drop) {
|
|
2923
2923
|
// content = "";
|
|
@@ -872,10 +872,15 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
872
872
|
const langIndex = formData[this.state.currentTab - 1].selectedLanguages.indexOf(langId);
|
|
873
873
|
|
|
874
874
|
const temp = (schema.containers || {})[this.state.currentTab - 1];
|
|
875
|
+
const isStyleExists= temp?.tabBarExtraContent?.sections?.[0]?.inputFields?.[0]?.cols?.[4]?.content?.sections?.[0]?.inputFields?.[2]?.cols?.[0]?.style;
|
|
875
876
|
if (baseLanguage === langId && (apiLangId === "undefined" || apiLangId === formData[this.state.currentTab - 1].activeTab)) {
|
|
876
|
-
|
|
877
|
+
if(isStyleExists){
|
|
878
|
+
temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: "none"};
|
|
879
|
+
}
|
|
877
880
|
} else if (apiLangId === "undefined" || apiLangId === formData[this.state.currentTab - 1].activeTab) {
|
|
878
|
-
|
|
881
|
+
if(isStyleExists){
|
|
882
|
+
temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: ""};
|
|
883
|
+
}
|
|
879
884
|
}
|
|
880
885
|
|
|
881
886
|
if (nextProps.Email.CmsSettings.isDragDrop) {
|
|
@@ -2717,7 +2722,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2717
2722
|
}
|
|
2718
2723
|
formData.base = _.cloneDeep(formData[0]);
|
|
2719
2724
|
|
|
2720
|
-
this.setState({formData, loading: false, injectedTags: data.tags, tabKey, isDragDrop: (data
|
|
2725
|
+
this.setState({formData, loading: false, injectedTags: data.tags, tabKey, isDragDrop: (data?.base?.is_drag_drop !== 0 )}, () => {
|
|
2721
2726
|
// this.setState({tabKey: ''});
|
|
2722
2727
|
_.forEach(formData[0].selectedLanguages, (language) => {
|
|
2723
2728
|
if (formData[0][language].is_drag_drop) {
|
|
@@ -517,13 +517,13 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
517
517
|
mode: this.props.params.mode,
|
|
518
518
|
};
|
|
519
519
|
const android = {};
|
|
520
|
-
Object.keys(formData[0]).forEach((data) => {
|
|
520
|
+
Object.keys((formData[0] || {})).forEach((data) => {
|
|
521
521
|
if (!!formData[0][data] && data !== "tabKey") {
|
|
522
522
|
android[data] = formData[0][data];
|
|
523
523
|
}
|
|
524
524
|
});
|
|
525
525
|
const ios = {};
|
|
526
|
-
Object.keys(formData[1]).forEach((data) => {
|
|
526
|
+
Object.keys((formData[1] || {})).forEach((data) => {
|
|
527
527
|
if (!!formData[1][data] && data !== "tabKey") {
|
|
528
528
|
ios[data] = formData[1][data];
|
|
529
529
|
}
|
|
@@ -558,7 +558,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
558
558
|
});
|
|
559
559
|
} else {
|
|
560
560
|
selectedAccount = accounts[0];
|
|
561
|
-
formData['mobilepush-accounts'] =
|
|
561
|
+
formData['mobilepush-accounts'] = selectedAccount?.id;
|
|
562
562
|
}
|
|
563
563
|
this.props.actions.setWeChatAccount(selectedAccount);
|
|
564
564
|
this.setState({formData, accountsOptions: accounts.map((acc) => ({key: acc.id, label: acc.name, value: acc.id}))});
|
|
@@ -573,7 +573,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
573
573
|
obj.type = 'MOBILEPUSH';
|
|
574
574
|
obj.name = formData['template-name'];
|
|
575
575
|
obj.definition = {
|
|
576
|
-
accountId: selectedWeChatAccount
|
|
576
|
+
accountId: selectedWeChatAccount?.id,
|
|
577
577
|
licenseCode: selectedWeChatAccount.sourceAccountIdentifier,
|
|
578
578
|
};
|
|
579
579
|
if (this.props.location.query && this.props.location.query.module !== 'dvs') {
|
|
@@ -611,7 +611,9 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
611
611
|
setSelectedTemplateData(weChatData) {
|
|
612
612
|
let schema = _.cloneDeep(this.state.baseSchema);
|
|
613
613
|
const { intl: {formatMessage}} = this.props;
|
|
614
|
-
schema
|
|
614
|
+
if(schema?.standalone?.sections?.[0]?.childSections?.[1]?.childSections?.[0]?.childSections?.[1]?.inputFields){
|
|
615
|
+
schema.standalone.sections[0].childSections[1].childSections[0].childSections[1].inputFields = []
|
|
616
|
+
};
|
|
615
617
|
if (_.isEmpty(weChatData)) {
|
|
616
618
|
// schema.standalone.sections[0].childSections[1].childSections[0].childSections[1].inputFields = [];
|
|
617
619
|
const formData=_.cloneDeep(this.state.formData);
|
|
@@ -778,7 +780,16 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
778
780
|
type: "radioGroup",
|
|
779
781
|
metaType: "text",
|
|
780
782
|
datatype: "string",
|
|
781
|
-
options: [
|
|
783
|
+
options: [
|
|
784
|
+
{
|
|
785
|
+
value: URL,
|
|
786
|
+
label: formatMessage(messages.redirectOptionURL)
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
value: MINI_PROGRAM,
|
|
790
|
+
label: formatMessage(messages.redirectOptionMiniProgram)
|
|
791
|
+
}
|
|
792
|
+
],
|
|
782
793
|
errorMessage: formatMessage(messages.redirectionOptionError),
|
|
783
794
|
required: true,
|
|
784
795
|
fluid: true,
|
|
@@ -869,7 +880,8 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
869
880
|
if (!_.isEmpty(weCrmAccounts)) {
|
|
870
881
|
_.forEach(weCrmAccounts, (account) => {
|
|
871
882
|
if (account.configs && account.configs.is_wecrm_enabled) {
|
|
872
|
-
schema
|
|
883
|
+
const options = schema?.standalone?.sections[0]?.childSections[1]?.childSections[0]?.childSections[0]?.inputFields[0]?.options;
|
|
884
|
+
options && options.push({
|
|
873
885
|
key: account.uuid,
|
|
874
886
|
label: account.name,
|
|
875
887
|
value: account.name,
|
package/package.json
CHANGED
package/services/api.js
CHANGED
|
@@ -32,6 +32,16 @@ function parseJSON(response) {
|
|
|
32
32
|
return response.json();
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
function getUrlWithQueryParams({url, queryParams}) {
|
|
36
|
+
let updatedUrl = url;
|
|
37
|
+
Object.entries(queryParams).forEach(([key, value]) => {
|
|
38
|
+
if (value !== undefined) {
|
|
39
|
+
updatedUrl += `${key}=${key === 'name' ? encodeURIComponent(value) : value}&`;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return updatedUrl;
|
|
43
|
+
};
|
|
44
|
+
|
|
35
45
|
// const loginUrl = (process.env.NODE_ENV === 'production') ?
|
|
36
46
|
// config.production.login_url : config.development.login_url;
|
|
37
47
|
|
|
@@ -250,20 +260,25 @@ export const getTemplateDetails = ({id, channel}) => {
|
|
|
250
260
|
return request(url, getAPICallObject('GET'));
|
|
251
261
|
};
|
|
252
262
|
|
|
253
|
-
export const getAllTemplates = ({channel, queryParams}) => {
|
|
254
|
-
const url =
|
|
263
|
+
export const getAllTemplates = ({channel, queryParams = {}}) => {
|
|
264
|
+
const url = getUrlWithQueryParams({
|
|
265
|
+
url: `${API_ENDPOINT}/templates/${channel}?`,
|
|
266
|
+
queryParams,
|
|
267
|
+
});
|
|
255
268
|
return request(url, getAPICallObject('GET'));
|
|
256
269
|
};
|
|
257
270
|
|
|
258
271
|
export const deleteTemplate = ({channel, id}) => {
|
|
259
|
-
|
|
260
272
|
const url = `${API_ENDPOINT}/templates/${id}/${channel}`;
|
|
261
273
|
return request(url, getAPICallObject('DELETE'));
|
|
262
274
|
//return API.deleteResource(url);
|
|
263
275
|
};
|
|
264
276
|
|
|
265
|
-
export const getAllAssets = ({assetType, queryParams}) => {
|
|
266
|
-
const url =
|
|
277
|
+
export const getAllAssets = ({assetType, queryParams = {}}) => {
|
|
278
|
+
const url = getUrlWithQueryParams({
|
|
279
|
+
url: `${API_ENDPOINT}/assets/${assetType}?`,
|
|
280
|
+
queryParams,
|
|
281
|
+
});
|
|
267
282
|
// const url = `https://nightly.capillary.in/arya/api/v1/creatives/assets/${assetType}?query=${JSON.stringify(queryParams)}`;
|
|
268
283
|
return API.get(url);
|
|
269
284
|
}
|
package/translations/en.json
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
+
"app.components.CapVideoUpload.dragAndDrop": "Drag and drop video here",
|
|
3
|
+
"app.components.CapVideoUpload.fileFormat": "Format: MP4",
|
|
4
|
+
"app.components.CapVideoUpload.imageReUpload": "Re upload",
|
|
5
|
+
"app.components.CapVideoUpload.or": "OR",
|
|
6
|
+
"app.components.CapVideoUpload.textMessageAddLabel": "How do you want to upload the image?",
|
|
7
|
+
"app.components.CapVideoUpload.textMessageCreateNew": "Create new",
|
|
8
|
+
"app.components.CapVideoUpload.textMessageORLabel": "OR",
|
|
9
|
+
"app.components.CapVideoUpload.textMessageSelectTemplate": "Select template",
|
|
10
|
+
"app.components.CapVideoUpload.uploadComputer": "Your computer",
|
|
11
|
+
"app.components.CapVideoUpload.videoIncorrectSize": "This file format/size is not supported.",
|
|
12
|
+
"app.components.CapVideoUpload.videoRatioDescription": "Video ratio: 9:16 to 16:9",
|
|
13
|
+
"app.components.CapVideoUpload.videoSizeDescription": "File size: Up to {size}",
|
|
2
14
|
"app.components.TemplatePreview.includesOptoutTag": "Includes optout tag",
|
|
3
15
|
"app.components.TemplatePreview.optoutCharactersTotal": "Includes optout tag ({optoutUrlLength} characters)",
|
|
4
16
|
"creatives.components.AccessForbidden.forbiddenDesc": "This page access has not been provided to you.",
|
|
@@ -90,6 +102,17 @@
|
|
|
90
102
|
"creatives.components.WechatRichmediaTemplatePreview.select": "Select",
|
|
91
103
|
"creatives.componentsV2.BreadCrumbs.header": "This is the BreadCrumbs component !",
|
|
92
104
|
"creatives.componentsV2.CallTaskPreview.header": "This is the CallTaskPreview component !",
|
|
105
|
+
"creatives.componentsV2.CapImageUpload.aspectRatio": "Aspect ratio: 1:1",
|
|
106
|
+
"creatives.componentsV2.CapImageUpload.dragAndDrop": "Drag and drop image here",
|
|
107
|
+
"creatives.componentsV2.CapImageUpload.format": "Format: JPG, PNG",
|
|
108
|
+
"creatives.componentsV2.CapImageUpload.imageDimenstionDescription": "Dimensions: {width}px x {height}px",
|
|
109
|
+
"creatives.componentsV2.CapImageUpload.imageGallery": "Gallery",
|
|
110
|
+
"creatives.componentsV2.CapImageUpload.imageIncorrectSize": "Please upload the image with correct type, size and dimension",
|
|
111
|
+
"creatives.componentsV2.CapImageUpload.imageReUpload": "Re upload",
|
|
112
|
+
"creatives.componentsV2.CapImageUpload.or": "OR",
|
|
113
|
+
"creatives.componentsV2.CapImageUpload.uploadComputer": "Your computer",
|
|
114
|
+
"creatives.componentsV2.CapImageUpload.uploadGallery": "Gallery",
|
|
115
|
+
"creatives.componentsV2.CapImageUpload.uploadImageDescription": "The relevant image that complements the message context.",
|
|
93
116
|
"creatives.componentsV2.CapTagList.Cancel": "Cancel",
|
|
94
117
|
"creatives.componentsV2.CapTagList.Ok": "Ok",
|
|
95
118
|
"creatives.componentsV2.CapTagList.all": "All",
|
|
@@ -153,6 +176,7 @@
|
|
|
153
176
|
"creatives.componentsV2.NavigationBar.logout": "Logout",
|
|
154
177
|
"creatives.componentsV2.NavigationBar.loyaltyProgram": "Loyalty+",
|
|
155
178
|
"creatives.componentsV2.NavigationBar.memberCare": "Member Care",
|
|
179
|
+
"creatives.componentsV2.NavigationBar.noProductSetting": "There are no product settings. Organisation settings are available under profile on the right.",
|
|
156
180
|
"creatives.componentsV2.NavigationBar.orgSettings": "Organisation settings",
|
|
157
181
|
"creatives.componentsV2.NavigationBar.selectedProductDefault": "Engage+",
|
|
158
182
|
"creatives.componentsV2.NavigationBar.storeCare": "Store Care",
|
|
@@ -807,6 +831,40 @@
|
|
|
807
831
|
"creatives.containersV2.Cap.storeCare": "Store Care",
|
|
808
832
|
"creatives.containersV2.Cap.storePerformance": "Store Performance",
|
|
809
833
|
"creatives.containersV2.Cap.wechat": "WeChat",
|
|
834
|
+
"creatives.containersV2.CapFacebookPreview.audienceNetworkInstreamVideo": "Audience network instream video",
|
|
835
|
+
"creatives.containersV2.CapFacebookPreview.audienceNetworkInstreamVideoMobile": "Audience network instream video mobile",
|
|
836
|
+
"creatives.containersV2.CapFacebookPreview.audienceNetworkOutstreamVideo": "Audience network outstream video",
|
|
837
|
+
"creatives.containersV2.CapFacebookPreview.audienceNetworkRewardedVideo": "Audience network rewarded video",
|
|
838
|
+
"creatives.containersV2.CapFacebookPreview.desktopFeedStandard": "Desktop feed standard",
|
|
839
|
+
"creatives.containersV2.CapFacebookPreview.facebookStoryMobile": "Facebook story mobile",
|
|
840
|
+
"creatives.containersV2.CapFacebookPreview.generatePreview": "Generate preview",
|
|
841
|
+
"creatives.containersV2.CapFacebookPreview.generatePreviewDisableToolTip": "Looks like either all the mandatory fields are not filled or there is no new change",
|
|
842
|
+
"creatives.containersV2.CapFacebookPreview.generatePreviewError": "Error in generating preview",
|
|
843
|
+
"creatives.containersV2.CapFacebookPreview.instagramExploreContextual": "Instagram explore contextual",
|
|
844
|
+
"creatives.containersV2.CapFacebookPreview.instagramExploreImmersive": "Instagram explore immersive",
|
|
845
|
+
"creatives.containersV2.CapFacebookPreview.instagramStandard": "Instagram standard",
|
|
846
|
+
"creatives.containersV2.CapFacebookPreview.instagramStory": "Instagram story",
|
|
847
|
+
"creatives.containersV2.CapFacebookPreview.instantArticleStandard": "Instant article standard",
|
|
848
|
+
"creatives.containersV2.CapFacebookPreview.instreamVideoDesktop": "Instream video desktop",
|
|
849
|
+
"creatives.containersV2.CapFacebookPreview.instreamVideoMobile": "Instream video mobile",
|
|
850
|
+
"creatives.containersV2.CapFacebookPreview.marketplaceDesktop": "Marketplace desktop",
|
|
851
|
+
"creatives.containersV2.CapFacebookPreview.marketplaceMobile": "Marketplace mobile",
|
|
852
|
+
"creatives.containersV2.CapFacebookPreview.messengerMobileInboxMedia": "Messenger mobile inbox media",
|
|
853
|
+
"creatives.containersV2.CapFacebookPreview.mobileBanner": "Mobile banner",
|
|
854
|
+
"creatives.containersV2.CapFacebookPreview.mobileFeedBasic": "Mobile feed basic",
|
|
855
|
+
"creatives.containersV2.CapFacebookPreview.mobileFeedStandard": "Mobile feed standard",
|
|
856
|
+
"creatives.containersV2.CapFacebookPreview.mobileFullwidth": "Mobile fullwidth",
|
|
857
|
+
"creatives.containersV2.CapFacebookPreview.mobileInterstitial": "Mobile interstitial",
|
|
858
|
+
"creatives.containersV2.CapFacebookPreview.mobileMediumRectangle": "Mobile medium rectangle",
|
|
859
|
+
"creatives.containersV2.CapFacebookPreview.mobileNative": "Mobile native",
|
|
860
|
+
"creatives.containersV2.CapFacebookPreview.previewAdDesc": "Please add Media, Primary text & Website link & click on “Generate preview” to view preview.",
|
|
861
|
+
"creatives.containersV2.CapFacebookPreview.previewBasedonAdPlacement": "Preview based on ad placement",
|
|
862
|
+
"creatives.containersV2.CapFacebookPreview.refreshPreview": "Refresh preview",
|
|
863
|
+
"creatives.containersV2.CapFacebookPreview.rightColumnStandard": "Right column standard",
|
|
864
|
+
"creatives.containersV2.CapFacebookPreview.suggestedVideoDesktop": "Suggested video desktop",
|
|
865
|
+
"creatives.containersV2.CapFacebookPreview.suggestedVideoMobile": "Suggested video mobile",
|
|
866
|
+
"creatives.containersV2.CapFacebookPreview.videoNotePreview": "Facebook may take time to upload the video. Please try Refreshing.",
|
|
867
|
+
"creatives.containersV2.CapFacebookPreview.watchFeedMobile": "Watch feed mobile",
|
|
810
868
|
"creatives.containersV2.ChannelTemplates.header": "This is ChannelTemplates container !",
|
|
811
869
|
"creatives.containersV2.Create.addLabel": "Add label",
|
|
812
870
|
"creatives.containersV2.Create.alertMessage": "Alert",
|
|
@@ -1059,11 +1117,53 @@
|
|
|
1059
1117
|
"creatives.containersV2.FTP.selectFtpServerDesc": "FTP not configured for this org. Please add FTP server",
|
|
1060
1118
|
"creatives.containersV2.FTP.selectTag": "Select tag",
|
|
1061
1119
|
"creatives.containersV2.FTP.unsupportedTagsValidationError": "Unsupported tags: {unsupportedTags}. Please remove them from this message.",
|
|
1120
|
+
"creatives.containersV2.Facebook.Advertisement.AdvertisementType": "How you would like your ad to look?",
|
|
1121
|
+
"creatives.containersV2.Facebook.Advertisement.addCard": "Add card",
|
|
1122
|
+
"creatives.containersV2.Facebook.Advertisement.callToAction": "Call to action",
|
|
1123
|
+
"creatives.containersV2.Facebook.Advertisement.callToActionMandatoryError": "call to action is mandatory for Video Media. Please select call to action",
|
|
1124
|
+
"creatives.containersV2.Facebook.Advertisement.carouselDesc": "Create an Ad with 2 or more scrollable images or videos",
|
|
1125
|
+
"creatives.containersV2.Facebook.Advertisement.carouselTitle": "Carousel",
|
|
1126
|
+
"creatives.containersV2.Facebook.Advertisement.clickButtonLabel": "Continue",
|
|
1127
|
+
"creatives.containersV2.Facebook.Advertisement.createNotification": "Facebook template created successfully",
|
|
1128
|
+
"creatives.containersV2.Facebook.Advertisement.creativeName": "Creative name",
|
|
1129
|
+
"creatives.containersV2.Facebook.Advertisement.creativesTemplatesEditName": "Edit name",
|
|
1130
|
+
"creatives.containersV2.Facebook.Advertisement.deleteTooltipLabel": "Delete",
|
|
1131
|
+
"creatives.containersV2.Facebook.Advertisement.displayLink": "Display link",
|
|
1132
|
+
"creatives.containersV2.Facebook.Advertisement.displayLinkPlaceHolder": "Enter the link that you want to show on your ad",
|
|
1133
|
+
"creatives.containersV2.Facebook.Advertisement.doneButtonLabel": "Done",
|
|
1134
|
+
"creatives.containersV2.Facebook.Advertisement.duplicateTooltipLabel": "Duplicate",
|
|
1135
|
+
"creatives.containersV2.Facebook.Advertisement.editNotification": "Facebook template updated successfully",
|
|
1136
|
+
"creatives.containersV2.Facebook.Advertisement.facebookPage": "Facebook page",
|
|
1137
|
+
"creatives.containersV2.Facebook.Advertisement.image": "Image",
|
|
1138
|
+
"creatives.containersV2.Facebook.Advertisement.imageVideoDesc": "Create an Ad with one image or video",
|
|
1139
|
+
"creatives.containersV2.Facebook.Advertisement.imageVideoTitle": "Single image or video",
|
|
1140
|
+
"creatives.containersV2.Facebook.Advertisement.inValidUrliErrorMessage": "Website link is not valid",
|
|
1141
|
+
"creatives.containersV2.Facebook.Advertisement.linkDesc": "Link description",
|
|
1142
|
+
"creatives.containersV2.Facebook.Advertisement.linkDescPlaceHolder": "Enter the additional details",
|
|
1143
|
+
"creatives.containersV2.Facebook.Advertisement.linkDescToolTip": "Description over 40 characters may be cut off.",
|
|
1144
|
+
"creatives.containersV2.Facebook.Advertisement.linkHeadline": "Link headline",
|
|
1145
|
+
"creatives.containersV2.Facebook.Advertisement.linkHeadlinePlaceHolder": "Enter the short headline",
|
|
1146
|
+
"creatives.containersV2.Facebook.Advertisement.linkHeadlineToolTip": "Headlines over 40 characters may be cut off.",
|
|
1147
|
+
"creatives.containersV2.Facebook.Advertisement.newFacebookCreatives": "New Facebook creative",
|
|
1148
|
+
"creatives.containersV2.Facebook.Advertisement.optional": "(Optional)",
|
|
1149
|
+
"creatives.containersV2.Facebook.Advertisement.primaryText": "Primary text",
|
|
1150
|
+
"creatives.containersV2.Facebook.Advertisement.primaryTextPlaceholder": "Enter text that clearly tells people about what you are promoting",
|
|
1151
|
+
"creatives.containersV2.Facebook.Advertisement.primaryTextToolTip": "Facebook recommends 125 characters or fewer.",
|
|
1152
|
+
"creatives.containersV2.Facebook.Advertisement.shiftLeftTooltipLabel": "Shift Left",
|
|
1153
|
+
"creatives.containersV2.Facebook.Advertisement.shiftRightTooltipLabel": "Shift Right",
|
|
1154
|
+
"creatives.containersV2.Facebook.Advertisement.video_slideshow": "Video",
|
|
1155
|
+
"creatives.containersV2.Facebook.Advertisement.webSiteLink": "Website link",
|
|
1156
|
+
"creatives.containersV2.Facebook.Advertisement.websiteLinkPlaceHolder": "Enter the URL for the web page that you want people to visit",
|
|
1157
|
+
"creatives.containersV2.Facebook.adManagerHeading": "Where do you want to create your Facebook ad creative?",
|
|
1158
|
+
"creatives.containersV2.Facebook.capAdManagerHeading": "You can create Facebook ads creative in Engage+ Facebook ad Manager.",
|
|
1159
|
+
"creatives.containersV2.Facebook.capFbAdManager": "Capillary Facebook ad manager",
|
|
1160
|
+
"creatives.containersV2.Facebook.facebookDisableinfo": "Please integrate Facebook page ID & page name to enable this option.",
|
|
1062
1161
|
"creatives.containersV2.Facebook.fbAccount": "Facebook Account",
|
|
1063
1162
|
"creatives.containersV2.Facebook.fbAdCampaignSetDetailsDescription": "Once this message is approved, a campaign and an ad set will be created on Facebook Ad Manager with the same name as the current campaign and message name.",
|
|
1064
1163
|
"creatives.containersV2.Facebook.fbAdCampaignSetDetailsTitle": "Ad campaign & ad set details",
|
|
1164
|
+
"creatives.containersV2.Facebook.fbAdManager": "Facebook ad manager",
|
|
1065
1165
|
"creatives.containersV2.Facebook.fbAdSetName": "Ad set name",
|
|
1066
|
-
"creatives.containersV2.Facebook.fbAdsDescription": "
|
|
1166
|
+
"creatives.containersV2.Facebook.fbAdsDescription": "Proceed with empty content block & you can create ads in Facebook Ad Manager under the mentioned ad set.",
|
|
1067
1167
|
"creatives.containersV2.Facebook.fbAdsDetailOne": "Only FB campaign & ad set creation is supported in Engage+",
|
|
1068
1168
|
"creatives.containersV2.Facebook.fbAdsDetailThree": "You can create ads later in Facebook ad manager.",
|
|
1069
1169
|
"creatives.containersV2.Facebook.fbAdsDetailTwo": "You can proceed with an empty content block",
|
|
@@ -1071,7 +1171,7 @@
|
|
|
1071
1171
|
"creatives.containersV2.Facebook.fbAudience": "Audience",
|
|
1072
1172
|
"creatives.containersV2.Facebook.fbCampaignName": "FB Campaign name",
|
|
1073
1173
|
"creatives.containersV2.Facebook.fbChange": "Change",
|
|
1074
|
-
"creatives.containersV2.Facebook.
|
|
1174
|
+
"creatives.containersV2.Facebook.fbContinue": "Continue",
|
|
1075
1175
|
"creatives.containersV2.Facebook.fbMarketingObjective": "FB Marketing objective",
|
|
1076
1176
|
"creatives.containersV2.Facebook.fbMarketingObjectiveAppInstallTitle": "App Installs",
|
|
1077
1177
|
"creatives.containersV2.Facebook.fbMarketingObjectiveAppInstallsDescription": "Get more people to install your app.",
|
|
@@ -1480,6 +1580,7 @@
|
|
|
1480
1580
|
"creatives.containersV2.Templates.newTemplate": "New template",
|
|
1481
1581
|
"creatives.containersV2.Templates.noAccountMessage": "Please select an account to proceed",
|
|
1482
1582
|
"creatives.containersV2.Templates.noAccountsPresent": "Push notifications are not setup for your brand",
|
|
1583
|
+
"creatives.containersV2.Templates.noAccountsPresentFacebook": "Please setup the Facebook account & Facebook page to start creating content in Capillary's FB content creator.",
|
|
1483
1584
|
"creatives.containersV2.Templates.noAccountsPresentLine": "Line accounts are not setup for your brand",
|
|
1484
1585
|
"creatives.containersV2.Templates.noAccountsPresentViber": "Viber accounts are not setup for your brand",
|
|
1485
1586
|
"creatives.containersV2.Templates.noAccountsPresentWeChat": "Wechat accounts are not setup for your brand",
|
|
@@ -1527,6 +1628,7 @@
|
|
|
1527
1628
|
"creatives.containersV2.TemplatesV2.edit": "Edit",
|
|
1528
1629
|
"creatives.containersV2.TemplatesV2.email": "Email",
|
|
1529
1630
|
"creatives.containersV2.TemplatesV2.facebook": "Facebook",
|
|
1631
|
+
"creatives.containersV2.TemplatesV2.facebookDisableinfo": "Please integrate Facebook page ID & page name to enable this option.",
|
|
1530
1632
|
"creatives.containersV2.TemplatesV2.gallery": "Gallery",
|
|
1531
1633
|
"creatives.containersV2.TemplatesV2.header": "This is TemplatesV2 container !",
|
|
1532
1634
|
"creatives.containersV2.TemplatesV2.line": "Line",
|
|
@@ -1583,6 +1685,7 @@
|
|
|
1583
1685
|
"creatives.containersV2.WeChat.wechatCreateSuccess": "WeChat template mapped successfully",
|
|
1584
1686
|
"creatives.containersV2.WeChat.wechatEditSuccess": "WeChat template edited successfully",
|
|
1585
1687
|
"creatives.containersV2.appName": "App Name",
|
|
1688
|
+
"creatives.containersV2.applyNow": "Apply now",
|
|
1586
1689
|
"creatives.containersV2.areYouSureText": "Are you sure?",
|
|
1587
1690
|
"creatives.containersV2.audience": "Audience",
|
|
1588
1691
|
"creatives.containersV2.campaignsDashboard": "Campaigns",
|
|
@@ -1590,10 +1693,14 @@
|
|
|
1590
1693
|
"creatives.containersV2.cancel": "Cancel",
|
|
1591
1694
|
"creatives.containersV2.changeOk": "Ok, change",
|
|
1592
1695
|
"creatives.containersV2.incentive": "Incentive",
|
|
1696
|
+
"creatives.containersV2.learnMore": "Learn More",
|
|
1593
1697
|
"creatives.containersV2.newOrgName": "{newOrgName}",
|
|
1698
|
+
"creatives.containersV2.noCallToAction": "No call to action",
|
|
1594
1699
|
"creatives.containersV2.orgChangeText": "Changing from <b>{oldOrgName}</b> to <b>{newOrgName}</b> will change the organisation for applications open in other tabs as well.<br/>Do you want to make the change to <b>{newOrgName}</b>?",
|
|
1595
1700
|
"creatives.containersV2.orgChangedText": "Organization changed to",
|
|
1596
1701
|
"creatives.containersV2.orgRefreshHeading": "Org refresh",
|
|
1702
|
+
"creatives.containersV2.programs": "Programs",
|
|
1703
|
+
"creatives.containersV2.promotions": "Promotions",
|
|
1597
1704
|
"creatives.containersV2.refreshOrgText": "Refreshing this page & changing the Org from <b>{oldOrgName}</b> to <b>{newOrgName}</b>. At a time only one Org can be selected on the browser.",
|
|
1598
1705
|
"creatives.containersV2.refreshText": "Refreshing in {time}...",
|
|
1599
1706
|
"creatives.containersV2.richMedia.Create.Anyone": "Anyone",
|
|
@@ -1662,6 +1769,9 @@
|
|
|
1662
1769
|
"creatives.containersV2.richMedia.Create.wechatTitle": "Title",
|
|
1663
1770
|
"creatives.containersV2.richMedia.Create.wrongFormatFile": "Wrong file upoaded. Please upload image file",
|
|
1664
1771
|
"creatives.containersV2.richMedia.Create.wrongUrl": "Enter correct URL",
|
|
1772
|
+
"creatives.containersV2.shopNow": "Shop Now",
|
|
1773
|
+
"creatives.containersV2.signUp": "Sign Up",
|
|
1774
|
+
"creatives.containersV2.subscribe": "Subscribe",
|
|
1665
1775
|
"creatives.containersV2.viber.addLabels": "Add labels",
|
|
1666
1776
|
"creatives.containersV2.viber.button": "Button",
|
|
1667
1777
|
"creatives.containersV2.viber.buttonText": "Button text",
|
|
@@ -1697,6 +1807,7 @@
|
|
|
1697
1807
|
"creatives.containersV2.viber.viberCreativeTitle": "Viber creative",
|
|
1698
1808
|
"creatives.containersV2.viber.viberEditNotification": "Viber template updated successfully",
|
|
1699
1809
|
"creatives.containersV2.viber.viberImageIncorrectSize": "Please upload the image with correct type, size and dimension",
|
|
1810
|
+
"creatives.containersV2.watchMore": "Watch More",
|
|
1700
1811
|
"customdatepicker.cancel": "Cancel",
|
|
1701
1812
|
"customdatepicker.done": "Done",
|
|
1702
1813
|
"reon.components.Cap.Workbench": "WorkBench",
|
package/translations/zh.json
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
+
"app.components.CapVideoUpload.dragAndDrop": "",
|
|
3
|
+
"app.components.CapVideoUpload.fileFormat": "",
|
|
4
|
+
"app.components.CapVideoUpload.imageReUpload": "",
|
|
5
|
+
"app.components.CapVideoUpload.or": "",
|
|
6
|
+
"app.components.CapVideoUpload.textMessageAddLabel": "",
|
|
7
|
+
"app.components.CapVideoUpload.textMessageCreateNew": "",
|
|
8
|
+
"app.components.CapVideoUpload.textMessageORLabel": "",
|
|
9
|
+
"app.components.CapVideoUpload.textMessageSelectTemplate": "",
|
|
10
|
+
"app.components.CapVideoUpload.uploadComputer": "",
|
|
11
|
+
"app.components.CapVideoUpload.videoIncorrectSize": "",
|
|
12
|
+
"app.components.CapVideoUpload.videoRatioDescription": "",
|
|
13
|
+
"app.components.CapVideoUpload.videoSizeDescription": "",
|
|
2
14
|
"app.components.TemplatePreview.includesOptoutTag": "",
|
|
3
15
|
"app.components.TemplatePreview.optoutCharactersTotal": "",
|
|
4
16
|
"creatives.components.AccessForbidden.forbiddenDesc": "",
|
|
@@ -90,6 +102,17 @@
|
|
|
90
102
|
"creatives.components.WechatRichmediaTemplatePreview.select": "",
|
|
91
103
|
"creatives.componentsV2.BreadCrumbs.header": "",
|
|
92
104
|
"creatives.componentsV2.CallTaskPreview.header": "",
|
|
105
|
+
"creatives.componentsV2.CapImageUpload.aspectRatio": "",
|
|
106
|
+
"creatives.componentsV2.CapImageUpload.dragAndDrop": "",
|
|
107
|
+
"creatives.componentsV2.CapImageUpload.format": "",
|
|
108
|
+
"creatives.componentsV2.CapImageUpload.imageDimenstionDescription": "",
|
|
109
|
+
"creatives.componentsV2.CapImageUpload.imageGallery": "",
|
|
110
|
+
"creatives.componentsV2.CapImageUpload.imageIncorrectSize": "",
|
|
111
|
+
"creatives.componentsV2.CapImageUpload.imageReUpload": "",
|
|
112
|
+
"creatives.componentsV2.CapImageUpload.or": "",
|
|
113
|
+
"creatives.componentsV2.CapImageUpload.uploadComputer": "",
|
|
114
|
+
"creatives.componentsV2.CapImageUpload.uploadGallery": "",
|
|
115
|
+
"creatives.componentsV2.CapImageUpload.uploadImageDescription": "",
|
|
93
116
|
"creatives.componentsV2.CapTagList.Cancel": "",
|
|
94
117
|
"creatives.componentsV2.CapTagList.Ok": "",
|
|
95
118
|
"creatives.componentsV2.CapTagList.all": "",
|
|
@@ -153,6 +176,7 @@
|
|
|
153
176
|
"creatives.componentsV2.NavigationBar.logout": "",
|
|
154
177
|
"creatives.componentsV2.NavigationBar.loyaltyProgram": "",
|
|
155
178
|
"creatives.componentsV2.NavigationBar.memberCare": "",
|
|
179
|
+
"creatives.componentsV2.NavigationBar.noProductSetting": "",
|
|
156
180
|
"creatives.componentsV2.NavigationBar.orgSettings": "",
|
|
157
181
|
"creatives.componentsV2.NavigationBar.selectedProductDefault": "",
|
|
158
182
|
"creatives.componentsV2.NavigationBar.storeCare": "",
|
|
@@ -807,6 +831,40 @@
|
|
|
807
831
|
"creatives.containersV2.Cap.storeCare": "",
|
|
808
832
|
"creatives.containersV2.Cap.storePerformance": "",
|
|
809
833
|
"creatives.containersV2.Cap.wechat": "",
|
|
834
|
+
"creatives.containersV2.CapFacebookPreview.audienceNetworkInstreamVideo": "",
|
|
835
|
+
"creatives.containersV2.CapFacebookPreview.audienceNetworkInstreamVideoMobile": "",
|
|
836
|
+
"creatives.containersV2.CapFacebookPreview.audienceNetworkOutstreamVideo": "",
|
|
837
|
+
"creatives.containersV2.CapFacebookPreview.audienceNetworkRewardedVideo": "",
|
|
838
|
+
"creatives.containersV2.CapFacebookPreview.desktopFeedStandard": "",
|
|
839
|
+
"creatives.containersV2.CapFacebookPreview.facebookStoryMobile": "",
|
|
840
|
+
"creatives.containersV2.CapFacebookPreview.generatePreview": "",
|
|
841
|
+
"creatives.containersV2.CapFacebookPreview.generatePreviewDisableToolTip": "",
|
|
842
|
+
"creatives.containersV2.CapFacebookPreview.generatePreviewError": "",
|
|
843
|
+
"creatives.containersV2.CapFacebookPreview.instagramExploreContextual": "",
|
|
844
|
+
"creatives.containersV2.CapFacebookPreview.instagramExploreImmersive": "",
|
|
845
|
+
"creatives.containersV2.CapFacebookPreview.instagramStandard": "",
|
|
846
|
+
"creatives.containersV2.CapFacebookPreview.instagramStory": "",
|
|
847
|
+
"creatives.containersV2.CapFacebookPreview.instantArticleStandard": "",
|
|
848
|
+
"creatives.containersV2.CapFacebookPreview.instreamVideoDesktop": "",
|
|
849
|
+
"creatives.containersV2.CapFacebookPreview.instreamVideoMobile": "",
|
|
850
|
+
"creatives.containersV2.CapFacebookPreview.marketplaceDesktop": "",
|
|
851
|
+
"creatives.containersV2.CapFacebookPreview.marketplaceMobile": "",
|
|
852
|
+
"creatives.containersV2.CapFacebookPreview.messengerMobileInboxMedia": "",
|
|
853
|
+
"creatives.containersV2.CapFacebookPreview.mobileBanner": "",
|
|
854
|
+
"creatives.containersV2.CapFacebookPreview.mobileFeedBasic": "",
|
|
855
|
+
"creatives.containersV2.CapFacebookPreview.mobileFeedStandard": "",
|
|
856
|
+
"creatives.containersV2.CapFacebookPreview.mobileFullwidth": "",
|
|
857
|
+
"creatives.containersV2.CapFacebookPreview.mobileInterstitial": "",
|
|
858
|
+
"creatives.containersV2.CapFacebookPreview.mobileMediumRectangle": "",
|
|
859
|
+
"creatives.containersV2.CapFacebookPreview.mobileNative": "",
|
|
860
|
+
"creatives.containersV2.CapFacebookPreview.previewAdDesc": "",
|
|
861
|
+
"creatives.containersV2.CapFacebookPreview.previewBasedonAdPlacement": "",
|
|
862
|
+
"creatives.containersV2.CapFacebookPreview.refreshPreview": "",
|
|
863
|
+
"creatives.containersV2.CapFacebookPreview.rightColumnStandard": "",
|
|
864
|
+
"creatives.containersV2.CapFacebookPreview.suggestedVideoDesktop": "",
|
|
865
|
+
"creatives.containersV2.CapFacebookPreview.suggestedVideoMobile": "",
|
|
866
|
+
"creatives.containersV2.CapFacebookPreview.videoNotePreview": "",
|
|
867
|
+
"creatives.containersV2.CapFacebookPreview.watchFeedMobile": "",
|
|
810
868
|
"creatives.containersV2.ChannelTemplates.header": "",
|
|
811
869
|
"creatives.containersV2.Create.addLabel": "",
|
|
812
870
|
"creatives.containersV2.Create.alertMessage": "",
|
|
@@ -1059,9 +1117,51 @@
|
|
|
1059
1117
|
"creatives.containersV2.FTP.selectFtpServerDesc": "",
|
|
1060
1118
|
"creatives.containersV2.FTP.selectTag": "",
|
|
1061
1119
|
"creatives.containersV2.FTP.unsupportedTagsValidationError": "",
|
|
1120
|
+
"creatives.containersV2.Facebook.Advertisement.AdvertisementType": "",
|
|
1121
|
+
"creatives.containersV2.Facebook.Advertisement.addCard": "",
|
|
1122
|
+
"creatives.containersV2.Facebook.Advertisement.callToAction": "",
|
|
1123
|
+
"creatives.containersV2.Facebook.Advertisement.callToActionMandatoryError": "",
|
|
1124
|
+
"creatives.containersV2.Facebook.Advertisement.carouselDesc": "",
|
|
1125
|
+
"creatives.containersV2.Facebook.Advertisement.carouselTitle": "",
|
|
1126
|
+
"creatives.containersV2.Facebook.Advertisement.clickButtonLabel": "",
|
|
1127
|
+
"creatives.containersV2.Facebook.Advertisement.createNotification": "",
|
|
1128
|
+
"creatives.containersV2.Facebook.Advertisement.creativeName": "",
|
|
1129
|
+
"creatives.containersV2.Facebook.Advertisement.creativesTemplatesEditName": "",
|
|
1130
|
+
"creatives.containersV2.Facebook.Advertisement.deleteTooltipLabel": "",
|
|
1131
|
+
"creatives.containersV2.Facebook.Advertisement.displayLink": "",
|
|
1132
|
+
"creatives.containersV2.Facebook.Advertisement.displayLinkPlaceHolder": "",
|
|
1133
|
+
"creatives.containersV2.Facebook.Advertisement.doneButtonLabel": "",
|
|
1134
|
+
"creatives.containersV2.Facebook.Advertisement.duplicateTooltipLabel": "",
|
|
1135
|
+
"creatives.containersV2.Facebook.Advertisement.editNotification": "",
|
|
1136
|
+
"creatives.containersV2.Facebook.Advertisement.facebookPage": "",
|
|
1137
|
+
"creatives.containersV2.Facebook.Advertisement.image": "",
|
|
1138
|
+
"creatives.containersV2.Facebook.Advertisement.imageVideoDesc": "",
|
|
1139
|
+
"creatives.containersV2.Facebook.Advertisement.imageVideoTitle": "",
|
|
1140
|
+
"creatives.containersV2.Facebook.Advertisement.inValidUrliErrorMessage": "",
|
|
1141
|
+
"creatives.containersV2.Facebook.Advertisement.linkDesc": "",
|
|
1142
|
+
"creatives.containersV2.Facebook.Advertisement.linkDescPlaceHolder": "",
|
|
1143
|
+
"creatives.containersV2.Facebook.Advertisement.linkDescToolTip": "",
|
|
1144
|
+
"creatives.containersV2.Facebook.Advertisement.linkHeadline": "",
|
|
1145
|
+
"creatives.containersV2.Facebook.Advertisement.linkHeadlinePlaceHolder": "",
|
|
1146
|
+
"creatives.containersV2.Facebook.Advertisement.linkHeadlineToolTip": "",
|
|
1147
|
+
"creatives.containersV2.Facebook.Advertisement.newFacebookCreatives": "",
|
|
1148
|
+
"creatives.containersV2.Facebook.Advertisement.optional": "",
|
|
1149
|
+
"creatives.containersV2.Facebook.Advertisement.primaryText": "",
|
|
1150
|
+
"creatives.containersV2.Facebook.Advertisement.primaryTextPlaceholder": "",
|
|
1151
|
+
"creatives.containersV2.Facebook.Advertisement.primaryTextToolTip": "",
|
|
1152
|
+
"creatives.containersV2.Facebook.Advertisement.shiftLeftTooltipLabel": "",
|
|
1153
|
+
"creatives.containersV2.Facebook.Advertisement.shiftRightTooltipLabel": "",
|
|
1154
|
+
"creatives.containersV2.Facebook.Advertisement.video_slideshow": "",
|
|
1155
|
+
"creatives.containersV2.Facebook.Advertisement.webSiteLink": "",
|
|
1156
|
+
"creatives.containersV2.Facebook.Advertisement.websiteLinkPlaceHolder": "",
|
|
1157
|
+
"creatives.containersV2.Facebook.adManagerHeading": "",
|
|
1158
|
+
"creatives.containersV2.Facebook.capAdManagerHeading": "",
|
|
1159
|
+
"creatives.containersV2.Facebook.capFbAdManager": "",
|
|
1160
|
+
"creatives.containersV2.Facebook.facebookDisableinfo": "",
|
|
1062
1161
|
"creatives.containersV2.Facebook.fbAccount": "",
|
|
1063
1162
|
"creatives.containersV2.Facebook.fbAdCampaignSetDetailsDescription": "",
|
|
1064
1163
|
"creatives.containersV2.Facebook.fbAdCampaignSetDetailsTitle": "",
|
|
1164
|
+
"creatives.containersV2.Facebook.fbAdManager": "",
|
|
1065
1165
|
"creatives.containersV2.Facebook.fbAdSetName": "",
|
|
1066
1166
|
"creatives.containersV2.Facebook.fbAdsDescription": "",
|
|
1067
1167
|
"creatives.containersV2.Facebook.fbAdsDetailOne": "",
|
|
@@ -1071,7 +1171,7 @@
|
|
|
1071
1171
|
"creatives.containersV2.Facebook.fbAudience": "",
|
|
1072
1172
|
"creatives.containersV2.Facebook.fbCampaignName": "",
|
|
1073
1173
|
"creatives.containersV2.Facebook.fbChange": "",
|
|
1074
|
-
"creatives.containersV2.Facebook.
|
|
1174
|
+
"creatives.containersV2.Facebook.fbContinue": "",
|
|
1075
1175
|
"creatives.containersV2.Facebook.fbMarketingObjective": "",
|
|
1076
1176
|
"creatives.containersV2.Facebook.fbMarketingObjectiveAppInstallTitle": "",
|
|
1077
1177
|
"creatives.containersV2.Facebook.fbMarketingObjectiveAppInstallsDescription": "",
|
|
@@ -1480,6 +1580,7 @@
|
|
|
1480
1580
|
"creatives.containersV2.Templates.newTemplate": "",
|
|
1481
1581
|
"creatives.containersV2.Templates.noAccountMessage": "",
|
|
1482
1582
|
"creatives.containersV2.Templates.noAccountsPresent": "",
|
|
1583
|
+
"creatives.containersV2.Templates.noAccountsPresentFacebook": "",
|
|
1483
1584
|
"creatives.containersV2.Templates.noAccountsPresentLine": "",
|
|
1484
1585
|
"creatives.containersV2.Templates.noAccountsPresentViber": "",
|
|
1485
1586
|
"creatives.containersV2.Templates.noAccountsPresentWeChat": "",
|
|
@@ -1527,6 +1628,7 @@
|
|
|
1527
1628
|
"creatives.containersV2.TemplatesV2.edit": "",
|
|
1528
1629
|
"creatives.containersV2.TemplatesV2.email": "",
|
|
1529
1630
|
"creatives.containersV2.TemplatesV2.facebook": "",
|
|
1631
|
+
"creatives.containersV2.TemplatesV2.facebookDisableinfo": "",
|
|
1530
1632
|
"creatives.containersV2.TemplatesV2.gallery": "",
|
|
1531
1633
|
"creatives.containersV2.TemplatesV2.header": "",
|
|
1532
1634
|
"creatives.containersV2.TemplatesV2.line": "",
|
|
@@ -1583,6 +1685,7 @@
|
|
|
1583
1685
|
"creatives.containersV2.WeChat.wechatCreateSuccess": "",
|
|
1584
1686
|
"creatives.containersV2.WeChat.wechatEditSuccess": "",
|
|
1585
1687
|
"creatives.containersV2.appName": "",
|
|
1688
|
+
"creatives.containersV2.applyNow": "",
|
|
1586
1689
|
"creatives.containersV2.areYouSureText": "",
|
|
1587
1690
|
"creatives.containersV2.audience": "",
|
|
1588
1691
|
"creatives.containersV2.campaignsDashboard": "",
|
|
@@ -1590,10 +1693,14 @@
|
|
|
1590
1693
|
"creatives.containersV2.cancel": "",
|
|
1591
1694
|
"creatives.containersV2.changeOk": "",
|
|
1592
1695
|
"creatives.containersV2.incentive": "",
|
|
1696
|
+
"creatives.containersV2.learnMore": "",
|
|
1593
1697
|
"creatives.containersV2.newOrgName": "",
|
|
1698
|
+
"creatives.containersV2.noCallToAction": "",
|
|
1594
1699
|
"creatives.containersV2.orgChangeText": "",
|
|
1595
1700
|
"creatives.containersV2.orgChangedText": "",
|
|
1596
1701
|
"creatives.containersV2.orgRefreshHeading": "",
|
|
1702
|
+
"creatives.containersV2.programs": "",
|
|
1703
|
+
"creatives.containersV2.promotions": "",
|
|
1597
1704
|
"creatives.containersV2.refreshOrgText": "",
|
|
1598
1705
|
"creatives.containersV2.refreshText": "",
|
|
1599
1706
|
"creatives.containersV2.richMedia.Create.Anyone": "",
|
|
@@ -1662,6 +1769,9 @@
|
|
|
1662
1769
|
"creatives.containersV2.richMedia.Create.wechatTitle": "",
|
|
1663
1770
|
"creatives.containersV2.richMedia.Create.wrongFormatFile": "",
|
|
1664
1771
|
"creatives.containersV2.richMedia.Create.wrongUrl": "",
|
|
1772
|
+
"creatives.containersV2.shopNow": "",
|
|
1773
|
+
"creatives.containersV2.signUp": "",
|
|
1774
|
+
"creatives.containersV2.subscribe": "",
|
|
1665
1775
|
"creatives.containersV2.viber.addLabels": "",
|
|
1666
1776
|
"creatives.containersV2.viber.button": "",
|
|
1667
1777
|
"creatives.containersV2.viber.buttonText": "",
|
|
@@ -1697,6 +1807,7 @@
|
|
|
1697
1807
|
"creatives.containersV2.viber.viberCreativeTitle": "",
|
|
1698
1808
|
"creatives.containersV2.viber.viberEditNotification": "",
|
|
1699
1809
|
"creatives.containersV2.viber.viberImageIncorrectSize": "",
|
|
1810
|
+
"creatives.containersV2.watchMore": "",
|
|
1700
1811
|
"customdatepicker.cancel": "",
|
|
1701
1812
|
"customdatepicker.done": "",
|
|
1702
1813
|
"reon.components.Cap.Workbench": "",
|
|
@@ -31,8 +31,12 @@ const creativeDetails = ({
|
|
|
31
31
|
|
|
32
32
|
const isLabelsUsed = (content = '') => {
|
|
33
33
|
const tagRegex = /{{[(A-Z\w+(\s\w+)*$\(\)@!#$%^&*~.,/\\]+}}/g; // eslint-disable-line no-useless-escape
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
const isContentString= typeof content === "string";
|
|
35
|
+
if(isContentString){
|
|
36
|
+
content = content.replaceAll('{{optout}}', '');
|
|
37
|
+
content = content.replaceAll('{{unsubscribe}}', '');
|
|
38
|
+
}
|
|
39
|
+
|
|
36
40
|
const tags = [...content.matchAll(tagRegex)];
|
|
37
41
|
return !!tags.length;
|
|
38
42
|
};
|