@capillarytech/creatives-library 8.0.136-alpha.4 → 8.0.136-beta.3

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 (292) hide show
  1. package/components/BreadCrumbs/index.js +65 -0
  2. package/components/BreadCrumbs/messages.js +13 -0
  3. package/components/CapTagList/index.js +235 -0
  4. package/components/CapTagList/messages.js +45 -0
  5. package/components/Card/_customCard.scss +40 -0
  6. package/components/Card/index.js +78 -0
  7. package/components/Card/tests/__snapshots__/index.test.js.snap +22 -0
  8. package/components/Card/tests/index.test.js +20 -0
  9. package/components/CardGrid/index.js +71 -0
  10. package/components/Ckeditor/index.js +238 -0
  11. package/components/Ckeditor/messages.js +13 -0
  12. package/components/Ckeditor/style.scss +3 -0
  13. package/components/Component/index.js +29 -0
  14. package/components/CustomPopOver/index.js +81 -0
  15. package/components/CustomPopOver/messages.js +17 -0
  16. package/components/DateFilter/index.js +349 -0
  17. package/components/DateFilter/messages.js +57 -0
  18. package/components/DateRange/index.js +114 -0
  19. package/components/DateRange/messages.js +25 -0
  20. package/components/Edmeditor/index.js +65 -0
  21. package/components/Edmeditor/messages.js +13 -0
  22. package/components/EmailPreview/_emailPreview.scss +119 -0
  23. package/components/EmailPreview/assets/images/iPad.svg +10 -0
  24. package/components/EmailPreview/assets/images/mobile.png +0 -0
  25. package/components/EmailPreview/index.js +107 -0
  26. package/components/EmailPreview/messages.js +33 -0
  27. package/components/Footer/index.js +27 -0
  28. package/components/Footer/messages.js +13 -0
  29. package/components/FormBuilder/_formBuilder.scss +83 -0
  30. package/components/FormBuilder/index.js +3279 -0
  31. package/components/FormBuilder/messages.js +61 -0
  32. package/components/Header/index.js +44 -0
  33. package/components/Header/messages.js +29 -0
  34. package/components/ImagePreview/_imagePreview.scss +63 -0
  35. package/components/ImagePreview/index.js +52 -0
  36. package/components/ImagePreview/messages.js +17 -0
  37. package/components/PageHeader/_pageHeader.scss +22 -0
  38. package/components/PageHeader/index.js +37 -0
  39. package/components/PageHeader/messages.js +13 -0
  40. package/components/Pagination/_pagination.scss +5 -0
  41. package/components/Pagination/index.js +49 -0
  42. package/components/PreviewSideBar/_previewsidebar.scss +28 -0
  43. package/components/PreviewSideBar/index.js +152 -0
  44. package/components/PreviewSideBar/messages.js +41 -0
  45. package/components/Sidebar/_sidebar.scss +115 -0
  46. package/components/Sidebar/index.js +214 -0
  47. package/components/Sidebar/messages.js +21 -0
  48. package/components/SlideBox/_slideBox.scss +63 -0
  49. package/components/SlideBox/index.js +47 -0
  50. package/components/SlideBox/tests/index.test.js +103 -0
  51. package/components/SmsEditor/index.js +55 -0
  52. package/components/SmsTest/index.js +117 -0
  53. package/components/SmsTest/messages.js +21 -0
  54. package/components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +42 -0
  55. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +141 -0
  56. package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +21 -0
  57. package/components/TemplatePreview/_templatePreview.scss +642 -0
  58. package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  59. package/components/TemplatePreview/assets/images/androidPushMessage.svg +45 -0
  60. package/components/TemplatePreview/assets/images/home-screen-android.svg +21 -0
  61. package/components/TemplatePreview/assets/images/home-screen-ios.svg +16 -0
  62. package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +135 -0
  63. package/components/TemplatePreview/assets/images/mobile.svg +24 -0
  64. package/components/TemplatePreview/assets/images/sms-body.png +0 -0
  65. package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
  66. package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
  67. package/components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -0
  68. package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +16 -0
  69. package/components/TemplatePreview/assets/images/user-icon.svg +19 -0
  70. package/components/TemplatePreview/assets/images/wechat-mobile.svg +78 -0
  71. package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -0
  72. package/components/TemplatePreview/index.js +617 -0
  73. package/components/TemplatePreview/messages.js +78 -0
  74. package/components/Toastr/index.js +60 -0
  75. package/components/Toastr/messages.js +13 -0
  76. package/components/ToastrMessage/index.js +113 -0
  77. package/components/ToastrMessage/messages.js +17 -0
  78. package/components/TopBar/_topbar.scss +46 -0
  79. package/components/TopBar/assets/images/capillary_logo.png +0 -0
  80. package/components/TopBar/assets/images/old_capillary_logo.png +0 -0
  81. package/components/TopBar/index.js +113 -0
  82. package/components/TopBar/messages.js +29 -0
  83. package/containers/App/actions.js +7 -0
  84. package/containers/App/constants.js +114 -0
  85. package/containers/App/index.js +52 -0
  86. package/containers/App/reducer.js +19 -0
  87. package/containers/App/sagas.js +31 -0
  88. package/containers/App/selectors.js +25 -0
  89. package/containers/App/test/saga.test.js +11 -0
  90. package/containers/Assets/Gallery/_gallery.scss +126 -0
  91. package/containers/Assets/Gallery/actions.js +37 -0
  92. package/containers/Assets/Gallery/constants.js +23 -0
  93. package/containers/Assets/Gallery/index.js +473 -0
  94. package/containers/Assets/Gallery/messages.js +93 -0
  95. package/containers/Assets/Gallery/reducer.js +81 -0
  96. package/containers/Assets/Gallery/sagas.js +80 -0
  97. package/containers/Assets/Gallery/selectors.js +25 -0
  98. package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +9 -0
  99. package/containers/Assets/Gallery/tests/actions.test.js +25 -0
  100. package/containers/Assets/Gallery/tests/reducer.test.js +96 -0
  101. package/containers/Assets/Gallery/tests/saga.test.js +157 -0
  102. package/containers/Cap/actions.js +66 -0
  103. package/containers/Cap/constants.js +25 -0
  104. package/containers/Cap/index.js +402 -0
  105. package/containers/Cap/messages.js +75 -0
  106. package/containers/Cap/reducer.js +113 -0
  107. package/containers/Cap/sagas.js +159 -0
  108. package/containers/Cap/selectors.js +75 -0
  109. package/containers/Cap/tests/__snapshots__/index.test.js.snap +2269 -0
  110. package/containers/Cap/tests/index.test.js +22 -0
  111. package/containers/Cap/tests/saga.test.js +284 -0
  112. package/containers/Dashboard/actions.js +15 -0
  113. package/containers/Dashboard/constants.js +7 -0
  114. package/containers/Dashboard/index.js +76 -0
  115. package/containers/Dashboard/messages.js +13 -0
  116. package/containers/Dashboard/reducer.js +21 -0
  117. package/containers/Dashboard/sagas.js +17 -0
  118. package/containers/Dashboard/selectors.js +25 -0
  119. package/containers/Dashboard/test/saga.test.js +9 -0
  120. package/containers/Ebill/_ebill.scss +5 -0
  121. package/containers/Ebill/actions.js +43 -0
  122. package/containers/Ebill/constants.js +20 -0
  123. package/containers/Ebill/index.js +1278 -0
  124. package/containers/Ebill/messages.js +77 -0
  125. package/containers/Ebill/reducer.js +72 -0
  126. package/containers/Ebill/sagas.js +74 -0
  127. package/containers/Ebill/selectors.js +25 -0
  128. package/containers/Ebill/test/saga.test.js +11 -0
  129. package/containers/Email/_email.scss +141 -0
  130. package/containers/Email/actions.js +81 -0
  131. package/containers/Email/constants.js +36 -0
  132. package/containers/Email/index.js +3325 -0
  133. package/containers/Email/messages.js +289 -0
  134. package/containers/Email/reducer.js +142 -0
  135. package/containers/Email/sagas.js +135 -0
  136. package/containers/Email/selectors.js +31 -0
  137. package/containers/Email/test/saga.test.js +671 -0
  138. package/containers/LanguageProvider/actions.js +17 -0
  139. package/containers/LanguageProvider/constants.js +8 -0
  140. package/containers/LanguageProvider/index.js +80 -0
  141. package/containers/LanguageProvider/reducer.js +30 -0
  142. package/containers/LanguageProvider/selectors.js +20 -0
  143. package/containers/LanguageProvider/tests/actions.test.js +19 -0
  144. package/containers/LanguageProvider/tests/index.test.js +78 -0
  145. package/containers/LanguageProvider/tests/reducer.test.js +20 -0
  146. package/containers/LanguageProvider/tests/selectors.test.js +15 -0
  147. package/containers/Line/Create/_lineCreate.scss +54 -0
  148. package/containers/Line/Create/actions.js +90 -0
  149. package/containers/Line/Create/constants.js +39 -0
  150. package/containers/Line/Create/index.js +836 -0
  151. package/containers/Line/Create/messages.js +189 -0
  152. package/containers/Line/Create/reducer.js +99 -0
  153. package/containers/Line/Create/sagas.js +121 -0
  154. package/containers/Line/Create/selectors.js +36 -0
  155. package/containers/Line/Create/tests/saga.test.js +202 -0
  156. package/containers/Line/Edit/_lineEdit.scss +35 -0
  157. package/containers/Line/Edit/actions.js +79 -0
  158. package/containers/Line/Edit/constants.js +27 -0
  159. package/containers/Line/Edit/index.js +1050 -0
  160. package/containers/Line/Edit/messages.js +177 -0
  161. package/containers/Line/Edit/reducer.js +83 -0
  162. package/containers/Line/Edit/sagas.js +80 -0
  163. package/containers/Line/Edit/selectors.js +29 -0
  164. package/containers/Line/Edit/test/saga.test.js +160 -0
  165. package/containers/Login/assets/images/capillary_logo.png +0 -0
  166. package/containers/Login/components/LoginForm/index.js +62 -0
  167. package/containers/Login/components/LoginForm/messages.js +33 -0
  168. package/containers/Login/index.js +130 -0
  169. package/containers/Login/messages.js +25 -0
  170. package/containers/Login/selectors.js +25 -0
  171. package/containers/MobilePush/Create/_mobilePushCreate.scss +39 -0
  172. package/containers/MobilePush/Create/actions.js +46 -0
  173. package/containers/MobilePush/Create/constants.js +23 -0
  174. package/containers/MobilePush/Create/index.js +2303 -0
  175. package/containers/MobilePush/Create/messages.js +269 -0
  176. package/containers/MobilePush/Create/reducer.js +70 -0
  177. package/containers/MobilePush/Create/sagas.js +74 -0
  178. package/containers/MobilePush/Create/selectors.js +28 -0
  179. package/containers/MobilePush/Create/test/saga.test.js +19 -0
  180. package/containers/MobilePush/Edit/_mobilePushCreate.scss +39 -0
  181. package/containers/MobilePush/Edit/actions.js +91 -0
  182. package/containers/MobilePush/Edit/constants.js +35 -0
  183. package/containers/MobilePush/Edit/index.js +2601 -0
  184. package/containers/MobilePush/Edit/messages.js +266 -0
  185. package/containers/MobilePush/Edit/reducer.js +112 -0
  186. package/containers/MobilePush/Edit/sagas.js +126 -0
  187. package/containers/MobilePush/Edit/selectors.js +29 -0
  188. package/containers/MobilePush/Edit/tests/saga.test.js +255 -0
  189. package/containers/NotFoundPage/index.js +25 -0
  190. package/containers/NotFoundPage/messages.js +13 -0
  191. package/containers/NotFoundPage/tests/index.test.js +17 -0
  192. package/containers/Sms/Create/_smsCreate.scss +42 -0
  193. package/containers/Sms/Create/actions.js +27 -0
  194. package/containers/Sms/Create/constants.js +16 -0
  195. package/containers/Sms/Create/index.js +1488 -0
  196. package/containers/Sms/Create/messages.js +109 -0
  197. package/containers/Sms/Create/reducer.js +41 -0
  198. package/containers/Sms/Create/sagas.js +40 -0
  199. package/containers/Sms/Create/selectors.js +28 -0
  200. package/containers/Sms/Create/test/saga.test.js +11 -0
  201. package/containers/Sms/Edit/actions.js +40 -0
  202. package/containers/Sms/Edit/constants.js +17 -0
  203. package/containers/Sms/Edit/index.js +1472 -0
  204. package/containers/Sms/Edit/messages.js +105 -0
  205. package/containers/Sms/Edit/reducer.js +50 -0
  206. package/containers/Sms/Edit/sagas.js +60 -0
  207. package/containers/Sms/Edit/selectors.js +32 -0
  208. package/containers/Sms/Edit/test/saga.test.js +13 -0
  209. package/containers/TagList/_tagList.scss +8 -0
  210. package/containers/TagList/actions.js +15 -0
  211. package/containers/TagList/constants.js +32 -0
  212. package/containers/TagList/index.js +236 -0
  213. package/containers/TagList/messages.js +13 -0
  214. package/containers/TagList/reducer.js +23 -0
  215. package/containers/TagList/sagas.js +11 -0
  216. package/containers/TagList/selectors.js +25 -0
  217. package/containers/Templates/_templates.scss +333 -0
  218. package/containers/Templates/actions.js +103 -0
  219. package/containers/Templates/constants.js +60 -0
  220. package/containers/Templates/index.js +1756 -0
  221. package/containers/Templates/messages.js +337 -0
  222. package/containers/Templates/reducer.js +142 -0
  223. package/containers/Templates/sagas.js +163 -0
  224. package/containers/Templates/selectors.js +28 -0
  225. package/containers/Templates/test/saga.test.js +241 -0
  226. package/containers/WeChat/MapTemplates/_mapTemplates.scss +8 -0
  227. package/containers/WeChat/MapTemplates/actions.js +52 -0
  228. package/containers/WeChat/MapTemplates/constants.js +28 -0
  229. package/containers/WeChat/MapTemplates/index.js +1610 -0
  230. package/containers/WeChat/MapTemplates/messages.js +157 -0
  231. package/containers/WeChat/MapTemplates/reducer.js +74 -0
  232. package/containers/WeChat/MapTemplates/sagas.js +84 -0
  233. package/containers/WeChat/MapTemplates/selectors.js +25 -0
  234. package/containers/WeChat/MapTemplates/test/saga.test.js +155 -0
  235. package/containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +57 -0
  236. package/containers/WeChat/RichmediaTemplates/Create/actions.js +36 -0
  237. package/containers/WeChat/RichmediaTemplates/Create/constants.js +15 -0
  238. package/containers/WeChat/RichmediaTemplates/Create/index.js +1071 -0
  239. package/containers/WeChat/RichmediaTemplates/Create/messages.js +165 -0
  240. package/containers/WeChat/RichmediaTemplates/Create/reducer.js +60 -0
  241. package/containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +497 -0
  242. package/containers/WeChat/RichmediaTemplates/Create/sagas.js +51 -0
  243. package/containers/WeChat/RichmediaTemplates/Create/selectors.js +37 -0
  244. package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +13 -0
  245. package/containers/WeChat/RichmediaTemplates/Edit/actions.js +20 -0
  246. package/containers/WeChat/RichmediaTemplates/Edit/constants.js +10 -0
  247. package/containers/WeChat/RichmediaTemplates/Edit/index.js +136 -0
  248. package/containers/WeChat/RichmediaTemplates/Edit/messages.js +13 -0
  249. package/containers/WeChat/RichmediaTemplates/Edit/reducer.js +28 -0
  250. package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +36 -0
  251. package/containers/WeChat/RichmediaTemplates/Edit/selectors.js +30 -0
  252. package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +12 -0
  253. package/containers/WeChat/RichmediaTemplates/View/actions.js +15 -0
  254. package/containers/WeChat/RichmediaTemplates/View/constants.js +7 -0
  255. package/containers/WeChat/RichmediaTemplates/View/index.js +47 -0
  256. package/containers/WeChat/RichmediaTemplates/View/messages.js +21 -0
  257. package/containers/WeChat/RichmediaTemplates/View/reducer.js +23 -0
  258. package/containers/WeChat/RichmediaTemplates/View/sagas.js +11 -0
  259. package/containers/WeChat/RichmediaTemplates/View/selectors.js +25 -0
  260. package/index.js +2 -4
  261. package/package.json +1 -1
  262. package/routes.js +202 -136
  263. package/services/getSchema.js +1 -1
  264. package/services/localStorageApi.js +0 -1
  265. package/tests/i18n.test.js +1 -1
  266. package/utils/asyncInjectors.js +78 -0
  267. package/utils/authWrapper.js +1 -1
  268. package/utils/callNativeEvent.js +16 -0
  269. package/utils/checkStore.js +21 -0
  270. package/utils/common.js +2 -2
  271. package/utils/customAuthWrapper.js +62 -0
  272. package/utils/customConnectedAuthWrapper.js +26 -0
  273. package/utils/tagValidations.js +1 -1
  274. package/utils/tests/checkStore.test.js +1 -1
  275. package/utils/tests/customAuth.test.js +1 -1
  276. package/utils/transformerUtils.js +195 -1
  277. package/v2Components/CapTagList/index.js +14 -9
  278. package/v2Components/Carousel/style.scss +1 -1
  279. package/v2Components/EmailMobilePreview/index.js +2 -2
  280. package/v2Components/FormBuilder/index.js +2 -2
  281. package/v2Components/TemplatePreview/index.js +1 -2
  282. package/v2Containers/Cap/tests/saga.test.js +1 -1
  283. package/v2Containers/Email/index.js +1 -1
  284. package/v2Containers/FTP/index.js +1 -1
  285. package/v2Containers/Line/Container/Text/index.js +6 -6
  286. package/v2Containers/Sms/Create/index.js +2 -2
  287. package/v2Containers/Sms/Edit/index.js +1 -1
  288. package/v2Containers/TagList/index.js +1 -1
  289. package/v2Containers/TagList/utils.js +1 -1
  290. package/v2Containers/Templates/index.js +1 -1
  291. package/v2Containers/Templates/sagas.js +1 -1
  292. package/constants/unified.js +0 -189
@@ -0,0 +1,269 @@
1
+ /*
2
+ * Create Messages
3
+ *
4
+ * This contains all the text for the Create component.
5
+ */
6
+ import { defineMessages } from 'react-intl';
7
+
8
+ export default defineMessages({
9
+ "imageUploadLabel": {
10
+ id: 'creatives.containers.MobilePush.Create.ImageUploadLabel',
11
+ defaultMessage: 'Upload image',
12
+ },
13
+ "Enter template name*": {
14
+ id: 'creatives.containers.MobilePush.Create.enterTemplateNameImportant',
15
+ defaultMessage: 'Enter template name*',
16
+ },
17
+ "Enter template name": {
18
+ id: 'creatives.containers.MobilePush.Create.enterTemplateName',
19
+ defaultMessage: 'Enter template name',
20
+ },
21
+ "Template name cannot be empty": {
22
+ id: 'creatives.containers.MobilePush.Create.templateCantEmpty',
23
+ defaultMessage: 'Template name cannot be empty',
24
+ },
25
+ "Discard Changes": {
26
+ id: 'creatives.containers.MobilePush.Create.discardChanges',
27
+ defaultMessage: 'Discard changes',
28
+ },
29
+ "Cancel": {
30
+ id: 'creatives.containers.MobilePush.Create.cancel',
31
+ defaultMessage: 'Cancel',
32
+ },
33
+ "Save": {
34
+ id: 'creatives.containers.MobilePush.Create.save',
35
+ defaultMessage: 'Save',
36
+ },
37
+ "Select Mobilepush Account": {
38
+ id: 'creatives.containers.MobilePush.Create.selectMobilePushAccount',
39
+ defaultMessage: 'Select mobilepush account',
40
+ },
41
+ "Account Id": {
42
+ id: 'creatives.containers.MobilePush.Create.accountId',
43
+ defaultMessage: 'Account id',
44
+ },
45
+ "Select Mobilepush Template": {
46
+ id: 'creatives.containers.MobilePush.Create.selectMobilePushTemplate',
47
+ defaultMessage: 'Select mobilepush template',
48
+ },
49
+ "Template": {
50
+ id: 'creatives.containers.MobilePush.Create.template',
51
+ defaultMessage: 'Template',
52
+ },
53
+ "Android": {
54
+ id: 'creatives.containers.MobilePush.Create.Android',
55
+ defaultMessage: 'Android',
56
+ },
57
+ "Copy Title and Content From IOS": {
58
+ id: 'creatives.containers.MobilePush.Create.copyFromIos',
59
+ defaultMessage: 'Copy Title and Content From IOS',
60
+ },
61
+ "Title*": {
62
+ id: 'creatives.containers.MobilePush.Create.titleLabel',
63
+ defaultMessage: 'Title*',
64
+ },
65
+ "Title": {
66
+ id: 'creatives.containers.MobilePush.Create.title',
67
+ defaultMessage: 'Title',
68
+ },
69
+ "Please input message title name.": {
70
+ id: 'creatives.containers.MobilePush.Create.titleNameInvalid',
71
+ defaultMessage: 'Please enter the message title',
72
+ },
73
+ "Template message has unsupported/missing tags!": {
74
+ id: 'creatives.containers.MobilePush.Create.messageHasUnsupportedTag',
75
+ defaultMessage: 'Please check the message content for unsupported/missing tags',
76
+ },
77
+ "Tags": {
78
+ id: 'creatives.containers.MobilePush.Create.Tags',
79
+ defaultMessage: 'Tags',
80
+ },
81
+ "Message*": {
82
+ id: 'creatives.containers.MobilePush.Create.messageLabel',
83
+ defaultMessage: 'Message*',
84
+ },
85
+ "Message": {
86
+ id: 'creatives.containers.MobilePush.Create.message',
87
+ defaultMessage: 'Message',
88
+ },
89
+ "Please input mobile push template content.": {
90
+ id: 'creatives.containers.MobilePush.Create.inputMobilePushTemplateContent',
91
+ defaultMessage: 'Please enter the message content',
92
+ },
93
+ "addPrimaryCTA": {
94
+ id: 'creatives.containers.MobilePush.Create.addPrimaryCTA',
95
+ defaultMessage: 'Add primary CTA',
96
+ },
97
+ "addSecondaryCTA": {
98
+ id: 'creatives.containers.MobilePush.Create.addSecondaryCTA',
99
+ defaultMessage: 'Add secondary CTA',
100
+ },
101
+ "iOS": {
102
+ id: 'creatives.containers.MobilePush.Create.iOS',
103
+ defaultMessage: 'iOS',
104
+ },
105
+ "Copy Title and Content From Android": {
106
+ id: 'creatives.containers.MobilePush.Create.copyFromAndroid',
107
+ defaultMessage: 'Copy Title and Content From Android',
108
+ },
109
+ "Template title has unsupported/missing tags.": {
110
+ id: 'creatives.containers.MobilePush.Create.titleHasUnsupportedTag',
111
+ defaultMessage: 'Please check the message content for unsupported/missing tags',
112
+ },
113
+ "Template name cannot be empty.": {
114
+ id: 'creatives.containers.MobilePush.Create.templateNameNotEmpty',
115
+ defaultMessage: 'Please provide a template name ',
116
+ },
117
+ "Message title has unsupported/missing tags!": {
118
+ id: 'creatives.containers.MobilePush.Create.messageTitleWithUnsupportedTag',
119
+ defaultMessage: 'Please check the message content for unsupported/missing tags',
120
+ },
121
+ "Image": {
122
+ id: 'creatives.containers.MobilePush.Create.Image',
123
+ defaultMessage: 'Image',
124
+ },
125
+ "Max file size acceptable is 5mb": {
126
+ id: 'creatives.containers.MobilePush.Create.maxUploadFileSize',
127
+ defaultMessage: 'Max file size acceptable is 5mb',
128
+ },
129
+ "Please upload Image": {
130
+ id: 'creatives.containers.MobilePush.Create.pleaseUploadImage',
131
+ defaultMessage: 'Please upload image',
132
+ },
133
+ "Upload Image": {
134
+ id: 'creatives.containers.MobilePush.Create.uploadImage',
135
+ defaultMessage: 'Upload image',
136
+ },
137
+ "Mobile Push Template Created Successfully": {
138
+ id: 'creatives.containers.MobilePush.Create.templateCreatedSuccessfully',
139
+ defaultMessage: 'Mobile push template created successfully',
140
+ },
141
+ "somethingWentWrong": {
142
+ id: 'creatives.containers.MobilePush.Create.somethingWentWrong',
143
+ defaultMessage: 'Something went wrong!!',
144
+ },
145
+ "selectDeepLink": {
146
+ id: 'creatives.containers.MobilePush.Create.selectDeepLink',
147
+ defaultMessage: 'Select deepLink',
148
+ },
149
+ "externalLink": {
150
+ id: 'creatives.containers.MobilePush.Create.externalLink',
151
+ defaultMessage: 'External link',
152
+ },
153
+ "externalLinkCantEmpty": {
154
+ id: 'creatives.containers.MobilePush.Create.externalLinkCantEmpty',
155
+ defaultMessage: 'External link cannot be empty',
156
+ },
157
+ "goBackConfirmation": {
158
+ id: 'creatives.containers.MobilePush.Create.goBackConfirmation',
159
+ defaultMessage: "Going back will discard all the changes you've made. Continue?",
160
+ },
161
+ "alertMessage": {
162
+ id: 'creatives.containers.MobilePush.Create.alertMessage',
163
+ defaultMessage: "Alert",
164
+ },
165
+ "secondaryCTA": {
166
+ id: 'creatives.containers.MobilePush.Create.secondaryCTA',
167
+ defaultMessage: 'Secondary CTA',
168
+ },
169
+ "nameAndDescription": {
170
+ id: 'creatives.containers.MobilePush.Create.nameAndDescription',
171
+ defaultMessage: 'Name and description',
172
+ },
173
+ "button1": {
174
+ id: 'creatives.containers.MobilePush.Create.button1',
175
+ defaultMessage: 'Button 1',
176
+ },
177
+ "button2": {
178
+ id: 'creatives.containers.MobilePush.Create.button2',
179
+ defaultMessage: 'Button 2',
180
+ },
181
+ "addAnotherCTA": {
182
+ id: 'creatives.containers.MobilePush.Create.addAnotherCTA',
183
+ defaultMessage: 'Add another CTA',
184
+ },
185
+ "selectLinkType": {
186
+ id: 'creatives.containers.MobilePush.Create.selectLinkType',
187
+ defaultMessage: 'Please select link type',
188
+ },
189
+ "primaryCTA": {
190
+ id: 'creatives.containers.MobilePush.Create.primaryCTA',
191
+ defaultMessage: 'Primary CTA',
192
+ },
193
+ "enterCTALabel": {
194
+ id: 'creatives.containers.MobilePush.Create.enterCTALabel',
195
+ defaultMessage: 'Enter CTA label here',
196
+ },
197
+ "ctaLabelCantEmpty": {
198
+ id: 'creatives.containers.MobilePush.Create.ctaLabelCantEmpty',
199
+ defaultMessage: 'CTA label cannot be empty.',
200
+ },
201
+ "selectDeeplink": {
202
+ id: 'creatives.containers.MobilePush.Create.selectDeeplink',
203
+ defaultMessage: 'Select deeplink',
204
+ },
205
+ "selectADeeplink": {
206
+ id: 'creatives.containers.MobilePush.Create.selectADeeplink',
207
+ defaultMessage: 'Select a deeplink',
208
+ },
209
+ "File size cannot be more than 5mb": {
210
+ id: 'creatives.containers.MobilePush.Create.uploadFileSizeError',
211
+ defaultMessage: 'File size cannot be more than 5mb',
212
+ },
213
+ "valueCantEmpty": {
214
+ id: 'creatives.containers.MobilePush.Create.valueCantEmpty',
215
+ defaultMessage: 'value cannot be empty.',
216
+ },
217
+ "deleteSecondCTAFirst": {
218
+ id: 'creatives.containers.MobilePush.Create.deleteSecondCTAFirst',
219
+ defaultMessage: 'Please delete second secondary cta first',
220
+ },
221
+ "Uploading Image...": {
222
+ id: 'creatives.containers.MobilePush.Create.uploadingImage',
223
+ defaultMessage: 'Uploading image...',
224
+ },
225
+ "Campaigns": {
226
+ id: 'creatives.containers.MobilePush.Create.Campaigns',
227
+ defaultMessage: 'Campaigns',
228
+ },
229
+ "Creatives": {
230
+ id: 'creatives.containers.MobilePush.Create.Creatives',
231
+ defaultMessage: 'Creatives',
232
+ },
233
+ "Mobile Push": {
234
+ id: 'creatives.containers.MobilePush.Create.mobilePush',
235
+ defaultMessage: 'Mobile Push',
236
+ },
237
+ "androidNotConfigured": {
238
+ id: 'creatives.containers.MobilePush.Create.androidNotConfigured',
239
+ defaultMessage: 'Android template is not configured. Save without Android template',
240
+ },
241
+ "iosNotConfigured": {
242
+ id: 'creatives.containers.MobilePush.Create.iosNotConfigured',
243
+ defaultMessage: 'IOS template is not configured, Save without IOS template',
244
+ },
245
+ "templateNotConfigured": {
246
+ id: 'creatives.containers.MobilePush.Create.templateNotConfigured',
247
+ defaultMessage: 'template not configured,',
248
+ },
249
+ "savingTemplate": {
250
+ id: 'creatives.containers.MobilePush.Create.savingTemplate',
251
+ defaultMessage: "Saving Template...",
252
+ },
253
+ "gettingTemplate": {
254
+ id: 'creatives.containers.MobilePush.Create.gettingTemplate',
255
+ defaultMessage: "Getting template details...",
256
+ },
257
+ "cantCopyEmptyField": {
258
+ id: 'creatives.containers.MobilePush.Create.cantCopyEmptyField',
259
+ defaultMessage: "Cannot copy empty field values.",
260
+ },
261
+ "pleaseInput": {
262
+ id: 'creatives.containers.MobilePush.Create.pleaseInput',
263
+ defaultMessage: "Please input",
264
+ },
265
+ "here": {
266
+ id: 'creatives.containers.MobilePush.Create.here',
267
+ defaultMessage: "here .",
268
+ },
269
+ });
@@ -0,0 +1,70 @@
1
+ /*
2
+ *
3
+ * Create reducer
4
+ *
5
+ */
6
+
7
+ import { fromJS } from 'immutable';
8
+ import * as types from './constants';
9
+
10
+ const initialState = fromJS({
11
+ createTemplateInProgress: false,
12
+ response: {},
13
+ });
14
+
15
+ function createReducer(state = initialState, action) {
16
+ switch (action.type) {
17
+ case types.DEFAULT_ACTION:
18
+ return state;
19
+ case types.CREATE_TEMPLATE_REQUEST:
20
+ return state
21
+ .set('createTemplateInProgress', true)
22
+ .set('createTemplateError', false)
23
+ .set('createTemplateErrorMessage', fromJS(""));
24
+ case types.CREATE_TEMPLATE_SUCCESS:
25
+ return state.set('createTemplateInProgress', false)
26
+ .set('response', action.data)
27
+ .set('createTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
28
+ .set('createTemplateErrorMessage', fromJS(action.errorMsg));
29
+ case types.CREATE_TEMPLATE_FAILURE:
30
+ return state
31
+ .set('createTemplateInProgress', false)
32
+ .set('createTemplateError', true)
33
+ .set('createTemplateErrorMessage', fromJS(action.errorMsg));
34
+ case types.CLEAR_CREATE_RESPONSE_REQUEST:
35
+ return state.set('response', {});
36
+ case types.UPLOAD_ASSET_REQUEST:
37
+ return state
38
+ .set('uploadAssetSuccess', false)
39
+ .set('assetUploading', true);
40
+ case types.UPLOAD_ASSET_SUCCESS:
41
+ return state
42
+ .set('uploadAssetSuccess', (action.statusCode !== undefined && action.statusCode !== '' && action.statusCode < 300))
43
+ .set('assetUploading', false)
44
+ .set('uploadedAssetData', action.data);
45
+ case types.UPLOAD_ASSET_FAILURE:
46
+ return state
47
+ .set('uploadAssetSuccess', false)
48
+ .set('assetUploading', false);
49
+ case types.CLEAR_ASSET:
50
+ return state
51
+ .delete('uploadedAssetData');
52
+ case types.GET_IOS_CTAS:
53
+ return state
54
+ .set("getIosCtasSucccess", false)
55
+ .set("iosCtasLoading", true);
56
+ case types.GET_IOS_CTAS_SUCCESS:
57
+ return state
58
+ .set('getIosCtasSucccess', (action.statusCode !== undefined && action.statusCode !== '' && action.statusCode < 300))
59
+ .set('iosCtasLoading', false)
60
+ .set('iosCtasData', action.data);
61
+ case types.GET_IOS_CTAS_FAILURE:
62
+ return state
63
+ .set('getIosCtasSucccess', false)
64
+ .set('iosCtasLoading', false);
65
+ default:
66
+ return state;
67
+ }
68
+ }
69
+
70
+ export default createReducer;
@@ -0,0 +1,74 @@
1
+ import {
2
+ call, put, takeLatest, all,
3
+ } from 'redux-saga/effects';
4
+ // import { schema, normalize } from 'normalizr';
5
+ import * as Api from '../../../services/api';
6
+ import * as types from './constants';
7
+
8
+ // Individual exports for testing
9
+ export function* createTemplate(template) {
10
+ let errorMsg;
11
+ try {
12
+
13
+ const result = yield call(Api.createMobilePushTemplate, template);
14
+ if (result.message || result.status.code === 500) {
15
+ errorMsg = result.message;
16
+ }
17
+ yield put({ type: types.CREATE_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
18
+ } catch (error) {
19
+ yield put({ type: types.CREATE_TEMPLATE_FAILURE, error, errorMsg });
20
+ }
21
+ }
22
+ export function* uploadAsset(file, assetType, fileParams) {
23
+ try {
24
+ const result = yield call(Api.uploadFile, file, assetType, fileParams);
25
+ yield put({ type: types.UPLOAD_ASSET_SUCCESS, data: result.response.asset, statusCode: result.status ? result.status.code : '' });
26
+ } catch (error) {
27
+ yield put({ type: types.UPLOAD_ASSET_FAILURE, error });
28
+ }
29
+ }
30
+ export function* getIosCtas(licenseCode) {
31
+ try {
32
+ const result = yield call(Api.getIosCtas, licenseCode);
33
+ yield put({ type: types.GET_IOS_CTAS_SUCCESS, data: result.response.metaEntities.data, statusCode: result.status ? result.status.code : '' });
34
+ } catch (error) {
35
+ yield put({ type: types.GET_IOS_CTAS_FAILURE, error });
36
+ }
37
+ }
38
+
39
+ function* watchCreateTemplate() {
40
+
41
+ yield takeLatest(types.CREATE_TEMPLATE_REQUEST, createTemplate);
42
+
43
+
44
+ }
45
+ function* watchUploadAsset() {
46
+ yield takeLatest(types.UPLOAD_ASSET_REQUEST, uploadAsset);
47
+
48
+
49
+ }
50
+ function* watchGetIosCtas() {
51
+ yield takeLatest(types.GET_IOS_CTAS, getIosCtas);
52
+
53
+
54
+ }
55
+ // All sagas to be loaded
56
+ export default [
57
+ watchCreateTemplate,
58
+ watchUploadAsset,
59
+ watchGetIosCtas,
60
+ ];
61
+
62
+ export function* createMPushSaga() {
63
+ yield all([
64
+ watchCreateTemplate(),
65
+ watchUploadAsset(),
66
+ watchGetIosCtas(),
67
+ ]);
68
+ }
69
+
70
+ export function* duplicateMPushSaga() {
71
+ yield all([
72
+ watchCreateTemplate(),
73
+ ]);
74
+ }
@@ -0,0 +1,28 @@
1
+ import { createSelector } from 'reselect';
2
+
3
+ /**
4
+ * Direct selector to the create state domain
5
+ */
6
+ const selectPushMessageCreateDomain = () => (state) => state.get('mobileCreate');
7
+
8
+ /**
9
+ * Other specific selectors
10
+ */
11
+
12
+
13
+ /**
14
+ * Default selector used by Create
15
+ */
16
+
17
+ const makeSelectCreate = () => createSelector(
18
+ selectPushMessageCreateDomain(),
19
+ (substate) => substate.toJS()
20
+ );
21
+
22
+ const makeSelectCreateResponse = () => createSelector(
23
+ selectPushMessageCreateDomain(), (dimensionState) => dimensionState.get('response')
24
+ );
25
+
26
+ export {
27
+ makeSelectCreate, makeSelectCreateResponse,
28
+ };
@@ -0,0 +1,19 @@
1
+ import { expectSaga } from "redux-saga-test-plan";
2
+
3
+ import {
4
+ createMPushSaga,
5
+ duplicateMPushSaga
6
+ } from "../sagas";
7
+
8
+ describe("MPUSH Sagas", () => {
9
+ describe("duplicateMPushSaga Combined", () => {
10
+ it.concurrent("should initialize all MPUSH-related watcher sagas without error", () => {
11
+ return expectSaga(duplicateMPushSaga).run();
12
+ });
13
+ });
14
+ describe("createMPushSaga Combined", () => {
15
+ it.concurrent("should initialize all MPUSH-related watcher sagas without error", () => {
16
+ return expectSaga(createMPushSaga).run();
17
+ });
18
+ });
19
+ });
@@ -0,0 +1,39 @@
1
+ .mobile-push-row{
2
+ margin-bottom: 16px;
3
+ }
4
+ .image-container{
5
+ border: solid 1px #C2C2C2;
6
+ border-radius: 5px;
7
+ margin: 0 !important;
8
+ .image-placeholder{
9
+ line-height: 150px;
10
+ margin-right: 13.5rem;
11
+ }
12
+ }
13
+ .ant-tabs-bar{
14
+ margin-bottom: 0 !important;
15
+ display: flex;
16
+ align-items: center;
17
+ flex-direction: row-reverse;
18
+ justify-content: flex-end;
19
+ }
20
+ .creatives-templates-container {
21
+ .ant-tabs-tabpane{
22
+ padding: 16px 16px 16px 0;
23
+ border: solid 1px #D6D6D6;
24
+ }
25
+ }
26
+ .ant-radio-wrapper{
27
+ font-size: 14px;
28
+ font-family: 'open-sans';
29
+ }
30
+ .ant-radio-inner::after{
31
+ top: 3px;
32
+ left: 3px;
33
+ }
34
+ .ant-radio-inner{
35
+ border: 1px solid #d9d9d9;
36
+ }
37
+ .ant-radio-checked .ant-radio-inner{
38
+ border: 1px solid #47af46;
39
+ }
@@ -0,0 +1,91 @@
1
+ /*
2
+ *
3
+ * Create actions
4
+ *
5
+ */
6
+
7
+
8
+ import * as types from "../../MobilePush/Edit/constants";
9
+
10
+ export function defaultAction() {
11
+ return {
12
+ type: types.DEFAULT_ACTION,
13
+ };
14
+ }
15
+
16
+ export function editTemplate(template) {
17
+
18
+ return {
19
+ type: types.EDIT_TEMPLATE_REQUEST, template,
20
+ };
21
+ }
22
+
23
+ export function getTemplateDetails(id) {
24
+
25
+ return {
26
+ type: types.GET_TEMPLATE_DETAILS_REQUEST, id,
27
+ };
28
+ }
29
+ export function getIosCtas(licenseCode) {
30
+ return {
31
+ type: types.GET_IOS_CTAS, licenseCode,
32
+ };
33
+ }
34
+ export function uploadAsset(file, assetType, fileParams, mode) {
35
+ return {
36
+ type: types.UPLOAD_ASSET_REQUEST,
37
+ file,
38
+ assetType,
39
+ fileParams,
40
+ mode,
41
+ };
42
+ }
43
+ export function clearEditResponse() {
44
+
45
+ return {
46
+ type: types.CLEAR_EDIT_RESPONSE_REQUEST,
47
+ };
48
+ }
49
+ export function clearData() {
50
+ return {
51
+ type: types.CLEAR_DATA,
52
+ };
53
+ }
54
+ export function clearAsset() {
55
+ return {
56
+ type: types.CLEAR_ASSET,
57
+ };
58
+ }
59
+
60
+ export function getWeCrmAccounts(source) {
61
+ return {
62
+ type: types.GET_WECRM_ACCOUNTS_REQUEST, source,
63
+ };
64
+ }
65
+
66
+ export function setWeChatAccount(weChatAccount) {
67
+ return {
68
+ type: types.SET_WECHAT_ACCOUNT,
69
+ weChatAccount,
70
+ };
71
+ }
72
+ export function getMobilepushTemplatesList(channel, queryParams) {
73
+ return {
74
+ type: types.GET_MOBILEPUSH_TEMPLATES_LIST_REQUEST,
75
+ channel,
76
+ queryParams,
77
+ };
78
+ }
79
+ export function setSelectedTemplate(templateData) {
80
+ return {
81
+ type: types.SET_SELECTED_TEMPLATE,
82
+ data: templateData,
83
+ };
84
+ }
85
+
86
+ export function setTemplateDetails(templateDetails) {
87
+ return {
88
+ type: types.GET_TEMPLATE_DETAILS_SUCCESS,
89
+ data: templateDetails,
90
+ };
91
+ }
@@ -0,0 +1,35 @@
1
+ /*
2
+ *
3
+ * Edit constants
4
+ *
5
+ */
6
+
7
+ export const DEFAULT_ACTION = 'app/Edit/DEFAULT_ACTION';
8
+
9
+ export const GET_TEMPLATE_DETAILS_REQUEST = 'app/containers/mobilePush/Edit/GET_TEMPLATE_DETAILS_REQUEST';
10
+ export const GET_TEMPLATE_DETAILS_SUCCESS = 'app/containers/mobilePush/Edit/GET_TEMPLATE_DETAILS_SUCCESS';
11
+ export const GET_TEMPLATE_DETAILS_FAILURE = 'app/containers/mobilePush/Edit/GET_TEMPLATE_DETAILS_FAILURE';
12
+
13
+ export const EDIT_TEMPLATE_REQUEST = 'app/containers/mobilePush/Edit/EDIT_TEMPLATE_REQUEST';
14
+ export const EDIT_TEMPLATE_SUCCESS = 'app/containers/mobilePush/Edit/EDIT_TEMPLATE_SUCCESS';
15
+ export const EDIT_TEMPLATE_FAILURE = 'app/containers/mobilePush/Edit/EDIT_TEMPLATE_FAILURE';
16
+
17
+ export const CLEAR_EDIT_RESPONSE_REQUEST = 'app/containers/mobilePush/Edit/CLEAR_EDIT_RESPONSE_REQUEST';
18
+ export const GET_IOS_CTAS = 'app/containers/PushMessage/Edit/GET_IOS_CTAS';
19
+ export const GET_IOS_CTAS_SUCCESS = 'app/containers/PushMessage/Edit/GET_IOS_CTAS_SUCCESS';
20
+ export const GET_IOS_CTAS_FAILURE = 'app/containers/PushMessage/Edit/GET_IOS_CTAS_FAILURE';
21
+ export const UPLOAD_ASSET_REQUEST = 'app/containers/PushMessage/Edit/UPLOAD_ASSET_REQUEST';
22
+ export const UPLOAD_ASSET_SUCCESS = 'app/containers/PushMessage/Edit/UPLOAD_ASSET_SUCCESS';
23
+ export const UPLOAD_ASSET_FAILURE = 'app/containers/PushMessage/Edit/UPLOAD_ASSET_FAILURE';
24
+ export const CLEAR_DATA = 'app/containers/PushMessage/Edit/CLEAR_DATA';
25
+ export const CLEAR_ASSET = 'app/containers/PushMessage/Edit/CLEAR_ASSET';
26
+ export const SET_SELECTED_TEMPLATE = 'app/containers/PushMessage/Edit/SET_SELECTED_TEMPLATE';
27
+
28
+ export const SET_WECHAT_ACCOUNT = "app/containers/MobilePush/SET_WECHAT_ACCOUNT";
29
+ export const GET_WECRM_ACCOUNTS_REQUEST = "app/containers/MobilePush/GET_WECRM_ACCOUNTS_REQUEST";
30
+ export const GET_WECRM_ACCOUNTS_SUCCESS = "app/containers/MobilePush/GET_WECRM_ACCOUNTS_SUCCESS";
31
+ export const GET_WECRM_ACCOUNTS_FAILURE = "app/containers/MobilePush/GET_WECRM_ACCOUNTS_FAILURE";
32
+
33
+ export const GET_MOBILEPUSH_TEMPLATES_LIST_REQUEST = 'app/containers/WeChat/GET_MOBILEPUSH_TEMPLATES_LIST_REQUEST';
34
+ export const GET_MOBILEPUSH_TEMPLATES_LIST_SUCCESS = 'app/containers/WeChat/GET_MOBILEPUSH_TEMPLATES_LIST_SUCCESS';
35
+ export const GET_MOBILEPUSH_TEMPLATES_LIST_FAILURE = 'app/containers/WeChat/GET_MOBILEPUSH_TEMPLATES_LIST_FAILURE';