@capillarytech/creatives-library 8.0.135 → 8.0.136-alpha.1

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 (294) hide show
  1. package/constants/unified.js +189 -0
  2. package/index.js +4 -2
  3. package/package.json +1 -1
  4. package/routes.js +136 -202
  5. package/services/getSchema.js +1 -1
  6. package/services/localStorageApi.js +1 -0
  7. package/tests/i18n.test.js +1 -1
  8. package/utils/authWrapper.js +1 -1
  9. package/utils/common.js +2 -2
  10. package/utils/tagValidations.js +1 -1
  11. package/utils/tests/checkStore.test.js +1 -1
  12. package/utils/tests/customAuth.test.js +1 -1
  13. package/utils/transformerUtils.js +1 -1
  14. package/v2Components/CapTagList/index.js +9 -14
  15. package/v2Components/Carousel/style.scss +1 -1
  16. package/v2Components/EmailMobilePreview/index.js +2 -2
  17. package/v2Components/FormBuilder/index.js +2 -2
  18. package/v2Components/TemplatePreview/index.js +2 -1
  19. package/v2Containers/Cap/tests/saga.test.js +1 -1
  20. package/v2Containers/Email/index.js +1 -1
  21. package/v2Containers/FTP/index.js +1 -1
  22. package/v2Containers/Line/Container/Text/index.js +1 -1
  23. package/v2Containers/Sms/Create/index.js +2 -2
  24. package/v2Containers/Sms/Edit/index.js +1 -1
  25. package/v2Containers/TagList/index.js +1 -1
  26. package/v2Containers/TagList/utils.js +1 -1
  27. package/v2Containers/Templates/index.js +1 -1
  28. package/v2Containers/Templates/sagas.js +1 -1
  29. package/components/BreadCrumbs/index.js +0 -65
  30. package/components/BreadCrumbs/messages.js +0 -13
  31. package/components/CapTagList/index.js +0 -235
  32. package/components/CapTagList/messages.js +0 -45
  33. package/components/Card/_customCard.scss +0 -40
  34. package/components/Card/index.js +0 -78
  35. package/components/Card/tests/__snapshots__/index.test.js.snap +0 -22
  36. package/components/Card/tests/index.test.js +0 -20
  37. package/components/CardGrid/index.js +0 -71
  38. package/components/Ckeditor/index.js +0 -238
  39. package/components/Ckeditor/messages.js +0 -13
  40. package/components/Ckeditor/style.scss +0 -3
  41. package/components/Component/index.js +0 -29
  42. package/components/CustomPopOver/index.js +0 -81
  43. package/components/CustomPopOver/messages.js +0 -17
  44. package/components/DateFilter/index.js +0 -349
  45. package/components/DateFilter/messages.js +0 -57
  46. package/components/DateRange/index.js +0 -114
  47. package/components/DateRange/messages.js +0 -25
  48. package/components/Edmeditor/index.js +0 -65
  49. package/components/Edmeditor/messages.js +0 -13
  50. package/components/EmailPreview/_emailPreview.scss +0 -119
  51. package/components/EmailPreview/assets/images/iPad.svg +0 -10
  52. package/components/EmailPreview/assets/images/mobile.png +0 -0
  53. package/components/EmailPreview/index.js +0 -107
  54. package/components/EmailPreview/messages.js +0 -33
  55. package/components/Footer/index.js +0 -27
  56. package/components/Footer/messages.js +0 -13
  57. package/components/FormBuilder/_formBuilder.scss +0 -83
  58. package/components/FormBuilder/index.js +0 -3279
  59. package/components/FormBuilder/messages.js +0 -61
  60. package/components/Header/index.js +0 -44
  61. package/components/Header/messages.js +0 -29
  62. package/components/ImagePreview/_imagePreview.scss +0 -63
  63. package/components/ImagePreview/index.js +0 -52
  64. package/components/ImagePreview/messages.js +0 -17
  65. package/components/PageHeader/_pageHeader.scss +0 -22
  66. package/components/PageHeader/index.js +0 -37
  67. package/components/PageHeader/messages.js +0 -13
  68. package/components/Pagination/_pagination.scss +0 -5
  69. package/components/Pagination/index.js +0 -49
  70. package/components/PreviewSideBar/_previewsidebar.scss +0 -28
  71. package/components/PreviewSideBar/index.js +0 -152
  72. package/components/PreviewSideBar/messages.js +0 -41
  73. package/components/Sidebar/_sidebar.scss +0 -115
  74. package/components/Sidebar/index.js +0 -214
  75. package/components/Sidebar/messages.js +0 -21
  76. package/components/SlideBox/_slideBox.scss +0 -63
  77. package/components/SlideBox/index.js +0 -47
  78. package/components/SlideBox/tests/index.test.js +0 -103
  79. package/components/SmsEditor/index.js +0 -55
  80. package/components/SmsTest/index.js +0 -117
  81. package/components/SmsTest/messages.js +0 -21
  82. package/components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +0 -42
  83. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +0 -141
  84. package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +0 -21
  85. package/components/TemplatePreview/_templatePreview.scss +0 -642
  86. package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  87. package/components/TemplatePreview/assets/images/androidPushMessage.svg +0 -45
  88. package/components/TemplatePreview/assets/images/home-screen-android.svg +0 -21
  89. package/components/TemplatePreview/assets/images/home-screen-ios.svg +0 -16
  90. package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +0 -135
  91. package/components/TemplatePreview/assets/images/mobile.svg +0 -24
  92. package/components/TemplatePreview/assets/images/sms-body.png +0 -0
  93. package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
  94. package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
  95. package/components/TemplatePreview/assets/images/sms_mobile_android.svg +0 -22
  96. package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +0 -16
  97. package/components/TemplatePreview/assets/images/user-icon.svg +0 -19
  98. package/components/TemplatePreview/assets/images/wechat-mobile.svg +0 -78
  99. package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +0 -20
  100. package/components/TemplatePreview/index.js +0 -617
  101. package/components/TemplatePreview/messages.js +0 -78
  102. package/components/Toastr/index.js +0 -60
  103. package/components/Toastr/messages.js +0 -13
  104. package/components/ToastrMessage/index.js +0 -113
  105. package/components/ToastrMessage/messages.js +0 -17
  106. package/components/TopBar/_topbar.scss +0 -46
  107. package/components/TopBar/assets/images/capillary_logo.png +0 -0
  108. package/components/TopBar/assets/images/old_capillary_logo.png +0 -0
  109. package/components/TopBar/index.js +0 -113
  110. package/components/TopBar/messages.js +0 -29
  111. package/containers/App/actions.js +0 -7
  112. package/containers/App/constants.js +0 -114
  113. package/containers/App/index.js +0 -52
  114. package/containers/App/reducer.js +0 -19
  115. package/containers/App/sagas.js +0 -31
  116. package/containers/App/selectors.js +0 -25
  117. package/containers/App/test/saga.test.js +0 -11
  118. package/containers/Assets/Gallery/_gallery.scss +0 -126
  119. package/containers/Assets/Gallery/actions.js +0 -37
  120. package/containers/Assets/Gallery/constants.js +0 -23
  121. package/containers/Assets/Gallery/index.js +0 -473
  122. package/containers/Assets/Gallery/messages.js +0 -93
  123. package/containers/Assets/Gallery/reducer.js +0 -81
  124. package/containers/Assets/Gallery/sagas.js +0 -80
  125. package/containers/Assets/Gallery/selectors.js +0 -25
  126. package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +0 -9
  127. package/containers/Assets/Gallery/tests/actions.test.js +0 -25
  128. package/containers/Assets/Gallery/tests/reducer.test.js +0 -96
  129. package/containers/Assets/Gallery/tests/saga.test.js +0 -157
  130. package/containers/Cap/actions.js +0 -66
  131. package/containers/Cap/constants.js +0 -25
  132. package/containers/Cap/index.js +0 -402
  133. package/containers/Cap/messages.js +0 -75
  134. package/containers/Cap/reducer.js +0 -113
  135. package/containers/Cap/sagas.js +0 -159
  136. package/containers/Cap/selectors.js +0 -75
  137. package/containers/Cap/tests/__snapshots__/index.test.js.snap +0 -2269
  138. package/containers/Cap/tests/index.test.js +0 -22
  139. package/containers/Cap/tests/saga.test.js +0 -284
  140. package/containers/Dashboard/actions.js +0 -15
  141. package/containers/Dashboard/constants.js +0 -7
  142. package/containers/Dashboard/index.js +0 -76
  143. package/containers/Dashboard/messages.js +0 -13
  144. package/containers/Dashboard/reducer.js +0 -21
  145. package/containers/Dashboard/sagas.js +0 -17
  146. package/containers/Dashboard/selectors.js +0 -25
  147. package/containers/Dashboard/test/saga.test.js +0 -9
  148. package/containers/Ebill/_ebill.scss +0 -5
  149. package/containers/Ebill/actions.js +0 -43
  150. package/containers/Ebill/constants.js +0 -20
  151. package/containers/Ebill/index.js +0 -1278
  152. package/containers/Ebill/messages.js +0 -77
  153. package/containers/Ebill/reducer.js +0 -72
  154. package/containers/Ebill/sagas.js +0 -74
  155. package/containers/Ebill/selectors.js +0 -25
  156. package/containers/Ebill/test/saga.test.js +0 -11
  157. package/containers/Email/_email.scss +0 -141
  158. package/containers/Email/actions.js +0 -81
  159. package/containers/Email/constants.js +0 -36
  160. package/containers/Email/index.js +0 -3325
  161. package/containers/Email/messages.js +0 -289
  162. package/containers/Email/reducer.js +0 -142
  163. package/containers/Email/sagas.js +0 -135
  164. package/containers/Email/selectors.js +0 -31
  165. package/containers/Email/test/saga.test.js +0 -671
  166. package/containers/LanguageProvider/actions.js +0 -17
  167. package/containers/LanguageProvider/constants.js +0 -8
  168. package/containers/LanguageProvider/index.js +0 -80
  169. package/containers/LanguageProvider/reducer.js +0 -30
  170. package/containers/LanguageProvider/selectors.js +0 -20
  171. package/containers/LanguageProvider/tests/actions.test.js +0 -19
  172. package/containers/LanguageProvider/tests/index.test.js +0 -78
  173. package/containers/LanguageProvider/tests/reducer.test.js +0 -20
  174. package/containers/LanguageProvider/tests/selectors.test.js +0 -15
  175. package/containers/Line/Create/_lineCreate.scss +0 -54
  176. package/containers/Line/Create/actions.js +0 -90
  177. package/containers/Line/Create/constants.js +0 -39
  178. package/containers/Line/Create/index.js +0 -836
  179. package/containers/Line/Create/messages.js +0 -189
  180. package/containers/Line/Create/reducer.js +0 -99
  181. package/containers/Line/Create/sagas.js +0 -121
  182. package/containers/Line/Create/selectors.js +0 -36
  183. package/containers/Line/Create/tests/saga.test.js +0 -202
  184. package/containers/Line/Edit/_lineEdit.scss +0 -35
  185. package/containers/Line/Edit/actions.js +0 -79
  186. package/containers/Line/Edit/constants.js +0 -27
  187. package/containers/Line/Edit/index.js +0 -1050
  188. package/containers/Line/Edit/messages.js +0 -177
  189. package/containers/Line/Edit/reducer.js +0 -83
  190. package/containers/Line/Edit/sagas.js +0 -80
  191. package/containers/Line/Edit/selectors.js +0 -29
  192. package/containers/Line/Edit/test/saga.test.js +0 -160
  193. package/containers/Login/assets/images/capillary_logo.png +0 -0
  194. package/containers/Login/components/LoginForm/index.js +0 -62
  195. package/containers/Login/components/LoginForm/messages.js +0 -33
  196. package/containers/Login/index.js +0 -130
  197. package/containers/Login/messages.js +0 -25
  198. package/containers/Login/selectors.js +0 -25
  199. package/containers/MobilePush/Create/_mobilePushCreate.scss +0 -39
  200. package/containers/MobilePush/Create/actions.js +0 -46
  201. package/containers/MobilePush/Create/constants.js +0 -23
  202. package/containers/MobilePush/Create/index.js +0 -2303
  203. package/containers/MobilePush/Create/messages.js +0 -269
  204. package/containers/MobilePush/Create/reducer.js +0 -70
  205. package/containers/MobilePush/Create/sagas.js +0 -74
  206. package/containers/MobilePush/Create/selectors.js +0 -28
  207. package/containers/MobilePush/Create/test/saga.test.js +0 -19
  208. package/containers/MobilePush/Edit/_mobilePushCreate.scss +0 -39
  209. package/containers/MobilePush/Edit/actions.js +0 -91
  210. package/containers/MobilePush/Edit/constants.js +0 -35
  211. package/containers/MobilePush/Edit/index.js +0 -2601
  212. package/containers/MobilePush/Edit/messages.js +0 -266
  213. package/containers/MobilePush/Edit/reducer.js +0 -112
  214. package/containers/MobilePush/Edit/sagas.js +0 -126
  215. package/containers/MobilePush/Edit/selectors.js +0 -29
  216. package/containers/MobilePush/Edit/tests/saga.test.js +0 -255
  217. package/containers/NotFoundPage/index.js +0 -25
  218. package/containers/NotFoundPage/messages.js +0 -13
  219. package/containers/NotFoundPage/tests/index.test.js +0 -17
  220. package/containers/Sms/Create/_smsCreate.scss +0 -42
  221. package/containers/Sms/Create/actions.js +0 -27
  222. package/containers/Sms/Create/constants.js +0 -16
  223. package/containers/Sms/Create/index.js +0 -1488
  224. package/containers/Sms/Create/messages.js +0 -109
  225. package/containers/Sms/Create/reducer.js +0 -41
  226. package/containers/Sms/Create/sagas.js +0 -40
  227. package/containers/Sms/Create/selectors.js +0 -28
  228. package/containers/Sms/Create/test/saga.test.js +0 -11
  229. package/containers/Sms/Edit/actions.js +0 -40
  230. package/containers/Sms/Edit/constants.js +0 -17
  231. package/containers/Sms/Edit/index.js +0 -1472
  232. package/containers/Sms/Edit/messages.js +0 -105
  233. package/containers/Sms/Edit/reducer.js +0 -50
  234. package/containers/Sms/Edit/sagas.js +0 -60
  235. package/containers/Sms/Edit/selectors.js +0 -32
  236. package/containers/Sms/Edit/test/saga.test.js +0 -13
  237. package/containers/TagList/_tagList.scss +0 -8
  238. package/containers/TagList/actions.js +0 -15
  239. package/containers/TagList/constants.js +0 -32
  240. package/containers/TagList/index.js +0 -236
  241. package/containers/TagList/messages.js +0 -13
  242. package/containers/TagList/reducer.js +0 -23
  243. package/containers/TagList/sagas.js +0 -11
  244. package/containers/TagList/selectors.js +0 -25
  245. package/containers/Templates/_templates.scss +0 -333
  246. package/containers/Templates/actions.js +0 -103
  247. package/containers/Templates/constants.js +0 -60
  248. package/containers/Templates/index.js +0 -1756
  249. package/containers/Templates/messages.js +0 -337
  250. package/containers/Templates/reducer.js +0 -142
  251. package/containers/Templates/sagas.js +0 -163
  252. package/containers/Templates/selectors.js +0 -28
  253. package/containers/Templates/test/saga.test.js +0 -241
  254. package/containers/WeChat/MapTemplates/_mapTemplates.scss +0 -8
  255. package/containers/WeChat/MapTemplates/actions.js +0 -52
  256. package/containers/WeChat/MapTemplates/constants.js +0 -28
  257. package/containers/WeChat/MapTemplates/index.js +0 -1610
  258. package/containers/WeChat/MapTemplates/messages.js +0 -157
  259. package/containers/WeChat/MapTemplates/reducer.js +0 -74
  260. package/containers/WeChat/MapTemplates/sagas.js +0 -84
  261. package/containers/WeChat/MapTemplates/selectors.js +0 -25
  262. package/containers/WeChat/MapTemplates/test/saga.test.js +0 -155
  263. package/containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +0 -57
  264. package/containers/WeChat/RichmediaTemplates/Create/actions.js +0 -36
  265. package/containers/WeChat/RichmediaTemplates/Create/constants.js +0 -15
  266. package/containers/WeChat/RichmediaTemplates/Create/index.js +0 -1071
  267. package/containers/WeChat/RichmediaTemplates/Create/messages.js +0 -165
  268. package/containers/WeChat/RichmediaTemplates/Create/reducer.js +0 -60
  269. package/containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +0 -497
  270. package/containers/WeChat/RichmediaTemplates/Create/sagas.js +0 -51
  271. package/containers/WeChat/RichmediaTemplates/Create/selectors.js +0 -37
  272. package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +0 -13
  273. package/containers/WeChat/RichmediaTemplates/Edit/actions.js +0 -20
  274. package/containers/WeChat/RichmediaTemplates/Edit/constants.js +0 -10
  275. package/containers/WeChat/RichmediaTemplates/Edit/index.js +0 -136
  276. package/containers/WeChat/RichmediaTemplates/Edit/messages.js +0 -13
  277. package/containers/WeChat/RichmediaTemplates/Edit/reducer.js +0 -28
  278. package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +0 -36
  279. package/containers/WeChat/RichmediaTemplates/Edit/selectors.js +0 -30
  280. package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +0 -12
  281. package/containers/WeChat/RichmediaTemplates/View/actions.js +0 -15
  282. package/containers/WeChat/RichmediaTemplates/View/constants.js +0 -7
  283. package/containers/WeChat/RichmediaTemplates/View/index.js +0 -47
  284. package/containers/WeChat/RichmediaTemplates/View/messages.js +0 -21
  285. package/containers/WeChat/RichmediaTemplates/View/reducer.js +0 -23
  286. package/containers/WeChat/RichmediaTemplates/View/sagas.js +0 -11
  287. package/containers/WeChat/RichmediaTemplates/View/selectors.js +0 -25
  288. package/utils/asyncInjectors.js +0 -78
  289. package/utils/callNativeEvent.js +0 -16
  290. package/utils/checkStore.js +0 -21
  291. package/utils/customAuthWrapper.js +0 -62
  292. package/utils/customConnectedAuthWrapper.js +0 -26
  293. package/utils/jed.js +0 -1497
  294. package/utils/smsCharCount.js +0 -351
@@ -1,20 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="220" height="472" viewBox="0 0 220 472">
2
- <g fill="none" fill-rule="evenodd">
3
- <rect width="220" height="472" fill="#101211" rx="26"/>
4
- <rect width="202" height="404" x="9" y="36" fill="#F4F5F7" rx="9"/>
5
- <rect width="182" height="136" x="19" y="112" fill="#F4F5F7" rx="17.5"/>
6
- <path fill="#F4F5F7" d="M18 36h184c4.97 0 9 4.03 9 9v6H9v-6c0-4.97 4.03-9 9-9z"/>
7
- <path fill="#F4F5F7" d="M9 51H211V82H9z" transform="matrix(1 0 0 -1 0 133)"/>
8
- <rect width="52" height="5" x="84" y="14" fill="#2E2E2E" rx="2.5"/>
9
- <rect width="52" height="5" x="84" y="455" fill="#2E2E2E" rx="2.5"/>
10
- <circle cx="45.5" cy="19.5" r="5.5" fill="#2E2E2E"/>
11
- <circle cx="65.5" cy="19.5" r="3.5" fill="#2E2E2E"/>
12
- <text fill="#000" font-family="Roboto-Regular, Roboto" font-size="12" letter-spacing=".175">
13
- <tspan x="49.5" y="71">Muji India</tspan>
14
- </text>
15
- <circle cx="199" cy="63" r="1" fill="#000"/>
16
- <circle cx="199" cy="70" r="1" fill="#000"/>
17
- <circle cx="199" cy="66.5" r="1" fill="#000"/>
18
- <path fill="#000" d="M28 66c0 .279-.226.505-.505.505h-5.556l2.42 2.42c.198.197.198.518 0 .716-.198.198-.52.198-.718 0l-2.934-2.934c-.39-.39-.39-1.024 0-1.414l2.934-2.934c.198-.198.52-.198.718 0 .198.198.198.519 0 .717l-2.42 2.419h5.556c.279 0 .505.226.505.505z"/>
19
- </g>
20
- </svg>
@@ -1,617 +0,0 @@
1
- /**
2
- *
3
- * TemplatePreview
4
- *
5
- */
6
-
7
- import PropTypes from 'prop-types';
8
-
9
- import React from 'react';
10
- import _ from 'lodash';
11
- import { injectIntl, intlShape, FormattedMessage} from 'react-intl';
12
- import {CapColumn, CapTab, CapIcon, CapLabel, CapImage, CapTooltip, CapButton } from '@capillarytech/cap-ui-library';
13
- import './_templatePreview.scss';
14
- import Carousel from '../../v2Components/Carousel';
15
- import {updateCharCount} from '../../utils/smsCharCountV2';
16
- import messages from './messages';
17
- const smsIcon = require('./assets/images/user-icon.svg');
18
- const smsMobileAndroid = require('./assets/images/sms_mobile_android.svg');
19
- const wechatMobileAndroid = require('./assets/images/wechat_mobile_android.svg');
20
- const smsMobileIos = require('./assets/images/sms_mobile_ios.svg');
21
- const smsAndroidHomeScreen = require('./assets/images/home-screen-android.svg');
22
- const lineMobileAndroid = require('../../assets/line.png');
23
- const lineImgPlaceholder = require('../../assets/line-image-placeholder.svg');
24
- const lineStickerPlaceholder = require('../../assets/smiley-placeholder.svg');
25
- const smsIosHomeScreen = require('./assets/images/home-screen-ios.svg');
26
- const wechatBody = require('./assets/images/WECHAT_5x.png');
27
- const smsBody = require('./assets/images/mobile.svg');
28
- const androidPushMessagePhone = require('./assets/images/androidPushMessage.svg');
29
- const iPhonePushMessagePhone = require('./assets/images/iPhonePushMessage.svg');
30
- const lineVideoPlaceholder = require('../../assets/rich-video-placeholder.svg');
31
- import { CAP_COLOR_03, CAP_WHITE, FONT_COLOR_01, CAP_G08, CAP_G06 } from '@capillarytech/cap-ui-library/styled/variables';
32
- import { TEMPLATE, IMAGE_CAROUSEL, IMAGE_MAP_CAMEL_CASE, IMAGE, STICKER, TEXT, VIDEO } from '../../v2Containers/Line/Container/constants';
33
-
34
- class TemplatePreview extends React.Component { // eslint-disable-line react/prefer-stateless-function
35
- getWechatAndroidPreview = (content) => (
36
- <div className="shell-lock-screen-android align-center" id="sms-preview">
37
- <div className="lock-screen-preview">
38
- <CapImage className="preview-image sms" src={smsAndroidHomeScreen} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
39
- <div className="lock-msgContainer wechat">
40
- <div className="sender-id-text">
41
- {this.props.intl.formatMessage(messages.senderId)}
42
- </div>
43
- <div className="message-text-container">
44
- <CapLabel type="label1" style={{ height: '15px' }} >{content}</CapLabel>
45
- </div>
46
- </div>
47
- <div className="action-text">
48
- <FormattedMessage {...messages.markAsRead}/> <FormattedMessage {...messages.reply}/>
49
- </div>
50
- </div>
51
- <div className="main-screen-preview">
52
- <CapImage className="preview-image" src={wechatMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
53
- <div className="msgContainer wechat">
54
- <div className="message-pop wechat align-left" style={{ background: '#ffffff', color: '#333333' }}>
55
- {content}
56
- </div>
57
- </div>
58
- </div>
59
- </div>
60
- );
61
-
62
- getWechatIosPreview = (content) => (
63
- <div className="shell-lock-screen-ios align-center" id="sms-preview">
64
- <div className="lock-screen-preview">
65
- <CapImage className="preview-image sms" src={smsIosHomeScreen} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
66
- <div className="lock-msgContainer wechat">
67
- <div className="sender-id-text">
68
- {this.props.intl.formatMessage(messages.senderId)}
69
- </div>
70
- <div className="message-text-container">
71
- <CapLabel type="label1" style={{ height: '15px' }} >{content}</CapLabel>
72
- </div>
73
- </div>
74
- <div className="action-text-reply">
75
- <FormattedMessage {...messages.reply}/>
76
- </div>
77
- <div className="action-text-cancel">
78
- <FormattedMessage {...messages.cancel}/>
79
- </div>
80
- </div>
81
- <div className="main-screen-preview">
82
- <CapImage className="preview-image" src={wechatMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
83
- <div className="msgContainer wechat">
84
- <div className="message-pop wechat align-left" style={{ background: '#ffffff', color: '#333333' }}>
85
- {content}
86
- </div>
87
- </div>
88
- </div>
89
- </div>
90
- );
91
-
92
- getSmsAndroidPreview = (content) => (
93
- <div className="shell-lock-screen-android align-center" id="sms-preview">
94
- <div className="lock-screen-preview">
95
- <CapImage className="preview-image sms" src={smsAndroidHomeScreen} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
96
- <div className="lock-msgContainer sms">
97
- <div className="sender-id-text">
98
- {this.props.intl.formatMessage(messages.senderId)}
99
- </div>
100
- <div className="message-text-container">
101
- <CapLabel type="label1" style={{ height: '15px' }} >{content}</CapLabel>
102
- </div>
103
- </div>
104
- <div className="action-text">
105
- <FormattedMessage {...messages.markAsRead}/> <FormattedMessage {...messages.reply}/>
106
- </div>
107
- </div>
108
- <div className="main-screen-preview">
109
- <CapImage className="preview-image sms" src={smsMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
110
- <div className="msgContainer sms">
111
- <div className={"message-pop sms"}>
112
- {content && content.length && content.map((msg) =>
113
- <CapColumn className="message-pop-item align-left" style={{ background: '#FFFFFF', color: '#091e42'}}>
114
- {msg}
115
- </CapColumn>)
116
- }
117
- </div>
118
- </div>
119
- </div>
120
- </div>
121
- );
122
-
123
- getSmsIosPreview = (content) => (
124
- <div className="shell-lock-screen-ios align-center" id="sms-preview">
125
- <div className="lock-screen-preview">
126
- <CapImage className="preview-image sms" src={smsIosHomeScreen} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
127
- <div className="lock-msgContainer sms">
128
- <div className="sender-id-text">
129
- {this.props.intl.formatMessage(messages.senderId)}
130
- </div>
131
- <div className="message-text-container">
132
- <CapLabel type="label1" style={{ height: '15px' }} >{content}</CapLabel>
133
- </div>
134
- </div>
135
- <div className="action-text-reply">
136
- <FormattedMessage {...messages.reply}/>
137
- </div>
138
- <div className="action-text-cancel">
139
- <FormattedMessage {...messages.cancel}/>
140
- </div>
141
- </div>
142
- <div className="main-screen-preview">
143
- <CapImage className="preview-image sms" src={smsMobileIos} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
144
- <div className="msgContainer sms">
145
- <div className={"message-pop sms"}>
146
- {content && content.length && content.map((msg) =>
147
- <CapColumn className="message-pop-item align-left" style={{ background: '#ebecf0', color: '#091e42'}}>
148
- {msg}
149
- </CapColumn>)
150
- }
151
- </div>
152
- </div>
153
- </div>
154
- </div>
155
- );
156
-
157
- renderLineMultiText = (content) => {
158
- let textCount = 0;
159
- return content.map((item) => {
160
- const { type, messageContent = '' } = item || {};
161
- if (type === 'text' && messageContent) {
162
- textCount += 1;
163
- return (
164
- <p style={{fontSize: 16, fontWeight: "bold", margin: 0}}>
165
- text msg-{textCount}: ({messageContent.length}/{1600} characters)
166
- </p>
167
- )
168
- }
169
- return null
170
- });
171
- }
172
-
173
- render() {
174
-
175
- const channel = this.props.channel;
176
- let content = channel && channel.toLowerCase() === 'sms' ? [this.props.content] : this.props.content;
177
- let smsDetails = {};
178
- // let smsText = '';
179
- if (this.props.content && this.props.charCounterEnabled) {
180
- smsDetails = updateCharCount(this.props.content, this.props.unicodeEnabled);
181
- content = [];
182
- for (let i = 0, limit = 0; i < smsDetails.parts; i += 1, limit += smsDetails.chars_sms) {
183
- content.push(smsDetails.char_list.slice(limit, smsDetails.chars_sms * (i + 1)));
184
- }
185
- if (document.getElementById("msg_count")) {
186
- document.getElementById("msg_count").val = smsDetails.parts;
187
- }
188
- //smsText = this.props.intl.formatMessage(messages.previewGenerationMessage);
189
- //
190
- }
191
- const showLockScreenPreview = !!this.props.showLockScreenPreview;
192
- const type = this.props.location && this.props.location.query.type ? this.props.location.query.type : '';
193
- const { containsUnicodeContent = false } = this.props;
194
- let iosActions = [];
195
- if ((channel || '').toLowerCase() === "mobilepush") {
196
- iosActions = _.map(content.actions, (action) => {
197
- if (action.label) {
198
- return (<div className="actions">
199
- <span className="action">{action.label.toUpperCase()}</span>
200
- </div>);
201
- }
202
- return undefined;
203
- });
204
- }
205
-
206
- const getVideoContent = ({
207
- video,
208
- actionUrl,
209
- sectionStyle,
210
- }) => (
211
- <div
212
- className="message-pop align-left"
213
- style={{
214
- ...sectionStyle,
215
- minHeight: 184,
216
- display: 'flex',
217
- justifyContent: 'center',
218
- alignItems: 'center',
219
- backgroundColor: !video ? 'transparent' : CAP_G06,
220
- marginTop: 0,
221
- padding: 0,
222
- }}
223
- key={video}
224
- >
225
- {
226
- video
227
- ? (
228
- <>
229
- <video style={{ opacity: 0.5, width: '100%' }}>
230
- <source src={video} type="video/mp4" />
231
- </video>
232
- <div
233
- style={{
234
- position: 'absolute',
235
- display: 'flex',
236
- flexDirection: 'column',
237
- }}
238
- >
239
- <CapButton
240
- className="preview-video-btn"
241
- type="flat"
242
- >
243
- <CapIcon type="play"/>
244
- <FormattedMessage {...messages.playVideo} />
245
- </CapButton>
246
- {
247
- actionUrl
248
- ? (
249
- <CapButton
250
- className="preview-video-btn"
251
- type="flat"
252
- >
253
- <CapIcon type="reply" style={{ fontSize: 18 }}/>
254
- <FormattedMessage {...messages.showDetails} />
255
- </CapButton>
256
- )
257
- : null
258
- }
259
- </div>
260
- </>
261
- )
262
- : (
263
- <CapImage
264
- src={lineVideoPlaceholder}
265
- alt="brand-name"
266
- rest={{
267
- style: {
268
- width: 126,
269
- marginBottom: 5,
270
- },
271
- }}
272
- />
273
- )
274
- }
275
- </div>
276
- );
277
-
278
- return (
279
- <div className={`preview-container ${type === 'embedded' ? 'embedded-preview' : ''}`}>
280
- { (channel || '').toLowerCase() === 'sms' &&
281
- (showLockScreenPreview ? (
282
- <CapTab
283
- panes={[
284
- {
285
- content: this.getSmsAndroidPreview(content),
286
- tab: <CapIcon type="android" size="m" />,
287
- key: 'android',
288
- },
289
- {
290
- content: this.getSmsIosPreview(content),
291
- tab: <CapIcon type="ios" size="m" />,
292
- key: 'ios',
293
- },
294
- ]}
295
- tabBarStyle={{margin: 'auto', width: '14%'}}
296
- />
297
- ) : (
298
- <div className="shell align-center" id="sms-preview">
299
- <CapImage className="preview-image sms" src={smsMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
300
- <div className="msgContainer sms">
301
- <div className={"message-pop sms"}>
302
- {content && content.length && content.map((msg) =>
303
- <CapColumn className="message-pop-item align-left" style={{ background: '#FFFFFF', color: '#091e42'}}>
304
- {msg}
305
- </CapColumn>)
306
- }
307
- </div>
308
- </div>
309
- </div>)
310
- )}
311
- {(channel || '').toLowerCase() === 'wechat' &&
312
- (showLockScreenPreview ? (
313
- <CapTab
314
- panes={[
315
- {
316
- content: this.getWechatAndroidPreview(content),
317
- tab: <CapIcon type="android" size="m" />,
318
- key: 'android',
319
- },
320
- {
321
- content: this.getWechatIosPreview(content),
322
- tab: <CapIcon type="ios" size="m" />,
323
- key: 'ios',
324
- },
325
- ]}
326
- tabBarStyle={{margin: 'auto', width: '14%'}}
327
- />
328
- ) : (
329
- <div className="shell align-center" id="sms-preview">
330
- <CapImage className="preview-image" src={(channel || '').toLowerCase() === 'wechat' ? wechatMobileAndroid : smsBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
331
- <div className="msgContainer">
332
- <div className="message-pop align-left" style={{ background: `${(this.props.channel || '').toLowerCase() === 'wechat' ? '#ffffff' : '#3F51B5'}`, color: `${(this.props.channel || '').toLowerCase() === 'wechat' ? '#333333' : '#ffffff'}`}}>{content}
333
- </div>
334
- </div>
335
- </div>
336
- )
337
- )}
338
- { (channel || '').toLowerCase() === 'mobilepush' &&
339
- (<div className="shell align-center" id="mobilepush-preview">
340
- <CapImage className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
341
- {(!!content.header || !!content.bodyText || !!content.bodyImage) &&
342
- <div className={`${this.props.device}-push-message-Container`}>
343
- {this.props.device === "android" ?
344
- <div className="message-pop align-left">
345
- <div className="app-name">
346
- <span className="app-icon"></span> {content.appName ? content.appName : "App name"}
347
- </div>
348
- <div className="title">
349
- {content.header}
350
- </div>
351
- <div className="body-text">
352
- {content.bodyText}
353
- </div>
354
- {content.bodyImage && <div className="body-image">
355
- <CapImage src={content.bodyImage} alt="" />
356
- </div>}
357
- {content.actions.filter((action) => action.label).length ?
358
- <div className="actions">
359
- {_.map(content.actions, (action) => !!action.label &&
360
- <span className="action">{action.label && action.label.toUpperCase()}</span>)}
361
- </div>
362
- : ''
363
- }
364
- </div>
365
- :
366
- <div className="message-pop align-left">
367
- <div className="app-name">
368
- <span className="app-icon"></span>{content.appName ? content.appName : "App name"} <i className="material-icons">{this.props.intl.formatMessage(messages.close)}</i>
369
- </div>
370
- {content.bodyImage && <div className="body-image">
371
- <CapImage src={content.bodyImage} alt=""/>
372
- </div>}
373
- <div className="title">
374
- {content.header}
375
- </div>
376
- <div className="body-text">
377
- {content.bodyText}
378
- </div>
379
- {content.actions.filter((action) => action.label).length ? iosActions : ''}
380
- </div>
381
- }
382
- </div>
383
- }
384
- </div>
385
- )
386
- }
387
- {
388
- (channel || '').toLowerCase() === 'line' ? (
389
- <div className="shell align-center" id="sms-preview">
390
- <CapImage className="preview-image" src={wechatBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
391
- {
392
- content && Array.isArray(content)
393
- ? (
394
- <>
395
- <div
396
- className="msgContainer line-preview"
397
- style={{
398
- maxHeight: 300,
399
- overflow: 'scroll',
400
- flexDirection: 'column',
401
- marginLeft: 40,
402
- left: '20%',
403
- }}
404
- >
405
- <div
406
- className="sms-icon"
407
- style={{
408
- width: 25,
409
- height: 25,
410
- background: '#2E89DF',
411
- borderRadius: '50%',
412
- paddingTop: 2,
413
- top: 12,
414
- }}
415
- >
416
- {this.props.lineAccountName}
417
- </div>
418
- {
419
- content.map((item) => {
420
- const {
421
- type,
422
- messageContent,
423
- previewImageUrl = lineImgPlaceholder,
424
- baseUrl,
425
- selectedSticker = {
426
- stickerUrl: lineStickerPlaceholder,
427
- },
428
- imageCarousel = [lineImgPlaceholder],
429
- video,
430
- actionUrl,
431
- } = item || {};
432
- const sectionStyle = {
433
- background: CAP_WHITE,
434
- color: FONT_COLOR_01,
435
- borderRadius: 8,
436
- position: 'static',
437
- margin: '6px 0 20px 28px',
438
- height: 'auto',
439
- minHeight: 'auto',
440
- overflow: 'initial',
441
- maxHeight: 'initial',
442
- };
443
- if (type === TEXT) {
444
- return (
445
- <div
446
- className="message-pop align-left"
447
- style={sectionStyle}
448
- >
449
- <p style={{ marginBottom: 5 }}>{messageContent || ''}</p>
450
- </div>
451
- );
452
- }
453
- if ((type === IMAGE && previewImageUrl)) {
454
- return (
455
- <div
456
- className="message-pop align-left"
457
- style={{
458
- ...sectionStyle,
459
- minHeight: 184,
460
- display: 'flex',
461
- justifyContent: 'center',
462
- alignItems: 'center',
463
- }}
464
- >
465
- <CapImage
466
- src={previewImageUrl}
467
- className="line-image-preview"
468
- alt="brand-name"
469
- rest={{
470
- style: {
471
- maxWidth: '100%',
472
- marginBottom: 5,
473
- },
474
- }}
475
- />
476
- </div>
477
- );
478
- }
479
- if (type === VIDEO) {
480
- return getVideoContent({ video, actionUrl, sectionStyle });
481
- }
482
- if ((type === IMAGE_MAP_CAMEL_CASE && baseUrl)) {
483
- if (video) {
484
- return getVideoContent({ video, actionUrl, sectionStyle });
485
- }
486
- return (
487
- <div
488
- className="message-pop align-left"
489
- style={{
490
- ...sectionStyle,
491
- minHeight: 184,
492
- display: 'flex',
493
- justifyContent: 'center',
494
- alignItems: 'center',
495
- }}
496
- >
497
- <CapImage
498
- src={baseUrl ? `${baseUrl}/1040` : lineImgPlaceholder}
499
- className="line-image-preview"
500
- alt="brand-name"
501
- rest={{
502
- style: {
503
- maxWidth: '100%',
504
- marginBottom: 5,
505
- },
506
- }}
507
- />
508
- </div>
509
- );
510
- }
511
- if (type === STICKER && selectedSticker) {
512
- return (
513
- <div
514
- className="message-pop align-left"
515
- style={{
516
- ...sectionStyle,
517
- background: 'transparent',
518
- display: 'flex',
519
- justifyContent: 'center',
520
- alignItems: 'center',
521
- }}
522
- >
523
- <CapImage
524
- src={selectedSticker.stickerUrl}
525
- style={{maxWidth: '100%', marginBottom: 5 }}
526
- rest={{
527
- style: {
528
- maxWidth: '100%',
529
- marginBottom: 5,
530
- },
531
- height: 70,
532
- onMouseOut: e => (e.currentTarget.src = selectedSticker.stickerUrl),
533
- onMouseOver: e => (e.currentTarget.src = selectedSticker.animatedStickerUrl || selectedSticker.stickerUrl),
534
- }}
535
- />
536
- </div>
537
- );
538
- }
539
- if ((type === IMAGE_CAROUSEL || type === TEMPLATE) && imageCarousel) {
540
- return (
541
- <div
542
- style={{
543
- margin: '40px 0 8px',
544
- }}
545
- >
546
- <Carousel imageCarousel={imageCarousel}/>
547
- </div>
548
- )
549
- }
550
- return null;
551
- })
552
- }
553
- </div>
554
- {this.renderLineMultiText(content)}
555
- </>
556
- )
557
- : (
558
- <>
559
- <div className="msgContainer line-preview">
560
- <div className="sms-icon" style={{ width: '25px', height: '25px', background: '#2E89DF' }}></div>
561
- <div className="message-pop align-left" style={{ background: '#ffffff', color: '#333333' }}>
562
- { (content && content.bodyImage) ? <CapImage src={content.bodyImage} alt="ddd" style={{maxWidth: '100%'}}/> : '' }
563
- { (content && content.bodyText) ? content.bodyText : ''}
564
- </div>
565
- </div>
566
- { (content && content.bodyText) ? <p style={{fontSize: 16, fontWeight: "bold"}}>Chars Count: {content.bodyText.length} / (1600)</p> : '' }
567
- </>
568
- )
569
- }
570
-
571
- </div>
572
- ) : ''
573
- }
574
- {
575
- this.props.charCounterEnabled && !_.isEmpty(smsDetails) ?
576
- <div>
577
- <p className="preview-info">
578
- {smsDetails.unicode &&
579
- <div style={{fontSize: '16px'}}>{`${this.props.intl.formatMessage(messages.smsFormatType)}`}</div>
580
- }
581
- <div style={{marginTop: '8px', fontSize: '16px', display: 'inline-flex'}} >
582
- {`${smsDetails.parts} ${this.props.intl.formatMessage(messages.sms)} (${smsDetails.chars_used} ${this.props.intl.formatMessage(messages.characters)})`}
583
- {containsUnicodeContent &&
584
- <CapTooltip
585
- title={this.props.intl.formatMessage(
586
- messages.unicodeIconTooltip,
587
- )}
588
- >
589
- <CapIcon type="unicode" style={{ marginLeft: 4 }} />
590
- </CapTooltip>
591
- }
592
- </div>
593
- {smsDetails.optoutUrlPresent && <div style={{fontWeight: '100', fontSize: '12px'}}>
594
- {`${this.props.intl.formatMessage(messages.includesOptoutTag)} (${smsDetails.optouturlLength} ${this.props.intl.formatMessage(messages.characters)})`}
595
- </div>}
596
- </p>
597
- </div>
598
- : ''
599
- }
600
- </div>
601
- );
602
- }
603
- }
604
- TemplatePreview.propTypes = {
605
- content: PropTypes.oneOfType([
606
- PropTypes.object,
607
- PropTypes.string,
608
- ]),
609
- channel: PropTypes.string,
610
- charCounterEnabled: PropTypes.bool,
611
- location: PropTypes.object,
612
- intl: intlShape.isRequired,
613
- device: PropTypes.string,
614
- unicodeEnabled: PropTypes.bool,
615
- };
616
-
617
- export default (injectIntl(TemplatePreview));