@capillarytech/creatives-library 6.9.1 → 6.9.5

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 (101) hide show
  1. package/components/CapTagList/index.js +1 -1
  2. package/components/Edmeditor/index.js +1 -1
  3. package/components/FormBuilder/index.js +1 -0
  4. package/components/TemplatePreview/_templatePreview.scss +6 -0
  5. package/components/TemplatePreview/index.js +35 -28
  6. package/config/app.js +1 -1
  7. package/containers/TagList/index.js +3 -3
  8. package/index.html +0 -5
  9. package/package.json +1 -2
  10. package/services/api.js +1 -16
  11. package/v2Components/CapTagList/index.js +26 -55
  12. package/v2Components/Carousel/index.js +120 -0
  13. package/v2Components/Carousel/style.scss +40 -0
  14. package/v2Components/CmsTemplatesComponent/index.js +4 -4
  15. package/v2Components/Edmeditor/index.js +1 -1
  16. package/v2Components/EmailPreview/_emailPreview.scss +2 -2
  17. package/v2Components/FormBuilder/index.js +43 -117
  18. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +151 -151
  19. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +33 -33
  20. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/tests/index.test.js +10 -10
  21. package/v2Components/TemplatePreview/_templatePreview.scss +1 -0
  22. package/v2Components/TemplatePreview/assets/images/androidPushMessage.svg +44 -44
  23. package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +21 -21
  24. package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +16 -16
  25. package/v2Components/TemplatePreview/assets/images/iPhonePushMessage.svg +134 -134
  26. package/v2Components/TemplatePreview/assets/images/mobile.svg +23 -23
  27. package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -22
  28. package/v2Components/TemplatePreview/assets/images/user-icon.svg +18 -18
  29. package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +21 -21
  30. package/v2Components/TemplatePreview/assets/images/wechat-mobile.svg +77 -77
  31. package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -20
  32. package/v2Components/TemplatePreview/index.js +36 -29
  33. package/v2Components/TemplatePreview/tests/index.test.js +10 -10
  34. package/v2Containers/CreativesContainer/SlideBoxContent.js +7 -1
  35. package/v2Containers/CreativesContainer/SlideBoxFooter.js +51 -51
  36. package/v2Containers/CreativesContainer/actions.js +27 -27
  37. package/v2Containers/CreativesContainer/constants.js +17 -17
  38. package/v2Containers/CreativesContainer/index.js +2 -7
  39. package/v2Containers/CreativesContainer/index.scss +44 -44
  40. package/v2Containers/CreativesContainer/messages.js +305 -305
  41. package/v2Containers/CreativesContainer/reducer.js +29 -29
  42. package/v2Containers/CreativesContainer/sagas.js +11 -11
  43. package/v2Containers/CreativesContainer/selectors.js +30 -30
  44. package/v2Containers/CreativesContainer/tests/actions.test.js +18 -18
  45. package/v2Containers/CreativesContainer/tests/index.test.js +10 -10
  46. package/v2Containers/CreativesContainer/tests/reducer.test.js +9 -9
  47. package/v2Containers/CreativesContainer/tests/sagas.test.js +15 -15
  48. package/v2Containers/CreativesContainer/tests/selectors.test.js +10 -10
  49. package/v2Containers/Email/constants.js +0 -1
  50. package/v2Containers/Email/index.js +108 -210
  51. package/v2Containers/Email/initialSchema.js +3 -18
  52. package/v2Containers/Email/sagas.js +2 -2
  53. package/v2Containers/Email/selectors.js +0 -5
  54. package/v2Containers/EmailWrapper/index.js +3 -19
  55. package/v2Containers/Line/Container/Image/index.js +21 -19
  56. package/v2Containers/Line/Container/ImageCarousel/Content.js +554 -0
  57. package/v2Containers/Line/Container/ImageCarousel/constants.js +10 -0
  58. package/v2Containers/Line/Container/ImageCarousel/index.js +526 -0
  59. package/v2Containers/Line/Container/ImageCarousel/messages.js +178 -0
  60. package/v2Containers/Line/Container/ImageCarousel/style.js +61 -0
  61. package/v2Containers/Line/Container/ImageMap/constants.js +2 -1
  62. package/v2Containers/Line/Container/ImageMap/index.js +31 -6
  63. package/v2Containers/Line/Container/ImageMap/messages.js +12 -0
  64. package/v2Containers/Line/Container/Wrapper/index.js +5 -1
  65. package/v2Containers/Line/Container/Wrapper/messages.js +4 -0
  66. package/v2Containers/Line/Container/Wrapper/utils.js +15 -16
  67. package/v2Containers/Line/Container/_lineCreate.scss +2 -2
  68. package/v2Containers/Line/Container/actions.js +4 -2
  69. package/v2Containers/Line/Container/constants.js +3 -0
  70. package/v2Containers/Line/Container/index.js +49 -11
  71. package/v2Containers/Line/Container/reducer.js +2 -2
  72. package/v2Containers/Line/Container/sagas.js +2 -2
  73. package/v2Containers/Line/Container/style.js +2 -1
  74. package/v2Containers/TagList/index.js +0 -6
  75. package/v2Containers/Templates/_templates.scss +9 -0
  76. package/v2Containers/Templates/actions.js +117 -122
  77. package/v2Containers/Templates/constants.js +47 -49
  78. package/v2Containers/Templates/index.js +42 -34
  79. package/v2Containers/Templates/messages.js +4 -8
  80. package/v2Containers/Templates/reducer.js +145 -153
  81. package/v2Containers/Templates/sagas.js +179 -179
  82. package/v2Containers/Templates/selectors.js +1 -19
  83. package/v2Containers/Templates/tests/actions.test.js +18 -18
  84. package/v2Containers/Templates/tests/index.test.js +10 -10
  85. package/v2Containers/Templates/tests/reducer.test.js +9 -9
  86. package/v2Containers/Templates/tests/sagas.test.js +15 -15
  87. package/v2Containers/Templates/tests/selectors.test.js +10 -10
  88. package/v2Containers/TemplatesV2/TemplatesV2.style.js +29 -29
  89. package/v2Containers/TemplatesV2/actions.js +16 -16
  90. package/v2Containers/TemplatesV2/constants.js +10 -10
  91. package/v2Containers/TemplatesV2/messages.js +61 -61
  92. package/v2Containers/TemplatesV2/selectors.js +25 -25
  93. package/v2Containers/TemplatesV2/tests/actions.test.js +18 -18
  94. package/v2Containers/TemplatesV2/tests/index.test.js +10 -10
  95. package/v2Containers/TemplatesV2/tests/reducer.test.js +9 -9
  96. package/v2Containers/TemplatesV2/tests/sagas.test.js +15 -15
  97. package/v2Containers/TemplatesV2/tests/selectors.test.js +10 -10
  98. package/v2Components/BeeEditor/index.js +0 -278
  99. package/v2Components/BeeEditor/index.scss +0 -11
  100. package/v2Components/BeeEditor/messages.js +0 -47
  101. package/v2Components/BeeEditor/tests/index.test.js +0 -10
@@ -1,278 +0,0 @@
1
- /**
2
- *
3
- * Beeeditor
4
- *
5
- */
6
- import React, { useEffect, useState, useRef, useCallback } from 'react';
7
- import PropTypes from 'prop-types';
8
- import { injectIntl, intlShape, FormattedMessage } from 'react-intl';
9
- import TagList from '../../v2Containers/TagList';
10
- import
11
- {
12
- CapModal,
13
- CapButton,
14
- CapInput,
15
- CapSelect,
16
- }
17
- from '@capillarytech/cap-ui-library';
18
- import messages from './messages';
19
- import './index.scss';
20
-
21
- function BeeEditor(props) {
22
- const {
23
- uid,
24
- beeJson,
25
- tokenData,
26
- id,
27
- location = {},
28
- moduleFilterEnabled,
29
- label,
30
- className,
31
- userLocale,
32
- selectedOfferDetails,
33
- tags,
34
- injectedTags,
35
- saveBeeInstance,
36
- saveBeeData,
37
- intl,
38
- onContextChange,
39
- } = props;
40
- const {formatMessage} = intl;
41
- const UNSUBSCRIBE = 'unsubscribe';
42
- let beePluginInstance = null;
43
- const categoryOptions = [];
44
- const [visibleTaglist, setVisibleTaglist] = useState(false);
45
- const [showRowMetaModal, setRowMetaModal] = useState(false);
46
- const [selectedTag, setSelectedTag] = useState({});
47
- const [rowMetaInfo, setRowMetaInfo] = useState({});
48
- const [rowName, setRowName] = useState('');
49
- const [rowTags, setRowTags] = useState('');
50
- const [rowCategory, setRowCategory] = useState('');
51
-
52
- const savedCallback = useRef();
53
- const filteredTags = (tags || []).filter((obj) => obj.definition.value !== UNSUBSCRIBE);
54
- let intervalTimer;
55
-
56
- useEffect(() => {
57
- savedCallback.current = Object.keys(selectedTag).length > 0 ? selectedTag : rowMetaInfo;
58
- }, [selectedTag, rowMetaInfo]);
59
-
60
- useEffect(() => {
61
- const beeConfig = {
62
- uid,
63
- container: 'bee-plugin-container',
64
- rowsConfiguration: {
65
- emptyRows: true,
66
- defaultRows: true,
67
- },
68
- contentDialog: {
69
- specialLinks: {
70
- label: UNSUBSCRIBE,
71
- handler(resolve) {
72
- resolve({
73
- type: 'custom',
74
- label: UNSUBSCRIBE,
75
- link: `{{${UNSUBSCRIBE}}}`,
76
- });
77
- },
78
- },
79
- mergeTags: {
80
- label: 'search',
81
- handler: async (resolve, reject) => {
82
- await setVisibleTaglist(true);
83
- const promise = new Promise((resolveP) => {
84
- intervalTimer = setInterval(() => {
85
- if ((savedCallback.current || {}).close === true) {
86
- reject();
87
- clearInterval(intervalTimer);
88
- return;
89
- }
90
- if (Object.keys(savedCallback.current || {}).length > 0) {
91
- resolveP(savedCallback.current);
92
- setSelectedTag({});
93
- clearInterval(intervalTimer);
94
- }
95
- }, 2000);
96
- });
97
- const result = await promise;
98
- resolve(result); // "done!"
99
- },
100
- },
101
- saveRow: {
102
- handler: async (resolve, reject, args) => {
103
- await setRowMetaModal(true);
104
- const promise = new Promise((resolveP) => {
105
- intervalTimer = setInterval(() => {
106
- if ((savedCallback.current || {}).close === true) {
107
- reject();
108
- clearInterval(intervalTimer);
109
- setRowMetaInfo({});
110
- setRowName('');
111
- setRowTags('');
112
- setRowCategory('');
113
- return;
114
- }
115
- if (Object.keys(savedCallback.current || {}).length > 0) {
116
- const data = {...args, ...savedCallback.current};
117
- resolveP(data);
118
- }
119
- }, 2000);
120
- });
121
- const result = await promise;
122
- resolve(result); // "done!"
123
- setRowMetaInfo({});
124
- setRowName('');
125
- setRowTags('');
126
- setRowCategory('');
127
- clearInterval(intervalTimer);
128
- },
129
- },
130
- },
131
- onSave: (jsonFile, htmlFile) => {
132
- saveBeeData(jsonFile, htmlFile);
133
- },
134
- onSaveRows: (jsonFile, htmlFile) => {
135
- console.log('bee-plugin-container onSaveRows', jsonFile, htmlFile);
136
- },
137
- };
138
- window.BeePlugin.create(tokenData, beeConfig, (instance) => {
139
- beePluginInstance = instance;
140
- console.log('bee instance', beePluginInstance);
141
- const parseJson = JSON.parse(beeJson);
142
- beePluginInstance.start(parseJson);
143
- saveBeeInstance(beePluginInstance);
144
- });
145
- return () => clearInterval(intervalTimer);
146
- }, []);
147
-
148
- const onTagSelect = (result) => {
149
- const msg = {
150
- name: result,
151
- value: `{{${result}}}`,
152
- };
153
-
154
- setSelectedTag(msg);
155
- setVisibleTaglist(false);
156
- };
157
-
158
- const onCancelTagList = () => {
159
- setVisibleTaglist(false);
160
- setSelectedTag({close: true});
161
- };
162
-
163
- const handleCancel = () => {
164
- setRowMetaModal(false);
165
- setRowMetaInfo({close: true});
166
- };
167
-
168
- const handleOk = () => {
169
- console.log('handleOk');
170
- const rowInfo = {};
171
- if (rowTags !== '') {
172
- rowInfo.tags = rowTags;
173
- }
174
- if (rowCategory !== '') {
175
- rowInfo.category = rowCategory;
176
- }
177
- setRowMetaInfo({
178
- name: rowName,
179
- ...rowInfo,
180
- });
181
- setRowMetaModal(false);
182
- // set rowMetaInfo
183
- };
184
- const isDisableSave = () => rowName === '';
185
-
186
- const onRowChange = useCallback((e) => {
187
- setRowName(e.target.value);
188
- });
189
-
190
- const onChangeCategoy = (e) => {
191
- console.log('onChangeCategoy', e);
192
- };
193
-
194
- const onTagChange = (e) => {
195
- setRowTags(e.target.value);
196
- };
197
-
198
- const contentSection = <>
199
- <CapInput
200
- label={<FormattedMessage {...messages.rowName} />}
201
- placeholder={formatMessage(messages.rowPlaceHolder)}
202
- onChange={onRowChange}
203
- value={rowName}
204
- maxLength={50}
205
- style={{ width: '324px', paddingBottom: '16px' }}
206
- />
207
- <CapSelect
208
- label="Category"
209
- style={{ width: 250, paddingBottom: '16px'}}
210
- options={categoryOptions}
211
- selectPlaceholder={formatMessage(messages.select)}
212
- placeholder={
213
- <FormattedMessage {...messages.selectCategoyPlaceholder} />
214
- }
215
- onChange={onChangeCategoy}
216
- />
217
- <CapInput
218
- label={<FormattedMessage {...messages.tags} />}
219
- placeholder={formatMessage(messages.tagPlaceHolder)}
220
- onChange={onTagChange}
221
- value={rowTags}
222
- maxLength={50}
223
- style={{ width: '324px', paddingBottom: '16px'}}
224
- />
225
- </>;
226
- return (
227
- <>
228
- <div id="bee-plugin-container" style={{ height: '500px'}}>
229
-
230
- </div>
231
- <TagList
232
- moduleFilterEnabled={moduleFilterEnabled}
233
- label={label}
234
- onTagSelect={onTagSelect}
235
- location={location}
236
- tags={filteredTags}
237
- injectedTags={injectedTags}
238
- className={className}
239
- id={id}
240
- userLocale={userLocale}
241
- selectedOfferDetails={selectedOfferDetails}
242
- visibleTaglist={visibleTaglist}
243
- hidePopover
244
- modalProps={
245
- {
246
- onCancel: onCancelTagList,
247
- style: { left: 200, top: 250 },
248
- className: "bee-editor-tag-list"
249
- }
250
- }
251
- onContextChange={onContextChange}
252
- />
253
- <CapModal
254
- visible={showRowMetaModal}
255
- onCancel={handleCancel}
256
- title={formatMessage(messages.customRows)}
257
- footer={[
258
- <CapButton key="back" onClick={handleCancel}>{formatMessage(messages.cancel)}</CapButton>,
259
- <CapButton key="submit" type="primary" id="delete-version" onClick={handleOk} disabled={isDisableSave()}>
260
- {formatMessage(messages.save)}
261
- </CapButton>,
262
- ]}
263
- >
264
- {contentSection}
265
- </CapModal>
266
- </>
267
- );
268
- }
269
-
270
- BeeEditor.propTypes = {
271
- beeJson: PropTypes.object.isRequired,
272
- tokenData: PropTypes.object.isRequired,
273
- uid: PropTypes.string.isRequired,
274
- showTagsPopover: PropTypes.func.isRequired,
275
- intl: intlShape.isRequired,
276
- };
277
-
278
- export default injectIntl(BeeEditor);
@@ -1,11 +0,0 @@
1
- .cap-modal-v2.bee-editor-tag-list {
2
- .ant-modal-content {
3
- .ant-modal-body {
4
- padding-top: 20px;
5
- padding-bottom: 10px;
6
- }
7
- .ant-modal-footer {
8
- display: none;
9
- }
10
- }
11
- }
@@ -1,47 +0,0 @@
1
- /*
2
- * BeeEditor Messages
3
- *
4
- * This contains all the text for the BeeEditor component.
5
- */
6
- import { defineMessages } from 'react-intl';
7
-
8
- const prefix = 'creatives.componentsV2.BeeEditor';
9
-
10
- export default defineMessages({
11
- cancel: {
12
- id: `${prefix}.cancel`,
13
- defaultMessage: 'Cancel',
14
- },
15
- save: {
16
- id: `${prefix}.save`,
17
- defaultMessage: 'Save',
18
- },
19
- rowPlaceHolder: {
20
- id: `${prefix}.rowPlaceHolder`,
21
- defaultMessage: 'Enter Row name',
22
- },
23
- rowName: {
24
- id: `${prefix}.rowName`,
25
- defaultMessage: 'Row name',
26
- },
27
- select: {
28
- id: `${prefix}.select`,
29
- defaultMessage: 'Select',
30
- },
31
- customRows: {
32
- id: `${prefix}.customRows`,
33
- defaultMessage: 'Custom rows',
34
- },
35
- selectCategoyPlaceholder: {
36
- id: `${prefix}.selectCategoyPlaceholder`,
37
- defaultMessage: 'Select category',
38
- },
39
- tags: {
40
- id: `${prefix}.tags`,
41
- defaultMessage: 'Tags (optional)',
42
- },
43
- tagPlaceHolder: {
44
- id: `${prefix}.tagPlaceHolder`,
45
- defaultMessage: 'Enter tags',
46
- },
47
- });
@@ -1,10 +0,0 @@
1
- // import React from 'react';
2
- // import { shallow } from 'enzyme';
3
-
4
- // import Beeeditor from '../index';
5
-
6
- describe('<Beeeditor />', () => {
7
- it('Expect to have unit tests specified', () => {
8
- expect(true).toEqual(false);
9
- });
10
- });