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