@capillarytech/creatives-library 2.0.81 → 2.0.83

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 (241) hide show
  1. package/components/CapTagList/index.js +24 -21
  2. package/components/CardGrid/index.js +10 -16
  3. package/components/Ckeditor/index.js +1 -2
  4. package/components/CustomPopOver/index.js +1 -1
  5. package/components/EmailPreview/index.js +2 -3
  6. package/components/FormBuilder/_formBuilder.scss +15 -8
  7. package/components/FormBuilder/index.js +192 -258
  8. package/components/Header/index.js +1 -4
  9. package/components/PreviewSideBar/_previewsidebar.scss +1 -1
  10. package/components/PreviewSideBar/index.js +5 -3
  11. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +3 -2
  12. package/components/TemplatePreview/_templatePreview.scss +1 -1
  13. package/components/TemplatePreview/index.js +47 -47
  14. package/components/TemplatePreview/messages.js +1 -9
  15. package/containers/Assets/Gallery/index.js +1 -1
  16. package/containers/Email/index.js +1 -1
  17. package/containers/Login/components/LoginForm/index.js +1 -1
  18. package/containers/Templates/index.js +1 -1
  19. package/containers/WeChat/RichmediaTemplates/Create/index.js +1 -1
  20. package/package.json +2 -1
  21. package/v2Components/BreadCrumbs/index.js +65 -0
  22. package/v2Components/BreadCrumbs/messages.js +13 -0
  23. package/v2Components/BreadCrumbs/tests/index.test.js +10 -0
  24. package/v2Components/CallTaskPreview/_callTaskPreview.scss +17 -0
  25. package/v2Components/CallTaskPreview/images/Footer.png +0 -0
  26. package/v2Components/CallTaskPreview/images/Header.png +0 -0
  27. package/v2Components/CallTaskPreview/index.js +37 -0
  28. package/v2Components/CallTaskPreview/messages.js +13 -0
  29. package/v2Components/CallTaskPreview/tests/index.test.js +15 -0
  30. package/v2Components/CapTagList/index.js +232 -0
  31. package/v2Components/CapTagList/messages.js +25 -0
  32. package/{containers/TemplatesV2 → v2Components/CapTagList}/tests/index.test.js +2 -2
  33. package/v2Components/Card/_customCard.scss +27 -0
  34. package/v2Components/Card/index.js +78 -0
  35. package/{containers/WeChat → v2Components/Card}/tests/index.test.js +2 -2
  36. package/v2Components/CardGrid/index.js +77 -0
  37. package/{containers/EmailWrapper → v2Components/CardGrid}/tests/index.test.js +2 -2
  38. package/v2Components/Ckeditor/index.js +234 -0
  39. package/v2Components/Ckeditor/messages.js +13 -0
  40. package/{containers/ChannelTemplates → v2Components/Ckeditor}/tests/index.test.js +2 -2
  41. package/v2Components/CmsTemplatesComponent/index.js +33 -0
  42. package/v2Components/CmsTemplatesComponent/messages.js +17 -0
  43. package/v2Components/CmsTemplatesComponent/tests/index.test.js +10 -0
  44. package/v2Components/Component/index.js +29 -0
  45. package/v2Components/Component/tests/index.test.js +10 -0
  46. package/v2Components/CustomPopOver/index.js +82 -0
  47. package/v2Components/CustomPopOver/messages.js +13 -0
  48. package/v2Components/CustomPopOver/tests/index.test.js +10 -0
  49. package/v2Components/DateFilter/index.js +349 -0
  50. package/v2Components/DateFilter/messages.js +17 -0
  51. package/v2Components/DateFilter/tests/index.test.js +15 -0
  52. package/v2Components/DateRange/index.js +113 -0
  53. package/v2Components/DateRange/messages.js +13 -0
  54. package/v2Components/DateRange/tests/index.test.js +10 -0
  55. package/v2Components/Edmeditor/index.js +65 -0
  56. package/v2Components/Edmeditor/messages.js +13 -0
  57. package/v2Components/Edmeditor/tests/index.test.js +10 -0
  58. package/v2Components/EmailMobilePreview/index.js +129 -0
  59. package/v2Components/EmailMobilePreview/index.scss +55 -0
  60. package/v2Components/EmailPreview/_emailPreview.scss +119 -0
  61. package/v2Components/EmailPreview/index.js +106 -0
  62. package/v2Components/EmailPreview/messages.js +17 -0
  63. package/v2Components/EmailPreview/tests/index.test.js +10 -0
  64. package/v2Components/EmailPreviewV2/_emailPreviewV2.scss +69 -0
  65. package/v2Components/EmailPreviewV2/index.js +132 -0
  66. package/v2Components/EmailPreviewV2/messages.js +41 -0
  67. package/v2Components/EmailPreviewV2/tests/index.test.js +10 -0
  68. package/v2Components/Footer/index.js +27 -0
  69. package/v2Components/Footer/messages.js +13 -0
  70. package/v2Components/Footer/tests/index.test.js +10 -0
  71. package/v2Components/FormBuilder/_formBuilder.scss +78 -0
  72. package/v2Components/FormBuilder/index.js +3309 -0
  73. package/v2Components/FormBuilder/messages.js +13 -0
  74. package/v2Components/FormBuilder/tests/index.test.js +10 -0
  75. package/v2Components/Header/index.js +46 -0
  76. package/v2Components/Header/messages.js +25 -0
  77. package/v2Components/Header/tests/index.test.js +10 -0
  78. package/v2Components/ImagePreview/_imagePreview.scss +63 -0
  79. package/v2Components/ImagePreview/index.js +52 -0
  80. package/v2Components/ImagePreview/messages.js +13 -0
  81. package/v2Components/ImagePreview/tests/index.test.js +10 -0
  82. package/v2Components/MobilePushPreviewV2/index.js +120 -0
  83. package/v2Components/MobilePushPreviewV2/messages.js +13 -0
  84. package/{containers/MobilepushWrapper → v2Components/MobilePushPreviewV2}/tests/index.test.js +2 -2
  85. package/v2Components/NewCallTask/_newCallTask.scss +9 -0
  86. package/v2Components/NewCallTask/index.js +152 -0
  87. package/v2Components/NewCallTask/messages.js +29 -0
  88. package/{containers/CallTask → v2Components/NewCallTask}/tests/index.test.js +2 -2
  89. package/v2Components/PageHeader/_pageHeader.scss +22 -0
  90. package/v2Components/PageHeader/index.js +37 -0
  91. package/v2Components/PageHeader/messages.js +13 -0
  92. package/v2Components/PageHeader/tests/index.test.js +10 -0
  93. package/v2Components/Pagination/_pagination.scss +5 -0
  94. package/v2Components/Pagination/index.js +49 -0
  95. package/v2Components/Pagination/tests/index.test.js +10 -0
  96. package/v2Components/PreviewSideBar/_previewsidebar.scss +28 -0
  97. package/v2Components/PreviewSideBar/index.js +150 -0
  98. package/v2Components/PreviewSideBar/messages.js +33 -0
  99. package/v2Components/PreviewSideBar/tests/index.test.js +10 -0
  100. package/v2Components/Sidebar/_sidebar.scss +115 -0
  101. package/v2Components/Sidebar/index.js +208 -0
  102. package/v2Components/Sidebar/messages.js +21 -0
  103. package/v2Components/Sidebar/tests/index.test.js +10 -0
  104. package/v2Components/SlideBox/_slideBox.scss +63 -0
  105. package/v2Components/SlideBox/index.js +48 -0
  106. package/v2Components/SlideBox/tests/index.test.js +103 -0
  107. package/v2Components/SmsEditor/index.js +55 -0
  108. package/v2Components/SmsEditor/tests/index.test.js +10 -0
  109. package/v2Components/SmsTest/index.js +115 -0
  110. package/v2Components/SmsTest/messages.js +13 -0
  111. package/v2Components/SmsTest/tests/index.test.js +10 -0
  112. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +42 -0
  113. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +139 -0
  114. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +21 -0
  115. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/tests/index.test.js +10 -0
  116. package/v2Components/TemplatePreview/_templatePreview.scss +352 -0
  117. package/v2Components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  118. package/v2Components/TemplatePreview/assets/images/androidPushMessage.svg +45 -0
  119. package/v2Components/TemplatePreview/assets/images/iPhonePushMessage.svg +135 -0
  120. package/v2Components/TemplatePreview/assets/images/mobile.svg +24 -0
  121. package/v2Components/TemplatePreview/assets/images/sms-body.png +0 -0
  122. package/v2Components/TemplatePreview/assets/images/sms-icon.png +0 -0
  123. package/v2Components/TemplatePreview/assets/images/sms_mobile.png +0 -0
  124. package/v2Components/TemplatePreview/assets/images/user-icon.svg +19 -0
  125. package/v2Components/TemplatePreview/assets/images/wechat-mobile.svg +78 -0
  126. package/v2Components/TemplatePreview/index.js +175 -0
  127. package/v2Components/TemplatePreview/messages.js +37 -0
  128. package/v2Components/TemplatePreview/tests/index.test.js +10 -0
  129. package/v2Components/Toastr/index.js +60 -0
  130. package/v2Components/Toastr/messages.js +13 -0
  131. package/v2Components/Toastr/tests/index.test.js +10 -0
  132. package/v2Components/ToastrMessage/index.js +110 -0
  133. package/v2Components/ToastrMessage/messages.js +13 -0
  134. package/v2Components/ToastrMessage/tests/index.test.js +10 -0
  135. package/v2Components/TopBar/_topbar.scss +46 -0
  136. package/v2Components/TopBar/assets/images/capillary_logo.png +0 -0
  137. package/v2Components/TopBar/index.js +113 -0
  138. package/v2Components/TopBar/messages.js +29 -0
  139. package/v2Components/TopBar/tests/index.test.js +10 -0
  140. package/v2Containers/Assets/Gallery/index.js +1 -1
  141. package/v2Containers/CallTask/index.js +1 -1
  142. package/v2Containers/Cap/index.js +2 -2
  143. package/v2Containers/CreativesContainer/SlideBoxContent.js +3 -3
  144. package/v2Containers/CreativesContainer/index.js +1 -0
  145. package/v2Containers/Dashboard/index.js +2 -2
  146. package/v2Containers/Ebill/index.js +2 -2
  147. package/v2Containers/Email/index.js +13 -13
  148. package/v2Containers/EmailWrapper/index.js +1 -1
  149. package/v2Containers/Line/Create/index.js +1 -1
  150. package/v2Containers/Line/Edit/index.js +1 -1
  151. package/v2Containers/Login/index.js +1 -1
  152. package/v2Containers/MobilePush/Create/index.js +26 -3
  153. package/v2Containers/MobilePush/Edit/index.js +32 -7
  154. package/v2Containers/MobilePush/initialSchema.js +2 -0
  155. package/v2Containers/Sms/Create/index.js +1 -1
  156. package/v2Containers/Sms/Edit/index.js +1 -1
  157. package/v2Containers/TagList/index.js +1 -1
  158. package/v2Containers/Templates/index.js +4 -4
  159. package/v2Containers/TestPage/index.js +1 -1
  160. package/v2Containers/WeChat/MapTemplates/index.js +3 -3
  161. package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +3 -3
  162. package/components/FormBuilder/test +0 -1845
  163. package/containers/CallTask/_callTask.scss +0 -5
  164. package/containers/CallTask/actions.js +0 -15
  165. package/containers/CallTask/constants.js +0 -7
  166. package/containers/CallTask/index.js +0 -141
  167. package/containers/CallTask/messages.js +0 -21
  168. package/containers/CallTask/reducer.js +0 -23
  169. package/containers/CallTask/sagas.js +0 -11
  170. package/containers/CallTask/selectors.js +0 -25
  171. package/containers/CallTask/tests/actions.test.js +0 -18
  172. package/containers/CallTask/tests/reducer.test.js +0 -9
  173. package/containers/CallTask/tests/sagas.test.js +0 -15
  174. package/containers/CallTask/tests/selectors.test.js +0 -10
  175. package/containers/ChannelTemplates/actions.js +0 -20
  176. package/containers/ChannelTemplates/constants.js +0 -8
  177. package/containers/ChannelTemplates/index.js +0 -48
  178. package/containers/ChannelTemplates/messages.js +0 -13
  179. package/containers/ChannelTemplates/reducer.js +0 -34
  180. package/containers/ChannelTemplates/sagas.js +0 -32
  181. package/containers/ChannelTemplates/selectors.js +0 -25
  182. package/containers/ChannelTemplates/tests/actions.test.js +0 -18
  183. package/containers/ChannelTemplates/tests/reducer.test.js +0 -9
  184. package/containers/ChannelTemplates/tests/sagas.test.js +0 -15
  185. package/containers/ChannelTemplates/tests/selectors.test.js +0 -10
  186. package/containers/CreativesContainer/SlideBoxContent.js +0 -248
  187. package/containers/CreativesContainer/SlideBoxFooter.js +0 -38
  188. package/containers/CreativesContainer/SlideBoxHeader.js +0 -65
  189. package/containers/CreativesContainer/actions.js +0 -27
  190. package/containers/CreativesContainer/constants.js +0 -13
  191. package/containers/CreativesContainer/index.js +0 -418
  192. package/containers/CreativesContainer/index.scss +0 -27
  193. package/containers/CreativesContainer/messages.js +0 -17
  194. package/containers/CreativesContainer/reducer.js +0 -29
  195. package/containers/CreativesContainer/sagas.js +0 -11
  196. package/containers/CreativesContainer/selectors.js +0 -30
  197. package/containers/CreativesContainer/tests/actions.test.js +0 -18
  198. package/containers/CreativesContainer/tests/index.test.js +0 -10
  199. package/containers/CreativesContainer/tests/reducer.test.js +0 -9
  200. package/containers/CreativesContainer/tests/sagas.test.js +0 -15
  201. package/containers/CreativesContainer/tests/selectors.test.js +0 -10
  202. package/containers/EmailWrapper/actions.js +0 -15
  203. package/containers/EmailWrapper/constants.js +0 -7
  204. package/containers/EmailWrapper/index.js +0 -238
  205. package/containers/EmailWrapper/messages.js +0 -57
  206. package/containers/EmailWrapper/reducer.js +0 -23
  207. package/containers/EmailWrapper/sagas.js +0 -11
  208. package/containers/EmailWrapper/selectors.js +0 -25
  209. package/containers/EmailWrapper/tests/actions.test.js +0 -18
  210. package/containers/EmailWrapper/tests/reducer.test.js +0 -9
  211. package/containers/EmailWrapper/tests/sagas.test.js +0 -15
  212. package/containers/EmailWrapper/tests/selectors.test.js +0 -10
  213. package/containers/MobilePush/commonMethods.js +0 -249
  214. package/containers/MobilePush/eventsMap.js +0 -127
  215. package/containers/MobilePush/initialSchema.js +0 -1739
  216. package/containers/MobilepushWrapper/_mobilepushWrapper.scss +0 -18
  217. package/containers/MobilepushWrapper/index.js +0 -97
  218. package/containers/MobilepushWrapper/messages.js +0 -25
  219. package/containers/TemplatesV2/_templatesV2.scss +0 -5
  220. package/containers/TemplatesV2/actions.js +0 -16
  221. package/containers/TemplatesV2/constants.js +0 -10
  222. package/containers/TemplatesV2/index.js +0 -207
  223. package/containers/TemplatesV2/messages.js +0 -29
  224. package/containers/TemplatesV2/selectors.js +0 -25
  225. package/containers/TemplatesV2/tests/actions.test.js +0 -18
  226. package/containers/TemplatesV2/tests/reducer.test.js +0 -9
  227. package/containers/TemplatesV2/tests/sagas.test.js +0 -15
  228. package/containers/TemplatesV2/tests/selectors.test.js +0 -10
  229. package/containers/WeChat/RichmediaTemplates/Create/testschema.js +0 -379
  230. package/containers/WeChat/_wechat.scss +0 -8
  231. package/containers/WeChat/actions.js +0 -52
  232. package/containers/WeChat/constants.js +0 -28
  233. package/containers/WeChat/index.js +0 -1635
  234. package/containers/WeChat/messages.js +0 -73
  235. package/containers/WeChat/reducer.js +0 -74
  236. package/containers/WeChat/sagas.js +0 -86
  237. package/containers/WeChat/selectors.js +0 -25
  238. package/containers/WeChat/tests/actions.test.js +0 -18
  239. package/containers/WeChat/tests/reducer.test.js +0 -9
  240. package/containers/WeChat/tests/sagas.test.js +0 -15
  241. package/containers/WeChat/tests/selectors.test.js +0 -10
@@ -0,0 +1,234 @@
1
+ /**
2
+ *
3
+ * Ckeditor
4
+ *
5
+ */
6
+
7
+ import PropTypes from 'prop-types';
8
+
9
+ import React from 'react';
10
+ // import styled from 'styled-components';
11
+
12
+ // import { FormattedMessage } from 'react-intl';
13
+ import _ from 'lodash';
14
+ // import messages from './messages';
15
+ const loadScript = require('load-script');
16
+ const defaultScriptUrl = "https://ckeditor.com/assets/libs/ckeditor4/4.11.4/ckeditor.js";
17
+ const user = localStorage.getItem('user');
18
+ let locale = 'en';
19
+ if (user && JSON.parse(user).lang) {
20
+ locale = JSON.parse(user).lang;
21
+ }
22
+ const CKEditorConfig = {
23
+ skin: 'moono',
24
+ toolbar: [
25
+ { name: 'document', items: ['Source', '-'] },
26
+ { name: 'clipboard', items: ['Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'] },
27
+ { name: 'editing', items: ['Find', 'Replace', '-', 'SelectAll', '-'] },
28
+ { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'CopyFormatting', 'RemoveFormat'] },
29
+ { name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl', 'Language'] },
30
+ { name: 'links', items: ['Link', 'Unlink', 'Anchor'] },
31
+ { name: 'insert', items: ['Image', 'Table', 'HorizontalRule', 'Smiley'] },
32
+ // '/',
33
+ { name: 'styles', items: ['Format', 'Font', 'FontSize'] },
34
+ { name: 'colors', items: ['TextColor', 'BGColor'] },
35
+ { name: 'tools', items: ['Maximize', 'ShowBlocks'] },
36
+ ],
37
+ format_tags: 'p;h1;h2;h3;pre',
38
+ toolbarCanCollapse: true,
39
+ toolbarStartupExpanded: true,
40
+ uiColor: '#e3e3e3',
41
+ width: 'calc(100% - 2px)',
42
+ height: 'calc(100vh - 290px)',
43
+ fullPage: true,
44
+ htmlEncodeOutput: true,
45
+ startupFocus: true,
46
+ allowedContent: {
47
+ // Allow all content.
48
+ $1: {
49
+ // elements: this.editorInstance.dtd,
50
+ //elements: window.CKEDITOR.dtd,
51
+ attributes: true,
52
+ styles: true,
53
+ classes: true,
54
+ },
55
+ },
56
+ disallowedContent: 'script; *[on*]',
57
+ language: locale,
58
+ toolbar_Basic:
59
+ [
60
+ ['SwitchBar', '-', 'Source', '-', 'Bold', 'Italic', 'Underline'],
61
+ ['NumberedList', 'BulletedList'],
62
+ ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
63
+ ['Link', 'Unlink', 'Anchor'],
64
+ ['Image', 'Table'],
65
+ ['Font', 'FontSize'],
66
+ ['TextColor', 'BGColor'],
67
+ ],
68
+ };
69
+
70
+ class Ckeditor extends React.Component { // eslint-disable-line react/prefer-stateless-function
71
+ constructor(props) {
72
+ super(props);
73
+ const config = CKEditorConfig;
74
+ if (this.props.channel && this.props.channel.toLowerCase() === 'wechat') {
75
+ config.startupFocus = false;
76
+ config.toolbar[6].items = ['Table', 'HorizontalRule', 'Smiley'];
77
+ config.width = 'calc(100% - 70px)';
78
+ config.height = 'calc(100vh - 450px)';
79
+ }
80
+ //State initialization
81
+ this.state = {
82
+ config,
83
+ events: {
84
+ blur: this.onBlur,
85
+ afterPaste: this.afterPaste,
86
+ change: this.onChange,
87
+ },
88
+ content: "",
89
+ editorInstance: undefined,
90
+ setInitData: false,
91
+ };
92
+
93
+ this.delayTimer = 0;
94
+ //Bindings
95
+ this.onLoad = this.onLoad.bind(this);
96
+ }
97
+
98
+ componentWillMount() {
99
+ let content = '';
100
+ this.id = this.props.id;
101
+ if (this.props.content !== '') {
102
+ content = this.props.content;
103
+ content = content.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/\\&quot;/g, "\"");
104
+ }
105
+ this.setState({content}, () => {
106
+ if (this.editorInstance) {
107
+ this.editorInstance.setData(content);
108
+ }
109
+ });
110
+ }
111
+
112
+ //load ckeditor script as soon as component mounts if not already loaded
113
+ componentDidMount() {
114
+ loadScript(defaultScriptUrl, this.onLoad);
115
+ }
116
+
117
+ componentWillReceiveProps(nextProps) {
118
+ this.id = this.props.id;
119
+ if (this.editorInstance && this.editorInstance.status === "ready") {
120
+ // setTimeout(() => {
121
+ // this.editorInstance.name = this.id;
122
+ // }, 5000);
123
+ console.log('nextProps CKEditor', nextProps, this.state.content, this.props.id);
124
+ }
125
+ }
126
+
127
+ componentWillUnmount() {
128
+ this.unmounting = true;
129
+ if (this.editorInstance) {
130
+ this.editorInstance.destroy();
131
+ if (window.CKEDITOR && !_.isEmpty(window.CKEDITOR.instances)) {
132
+ window.CKEDITOR.instances = {};
133
+ }
134
+ }
135
+ }
136
+
137
+ onLoad() {
138
+ if (this.unmounting) return;
139
+
140
+ console.log('CKEditor Loading');
141
+ if (!window.CKEDITOR) {
142
+ console.error("CKEditor not found");
143
+ return;
144
+ }
145
+
146
+ let html = this.props.content;
147
+ html = html.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"");
148
+ console.log("ckeditor loading 1", this.node, html);
149
+ this.editorInstance = window.CKEDITOR.appendTo(
150
+ this.node,
151
+ this.state.config,
152
+ html
153
+ );
154
+ console.log('2');
155
+
156
+ if (this.props.getEditorInstanse) {
157
+ this.props.getEditorInstanse(this.editorInstance, this.props.id);
158
+ }
159
+ //this.editorInstance.name = this.id;
160
+
161
+ //Register listener for custom events if any
162
+ this.editorInstance.on('change', this.handleContentChange);
163
+ _.forEach(this.props.events, (event, index) => {
164
+ this.editorInstance.on(index, event);
165
+ });
166
+ const channel = _.get(this.props, 'channel');
167
+ if (channel && channel.toLowerCase() === 'wechat') {
168
+ this.editorInstance.on('blur', this.onFocusOut);
169
+ _.forEach(this.props.events, (event, index) => {
170
+ this.editorInstance.on(index, event);
171
+ });
172
+ this.editorInstance.on('focus', this.onFocusIn);
173
+ _.forEach(this.props.events, (event, index) => {
174
+ this.editorInstance.on(index, event);
175
+ });
176
+ }
177
+ }
178
+
179
+ onFocusOut = () => {
180
+ this.props.onFocusOut();
181
+ }
182
+
183
+ onFocusIn = () => {
184
+ this.props.onFocusIn();
185
+ }
186
+
187
+ delay(callback, ms) {
188
+ clearTimeout(this.delayTimer);
189
+ this.delayTimer = setTimeout(callback, ms);
190
+ }
191
+
192
+ handleContentChange = (evt) => {
193
+ // this.setState({content: this.editorInstance.getData()}, () => {
194
+ // this.props.handleContentChange(evt);
195
+ // // evt.setData(this.editorInstance.getData());
196
+ // });
197
+ this.delay(() => {
198
+ this.setState({content: this.editorInstance.getData()}, () => {
199
+ this.props.handleContentChange(evt);
200
+ });
201
+ }, 1000);
202
+ };
203
+
204
+ render() {
205
+ console.log('ckeditor loading render', this.props);
206
+ return (
207
+ <div id={this.props.id} style={{borderRight: "1px solid #000 !important"}}>
208
+ <div className={this.props.activeClass} ref={(node) => (this.node = node)}/>
209
+ </div>
210
+ );
211
+ }
212
+ }
213
+
214
+ Ckeditor.defaultProps = {
215
+ id: 'ckeditor',
216
+ content: "<html><body></body></html>",
217
+ config: {},
218
+ activeClass: "",
219
+ events: {},
220
+ };
221
+
222
+ Ckeditor.propTypes = {
223
+ id: PropTypes.string,
224
+ content: PropTypes.any,
225
+ activeClass: PropTypes.string,
226
+ events: PropTypes.object,
227
+ getEditorInstanse: PropTypes.func,
228
+ handleContentChange: PropTypes.func,
229
+ channel: PropTypes.string,
230
+ onFocusOut: PropTypes.func,
231
+ onFocusIn: PropTypes.func,
232
+ };
233
+
234
+ export default Ckeditor;
@@ -0,0 +1,13 @@
1
+ /*
2
+ * Ckeditor Messages
3
+ *
4
+ * This contains all the text for the Ckeditor component.
5
+ */
6
+ import { defineMessages } from 'react-intl';
7
+
8
+ export default defineMessages({
9
+ header: {
10
+ id: 'app.components.Ckeditor.header',
11
+ defaultMessage: 'This is the Ckeditor component !',
12
+ },
13
+ });
@@ -1,9 +1,9 @@
1
1
  // import React from 'react';
2
2
  // import { shallow } from 'enzyme';
3
3
 
4
- // import { ChannelTemplates } from '../index';
4
+ // import Ckeditor from '../index';
5
5
 
6
- describe('<ChannelTemplates />', () => {
6
+ describe('<Ckeditor />', () => {
7
7
  it('Expect to have unit tests specified', () => {
8
8
  expect(true).toEqual(false);
9
9
  });
@@ -0,0 +1,33 @@
1
+ /**
2
+ *
3
+ * CmsTemplatesComponent
4
+ *
5
+ */
6
+
7
+ import React from 'react';
8
+ import PropTypes from 'prop-types';
9
+ // import styled from 'styled-components';
10
+ import {CapButton, CapCustomCard} from '@capillarytech/cap-ui-library';
11
+ import { FormattedMessage } from 'react-intl';
12
+ import messages from './messages';
13
+ const {CapCustomCardList} = CapCustomCard;
14
+ function CmsTemplatesComponent(props) {
15
+ const cardDataList = props.cmsTemplates.map((template) => (
16
+ {
17
+ key: template.name,
18
+ title: template.name,
19
+ url: template.versions.base.preview_http_url,
20
+ hoverOption: <CapButton onClick={() => props.handleEdmDefaultTemplateSelection(template._id)}><FormattedMessage {...messages.select}/></CapButton>,
21
+ }));
22
+ return (<div>
23
+ <div className="pagination-container">
24
+ <CapCustomCardList cardList={cardDataList} type="Email" />
25
+ </div>
26
+ </div>);
27
+ }
28
+
29
+ CmsTemplatesComponent.propTypes = {
30
+ cmsTemplates: PropTypes.array,
31
+ };
32
+
33
+ export default CmsTemplatesComponent;
@@ -0,0 +1,17 @@
1
+ /*
2
+ * CmsTemplatesComponent Messages
3
+ *
4
+ * This contains all the text for the CmsTemplatesComponent component.
5
+ */
6
+ import { defineMessages } from 'react-intl';
7
+
8
+ export default defineMessages({
9
+ header: {
10
+ id: 'app.components.CmsTemplatesComponent.header',
11
+ defaultMessage: 'This is the CmsTemplatesComponent component !',
12
+ },
13
+ select: {
14
+ id: 'app.components.CmsTemplatesComponent.select',
15
+ defaultMessage: 'Select',
16
+ },
17
+ });
@@ -0,0 +1,10 @@
1
+ // import React from 'react';
2
+ // import { shallow } from 'enzyme';
3
+
4
+ // import CmsTemplatesComponent from '../index';
5
+
6
+ describe('<CmsTemplatesComponent />', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });
@@ -0,0 +1,29 @@
1
+ /**
2
+ *
3
+ * Component
4
+ *
5
+ */
6
+
7
+ import PropTypes from 'prop-types';
8
+
9
+ import React from "react";
10
+ // import styled from 'styled-components';
11
+
12
+
13
+ class Component extends React.Component { // eslint-disable-line react/prefer-stateless-function
14
+ render() {
15
+ const className = this.props.name;
16
+ return (
17
+ <div className={className}>
18
+ {this.props.children}
19
+ </div>
20
+ );
21
+ }
22
+ }
23
+
24
+ Component.propTypes = {
25
+ name: PropTypes.string.isRequired,
26
+ children: PropTypes.array,
27
+ };
28
+
29
+ export default Component;
@@ -0,0 +1,10 @@
1
+ // import React from 'react';
2
+ // import { shallow } from 'enzyme';
3
+
4
+ // import Component from '../index';
5
+
6
+ // describe('<Component />', () => {
7
+ // it('Expect to have unit tests specified', () => {
8
+ // expect(true).toEqual(false);
9
+ // });
10
+ // });
@@ -0,0 +1,82 @@
1
+ /**
2
+ *
3
+ * CustomPopOver
4
+ *
5
+ */
6
+
7
+ import PropTypes from 'prop-types';
8
+
9
+ import React from 'react';
10
+ // import styled from 'styled-components';
11
+ import {CapPopover} from '@capillarytech/cap-ui-library';
12
+ // import { FormattedMessage } from 'react-intl';
13
+ // import messages from './messages';
14
+ import _ from "lodash";
15
+
16
+ class CustomPopOver extends React.Component { // eslint-disable-line react/prefer-stateless-function
17
+ componentWillMount() {
18
+ console.log('popOver List ', this.props.popOverList, this.props.excludeList);
19
+ }
20
+
21
+ componentWillReceiveProps(nextProps) {
22
+ console.log('next popOver List ', nextProps.popOverList, nextProps.excludeList);
23
+ }
24
+
25
+ renderPopoverContent() {
26
+ const elem = [];
27
+ _.forEach(this.props.popOverList, (content, index) => {
28
+ console.log('PopOver Content', content);
29
+ if (this.props.excludeList.indexOf(content.iso_code) === -1) {
30
+ elem.push(
31
+ <p style={{ cursor: "pointer"}} key={index} onClick={() => this.props.handlePopOverClick(content)}>{content.language}</p>
32
+ );
33
+ }
34
+ });
35
+
36
+ return elem;
37
+ }
38
+
39
+ render() {
40
+ return (
41
+ <div>
42
+ <CapPopover
43
+ id={this.props.id}
44
+ className={this.props.className}
45
+ trigger={this.props.trigger}
46
+ placement={this.props.placement}
47
+ visible={this.props.visible}
48
+ onVisibleChange={this.props.onVisibleChange}
49
+ style={{height: '100%'}}
50
+ content={
51
+ this.renderPopoverContent()
52
+ }
53
+ >
54
+ <p style={{fontFamily: "open-sans", fontWeight: '600', display: `${this.props.popOverList.length === this.props.excludeList.length ? 'none' : ''}`}}>+ Languages</p>
55
+ </CapPopover>
56
+ </div>
57
+ );
58
+ }
59
+ }
60
+
61
+ CustomPopOver.defaultProps = {
62
+ id: 'popover',
63
+ className: '',
64
+ trigger: "click",
65
+ placement: "bottomLeft",
66
+ popOverList: [],
67
+ excludeList: [],
68
+ };
69
+
70
+ CustomPopOver.propTypes = {
71
+ id: PropTypes.string,
72
+ className: PropTypes.string,
73
+ popOverList: PropTypes.array,
74
+ excludeList: PropTypes.array,
75
+ trigger: PropTypes.string,
76
+ placement: PropTypes.string,
77
+ visible: PropTypes.bool,
78
+ onVisibleChange: PropTypes.func,
79
+ handlePopOverClick: PropTypes.func,
80
+ };
81
+
82
+ export default CustomPopOver;
@@ -0,0 +1,13 @@
1
+ /*
2
+ * CustomPopOver Messages
3
+ *
4
+ * This contains all the text for the CustomPopOver component.
5
+ */
6
+ import { defineMessages } from 'react-intl';
7
+
8
+ export default defineMessages({
9
+ header: {
10
+ id: 'app.components.CustomPopOver.header',
11
+ defaultMessage: 'This is the CustomPopOver component !',
12
+ },
13
+ });
@@ -0,0 +1,10 @@
1
+ // import React from 'react';
2
+ // import { shallow } from 'enzyme';
3
+
4
+ // import CustomPopOver from '../index';
5
+
6
+ describe('<CustomPopOver />', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });