@capillarytech/creatives-library 8.0.155 → 8.0.157

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 (293) hide show
  1. package/constants/unified.js +189 -0
  2. package/index.js +4 -2
  3. package/package.json +2 -2
  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/authWrapper.test.js +1 -1
  12. package/utils/tests/checkStore.test.js +1 -1
  13. package/utils/tests/customAuth.test.js +1 -1
  14. package/utils/transformerUtils.js +1 -1
  15. package/v2Components/CapTagList/index.js +9 -14
  16. package/v2Components/Carousel/style.scss +1 -1
  17. package/v2Components/EmailMobilePreview/index.js +2 -2
  18. package/v2Components/FormBuilder/index.js +2 -2
  19. package/v2Components/TemplatePreview/index.js +2 -1
  20. package/v2Containers/Cap/tests/saga.test.js +1 -1
  21. package/v2Containers/Email/index.js +1 -1
  22. package/v2Containers/FTP/index.js +1 -1
  23. package/v2Containers/Line/Container/Text/index.js +1 -1
  24. package/v2Containers/Sms/Create/index.js +2 -2
  25. package/v2Containers/Sms/Edit/index.js +1 -1
  26. package/v2Containers/TagList/index.js +1 -1
  27. package/v2Containers/TagList/utils.js +1 -1
  28. package/v2Containers/Templates/index.js +1 -1
  29. package/v2Containers/Templates/sagas.js +1 -1
  30. package/components/BreadCrumbs/index.js +0 -65
  31. package/components/BreadCrumbs/messages.js +0 -13
  32. package/components/CapTagList/index.js +0 -235
  33. package/components/CapTagList/messages.js +0 -45
  34. package/components/Card/_customCard.scss +0 -40
  35. package/components/Card/index.js +0 -78
  36. package/components/Card/tests/__snapshots__/index.test.js.snap +0 -22
  37. package/components/Card/tests/index.test.js +0 -20
  38. package/components/CardGrid/index.js +0 -71
  39. package/components/Ckeditor/index.js +0 -238
  40. package/components/Ckeditor/messages.js +0 -13
  41. package/components/Ckeditor/style.scss +0 -3
  42. package/components/Component/index.js +0 -29
  43. package/components/CustomPopOver/index.js +0 -81
  44. package/components/CustomPopOver/messages.js +0 -17
  45. package/components/DateFilter/index.js +0 -349
  46. package/components/DateFilter/messages.js +0 -57
  47. package/components/DateRange/index.js +0 -114
  48. package/components/DateRange/messages.js +0 -25
  49. package/components/Edmeditor/index.js +0 -65
  50. package/components/Edmeditor/messages.js +0 -13
  51. package/components/EmailPreview/_emailPreview.scss +0 -119
  52. package/components/EmailPreview/assets/images/iPad.svg +0 -10
  53. package/components/EmailPreview/assets/images/mobile.png +0 -0
  54. package/components/EmailPreview/index.js +0 -107
  55. package/components/EmailPreview/messages.js +0 -33
  56. package/components/Footer/index.js +0 -27
  57. package/components/Footer/messages.js +0 -13
  58. package/components/FormBuilder/_formBuilder.scss +0 -83
  59. package/components/FormBuilder/index.js +0 -3279
  60. package/components/FormBuilder/messages.js +0 -61
  61. package/components/Header/index.js +0 -44
  62. package/components/Header/messages.js +0 -29
  63. package/components/ImagePreview/_imagePreview.scss +0 -63
  64. package/components/ImagePreview/index.js +0 -52
  65. package/components/ImagePreview/messages.js +0 -17
  66. package/components/PageHeader/_pageHeader.scss +0 -22
  67. package/components/PageHeader/index.js +0 -37
  68. package/components/PageHeader/messages.js +0 -13
  69. package/components/Pagination/_pagination.scss +0 -5
  70. package/components/Pagination/index.js +0 -49
  71. package/components/PreviewSideBar/_previewsidebar.scss +0 -28
  72. package/components/PreviewSideBar/index.js +0 -152
  73. package/components/PreviewSideBar/messages.js +0 -41
  74. package/components/Sidebar/_sidebar.scss +0 -115
  75. package/components/Sidebar/index.js +0 -214
  76. package/components/Sidebar/messages.js +0 -21
  77. package/components/SlideBox/_slideBox.scss +0 -63
  78. package/components/SlideBox/index.js +0 -47
  79. package/components/SlideBox/tests/index.test.js +0 -103
  80. package/components/SmsEditor/index.js +0 -55
  81. package/components/SmsTest/index.js +0 -117
  82. package/components/SmsTest/messages.js +0 -21
  83. package/components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +0 -42
  84. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +0 -141
  85. package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +0 -21
  86. package/components/TemplatePreview/_templatePreview.scss +0 -642
  87. package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  88. package/components/TemplatePreview/assets/images/androidPushMessage.svg +0 -45
  89. package/components/TemplatePreview/assets/images/home-screen-android.svg +0 -21
  90. package/components/TemplatePreview/assets/images/home-screen-ios.svg +0 -16
  91. package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +0 -135
  92. package/components/TemplatePreview/assets/images/mobile.svg +0 -24
  93. package/components/TemplatePreview/assets/images/sms-body.png +0 -0
  94. package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
  95. package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
  96. package/components/TemplatePreview/assets/images/sms_mobile_android.svg +0 -22
  97. package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +0 -16
  98. package/components/TemplatePreview/assets/images/user-icon.svg +0 -19
  99. package/components/TemplatePreview/assets/images/wechat-mobile.svg +0 -78
  100. package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +0 -20
  101. package/components/TemplatePreview/index.js +0 -617
  102. package/components/TemplatePreview/messages.js +0 -78
  103. package/components/Toastr/index.js +0 -60
  104. package/components/Toastr/messages.js +0 -13
  105. package/components/ToastrMessage/index.js +0 -113
  106. package/components/ToastrMessage/messages.js +0 -17
  107. package/components/TopBar/_topbar.scss +0 -46
  108. package/components/TopBar/assets/images/capillary_logo.png +0 -0
  109. package/components/TopBar/assets/images/old_capillary_logo.png +0 -0
  110. package/components/TopBar/index.js +0 -113
  111. package/components/TopBar/messages.js +0 -29
  112. package/containers/App/actions.js +0 -7
  113. package/containers/App/constants.js +0 -114
  114. package/containers/App/index.js +0 -52
  115. package/containers/App/reducer.js +0 -19
  116. package/containers/App/sagas.js +0 -31
  117. package/containers/App/selectors.js +0 -25
  118. package/containers/App/test/saga.test.js +0 -11
  119. package/containers/Assets/Gallery/_gallery.scss +0 -126
  120. package/containers/Assets/Gallery/actions.js +0 -37
  121. package/containers/Assets/Gallery/constants.js +0 -23
  122. package/containers/Assets/Gallery/index.js +0 -473
  123. package/containers/Assets/Gallery/messages.js +0 -93
  124. package/containers/Assets/Gallery/reducer.js +0 -81
  125. package/containers/Assets/Gallery/sagas.js +0 -80
  126. package/containers/Assets/Gallery/selectors.js +0 -25
  127. package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +0 -9
  128. package/containers/Assets/Gallery/tests/actions.test.js +0 -25
  129. package/containers/Assets/Gallery/tests/reducer.test.js +0 -96
  130. package/containers/Assets/Gallery/tests/saga.test.js +0 -157
  131. package/containers/Cap/actions.js +0 -66
  132. package/containers/Cap/constants.js +0 -25
  133. package/containers/Cap/index.js +0 -402
  134. package/containers/Cap/messages.js +0 -75
  135. package/containers/Cap/reducer.js +0 -113
  136. package/containers/Cap/sagas.js +0 -159
  137. package/containers/Cap/selectors.js +0 -75
  138. package/containers/Cap/tests/__snapshots__/index.test.js.snap +0 -2270
  139. package/containers/Cap/tests/index.test.js +0 -22
  140. package/containers/Cap/tests/saga.test.js +0 -284
  141. package/containers/Dashboard/actions.js +0 -15
  142. package/containers/Dashboard/constants.js +0 -7
  143. package/containers/Dashboard/index.js +0 -76
  144. package/containers/Dashboard/messages.js +0 -13
  145. package/containers/Dashboard/reducer.js +0 -21
  146. package/containers/Dashboard/sagas.js +0 -17
  147. package/containers/Dashboard/selectors.js +0 -25
  148. package/containers/Dashboard/test/saga.test.js +0 -9
  149. package/containers/Ebill/_ebill.scss +0 -5
  150. package/containers/Ebill/actions.js +0 -43
  151. package/containers/Ebill/constants.js +0 -20
  152. package/containers/Ebill/index.js +0 -1278
  153. package/containers/Ebill/messages.js +0 -77
  154. package/containers/Ebill/reducer.js +0 -72
  155. package/containers/Ebill/sagas.js +0 -74
  156. package/containers/Ebill/selectors.js +0 -25
  157. package/containers/Ebill/test/saga.test.js +0 -11
  158. package/containers/Email/_email.scss +0 -141
  159. package/containers/Email/actions.js +0 -81
  160. package/containers/Email/constants.js +0 -36
  161. package/containers/Email/index.js +0 -3325
  162. package/containers/Email/messages.js +0 -289
  163. package/containers/Email/reducer.js +0 -142
  164. package/containers/Email/sagas.js +0 -135
  165. package/containers/Email/selectors.js +0 -31
  166. package/containers/Email/test/saga.test.js +0 -671
  167. package/containers/LanguageProvider/actions.js +0 -17
  168. package/containers/LanguageProvider/constants.js +0 -8
  169. package/containers/LanguageProvider/index.js +0 -80
  170. package/containers/LanguageProvider/reducer.js +0 -30
  171. package/containers/LanguageProvider/selectors.js +0 -20
  172. package/containers/LanguageProvider/tests/actions.test.js +0 -19
  173. package/containers/LanguageProvider/tests/index.test.js +0 -78
  174. package/containers/LanguageProvider/tests/reducer.test.js +0 -20
  175. package/containers/LanguageProvider/tests/selectors.test.js +0 -15
  176. package/containers/Line/Create/_lineCreate.scss +0 -54
  177. package/containers/Line/Create/actions.js +0 -90
  178. package/containers/Line/Create/constants.js +0 -39
  179. package/containers/Line/Create/index.js +0 -836
  180. package/containers/Line/Create/messages.js +0 -189
  181. package/containers/Line/Create/reducer.js +0 -99
  182. package/containers/Line/Create/sagas.js +0 -121
  183. package/containers/Line/Create/selectors.js +0 -36
  184. package/containers/Line/Create/tests/saga.test.js +0 -202
  185. package/containers/Line/Edit/_lineEdit.scss +0 -35
  186. package/containers/Line/Edit/actions.js +0 -79
  187. package/containers/Line/Edit/constants.js +0 -27
  188. package/containers/Line/Edit/index.js +0 -1050
  189. package/containers/Line/Edit/messages.js +0 -177
  190. package/containers/Line/Edit/reducer.js +0 -83
  191. package/containers/Line/Edit/sagas.js +0 -80
  192. package/containers/Line/Edit/selectors.js +0 -29
  193. package/containers/Line/Edit/test/saga.test.js +0 -160
  194. package/containers/Login/assets/images/capillary_logo.png +0 -0
  195. package/containers/Login/components/LoginForm/index.js +0 -62
  196. package/containers/Login/components/LoginForm/messages.js +0 -33
  197. package/containers/Login/index.js +0 -130
  198. package/containers/Login/messages.js +0 -25
  199. package/containers/Login/selectors.js +0 -25
  200. package/containers/MobilePush/Create/_mobilePushCreate.scss +0 -39
  201. package/containers/MobilePush/Create/actions.js +0 -46
  202. package/containers/MobilePush/Create/constants.js +0 -23
  203. package/containers/MobilePush/Create/index.js +0 -2303
  204. package/containers/MobilePush/Create/messages.js +0 -269
  205. package/containers/MobilePush/Create/reducer.js +0 -70
  206. package/containers/MobilePush/Create/sagas.js +0 -74
  207. package/containers/MobilePush/Create/selectors.js +0 -28
  208. package/containers/MobilePush/Create/test/saga.test.js +0 -19
  209. package/containers/MobilePush/Edit/_mobilePushCreate.scss +0 -39
  210. package/containers/MobilePush/Edit/actions.js +0 -91
  211. package/containers/MobilePush/Edit/constants.js +0 -35
  212. package/containers/MobilePush/Edit/index.js +0 -2601
  213. package/containers/MobilePush/Edit/messages.js +0 -266
  214. package/containers/MobilePush/Edit/reducer.js +0 -112
  215. package/containers/MobilePush/Edit/sagas.js +0 -126
  216. package/containers/MobilePush/Edit/selectors.js +0 -29
  217. package/containers/MobilePush/Edit/tests/saga.test.js +0 -255
  218. package/containers/NotFoundPage/index.js +0 -25
  219. package/containers/NotFoundPage/messages.js +0 -13
  220. package/containers/NotFoundPage/tests/index.test.js +0 -17
  221. package/containers/Sms/Create/_smsCreate.scss +0 -42
  222. package/containers/Sms/Create/actions.js +0 -27
  223. package/containers/Sms/Create/constants.js +0 -16
  224. package/containers/Sms/Create/index.js +0 -1488
  225. package/containers/Sms/Create/messages.js +0 -109
  226. package/containers/Sms/Create/reducer.js +0 -41
  227. package/containers/Sms/Create/sagas.js +0 -40
  228. package/containers/Sms/Create/selectors.js +0 -28
  229. package/containers/Sms/Create/test/saga.test.js +0 -11
  230. package/containers/Sms/Edit/actions.js +0 -40
  231. package/containers/Sms/Edit/constants.js +0 -17
  232. package/containers/Sms/Edit/index.js +0 -1472
  233. package/containers/Sms/Edit/messages.js +0 -105
  234. package/containers/Sms/Edit/reducer.js +0 -50
  235. package/containers/Sms/Edit/sagas.js +0 -60
  236. package/containers/Sms/Edit/selectors.js +0 -32
  237. package/containers/Sms/Edit/test/saga.test.js +0 -13
  238. package/containers/TagList/_tagList.scss +0 -8
  239. package/containers/TagList/actions.js +0 -15
  240. package/containers/TagList/constants.js +0 -32
  241. package/containers/TagList/index.js +0 -236
  242. package/containers/TagList/messages.js +0 -13
  243. package/containers/TagList/reducer.js +0 -23
  244. package/containers/TagList/sagas.js +0 -11
  245. package/containers/TagList/selectors.js +0 -25
  246. package/containers/Templates/_templates.scss +0 -333
  247. package/containers/Templates/actions.js +0 -103
  248. package/containers/Templates/constants.js +0 -60
  249. package/containers/Templates/index.js +0 -1756
  250. package/containers/Templates/messages.js +0 -337
  251. package/containers/Templates/reducer.js +0 -142
  252. package/containers/Templates/sagas.js +0 -163
  253. package/containers/Templates/selectors.js +0 -28
  254. package/containers/Templates/test/saga.test.js +0 -241
  255. package/containers/WeChat/MapTemplates/_mapTemplates.scss +0 -8
  256. package/containers/WeChat/MapTemplates/actions.js +0 -52
  257. package/containers/WeChat/MapTemplates/constants.js +0 -28
  258. package/containers/WeChat/MapTemplates/index.js +0 -1610
  259. package/containers/WeChat/MapTemplates/messages.js +0 -157
  260. package/containers/WeChat/MapTemplates/reducer.js +0 -74
  261. package/containers/WeChat/MapTemplates/sagas.js +0 -84
  262. package/containers/WeChat/MapTemplates/selectors.js +0 -25
  263. package/containers/WeChat/MapTemplates/test/saga.test.js +0 -155
  264. package/containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +0 -57
  265. package/containers/WeChat/RichmediaTemplates/Create/actions.js +0 -36
  266. package/containers/WeChat/RichmediaTemplates/Create/constants.js +0 -15
  267. package/containers/WeChat/RichmediaTemplates/Create/index.js +0 -1071
  268. package/containers/WeChat/RichmediaTemplates/Create/messages.js +0 -165
  269. package/containers/WeChat/RichmediaTemplates/Create/reducer.js +0 -60
  270. package/containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +0 -497
  271. package/containers/WeChat/RichmediaTemplates/Create/sagas.js +0 -51
  272. package/containers/WeChat/RichmediaTemplates/Create/selectors.js +0 -37
  273. package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +0 -13
  274. package/containers/WeChat/RichmediaTemplates/Edit/actions.js +0 -20
  275. package/containers/WeChat/RichmediaTemplates/Edit/constants.js +0 -10
  276. package/containers/WeChat/RichmediaTemplates/Edit/index.js +0 -136
  277. package/containers/WeChat/RichmediaTemplates/Edit/messages.js +0 -13
  278. package/containers/WeChat/RichmediaTemplates/Edit/reducer.js +0 -28
  279. package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +0 -36
  280. package/containers/WeChat/RichmediaTemplates/Edit/selectors.js +0 -30
  281. package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +0 -12
  282. package/containers/WeChat/RichmediaTemplates/View/actions.js +0 -15
  283. package/containers/WeChat/RichmediaTemplates/View/constants.js +0 -7
  284. package/containers/WeChat/RichmediaTemplates/View/index.js +0 -47
  285. package/containers/WeChat/RichmediaTemplates/View/messages.js +0 -21
  286. package/containers/WeChat/RichmediaTemplates/View/reducer.js +0 -23
  287. package/containers/WeChat/RichmediaTemplates/View/sagas.js +0 -11
  288. package/containers/WeChat/RichmediaTemplates/View/selectors.js +0 -25
  289. package/utils/asyncInjectors.js +0 -78
  290. package/utils/callNativeEvent.js +0 -16
  291. package/utils/checkStore.js +0 -21
  292. package/utils/customAuthWrapper.js +0 -62
  293. package/utils/customConnectedAuthWrapper.js +0 -26
@@ -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));