@capillarytech/creatives-library 8.0.162 → 8.0.164

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