@capillarytech/creatives-library 0.1.31 → 1.0.0

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 (1077) hide show
  1. package/index.js +8 -9
  2. package/package.json +7 -62
  3. package/app.js +0 -92
  4. package/assets/loading_img.gif +0 -0
  5. package/components/BreadCrumbs/index.js +0 -64
  6. package/components/BreadCrumbs/messages.js +0 -13
  7. package/components/BreadCrumbs/tests/index.test.js +0 -10
  8. package/components/CapTagList/index.js +0 -233
  9. package/components/CapTagList/messages.js +0 -25
  10. package/components/CapTagList/tests/index.test.js +0 -10
  11. package/components/Card/_customCard.scss +0 -35
  12. package/components/Card/index.js +0 -76
  13. package/components/Card/tests/index.test.js +0 -10
  14. package/components/CardGrid/index.js +0 -69
  15. package/components/CardGrid/tests/index.test.js +0 -10
  16. package/components/Ckeditor/index.js +0 -204
  17. package/components/Ckeditor/messages.js +0 -13
  18. package/components/Ckeditor/tests/index.test.js +0 -10
  19. package/components/Component/index.js +0 -27
  20. package/components/Component/tests/index.test.js +0 -10
  21. package/components/CustomPopOver/index.js +0 -80
  22. package/components/CustomPopOver/messages.js +0 -13
  23. package/components/CustomPopOver/tests/index.test.js +0 -10
  24. package/components/DateFilter/index.js +0 -347
  25. package/components/DateFilter/messages.js +0 -17
  26. package/components/DateFilter/tests/index.test.js +0 -15
  27. package/components/DateRange/index.js +0 -111
  28. package/components/DateRange/messages.js +0 -13
  29. package/components/DateRange/tests/index.test.js +0 -10
  30. package/components/Edmeditor/index.js +0 -63
  31. package/components/Edmeditor/messages.js +0 -13
  32. package/components/Edmeditor/tests/index.test.js +0 -10
  33. package/components/EmailPreview/_emailPreview.scss +0 -119
  34. package/components/EmailPreview/assets/images/iPad.svg +0 -10
  35. package/components/EmailPreview/assets/images/mobile.png +0 -0
  36. package/components/EmailPreview/index.js +0 -103
  37. package/components/EmailPreview/messages.js +0 -17
  38. package/components/EmailPreview/tests/index.test.js +0 -10
  39. package/components/Footer/index.js +0 -27
  40. package/components/Footer/messages.js +0 -13
  41. package/components/Footer/tests/index.test.js +0 -10
  42. package/components/FormBuilder/_formBuilder.scss +0 -85
  43. package/components/FormBuilder/index.js +0 -3296
  44. package/components/FormBuilder/messages.js +0 -13
  45. package/components/FormBuilder/tests/index.test.js +0 -10
  46. package/components/ImagePreview/_imagePreview.scss +0 -63
  47. package/components/ImagePreview/index.js +0 -50
  48. package/components/ImagePreview/messages.js +0 -13
  49. package/components/ImagePreview/tests/index.test.js +0 -10
  50. package/components/NewSidebar/_newsidebar.scss +0 -115
  51. package/components/NewSidebar/index.js +0 -234
  52. package/components/NewSidebar/messages.js +0 -21
  53. package/components/NewSidebar/tests/index.test.js +0 -10
  54. package/components/NewTopBar/_newtopbar.scss +0 -84
  55. package/components/NewTopBar/assets/images/capillary_logo.png +0 -0
  56. package/components/NewTopBar/assets/images/capillary_logo_2.png +0 -0
  57. package/components/NewTopBar/index.js +0 -195
  58. package/components/NewTopBar/messages.js +0 -29
  59. package/components/NewTopBar/tests/index.test.js +0 -10
  60. package/components/PageHeader/_pageHeader.scss +0 -22
  61. package/components/PageHeader/index.js +0 -36
  62. package/components/PageHeader/messages.js +0 -13
  63. package/components/PageHeader/tests/index.test.js +0 -10
  64. package/components/Pagination/_pagination.scss +0 -5
  65. package/components/Pagination/index.js +0 -47
  66. package/components/Pagination/tests/index.test.js +0 -10
  67. package/components/PreviewSideBar/_previewsidebar.scss +0 -28
  68. package/components/PreviewSideBar/index.js +0 -146
  69. package/components/PreviewSideBar/messages.js +0 -33
  70. package/components/PreviewSideBar/tests/index.test.js +0 -10
  71. package/components/Sidebar/_sidebar.scss +0 -115
  72. package/components/Sidebar/index.js +0 -234
  73. package/components/Sidebar/messages.js +0 -21
  74. package/components/Sidebar/tests/index.test.js +0 -10
  75. package/components/SlideBox/_slideBox.scss +0 -63
  76. package/components/SlideBox/index.js +0 -47
  77. package/components/SlideBox/tests/index.test.js +0 -103
  78. package/components/SmsEditor/index.js +0 -53
  79. package/components/SmsEditor/tests/index.test.js +0 -10
  80. package/components/SmsTest/index.js +0 -115
  81. package/components/SmsTest/messages.js +0 -13
  82. package/components/SmsTest/tests/index.test.js +0 -10
  83. package/components/TemplatePreview/_templatePreview.scss +0 -352
  84. package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  85. package/components/TemplatePreview/assets/images/androidPushMessage.svg +0 -45
  86. package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +0 -135
  87. package/components/TemplatePreview/assets/images/mobile.svg +0 -24
  88. package/components/TemplatePreview/assets/images/sms-body.png +0 -0
  89. package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
  90. package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
  91. package/components/TemplatePreview/assets/images/user-icon.svg +0 -19
  92. package/components/TemplatePreview/assets/images/wechat-mobile.svg +0 -78
  93. package/components/TemplatePreview/index.js +0 -174
  94. package/components/TemplatePreview/messages.js +0 -29
  95. package/components/TemplatePreview/tests/index.test.js +0 -10
  96. package/components/Toastr/index.js +0 -59
  97. package/components/Toastr/messages.js +0 -13
  98. package/components/Toastr/tests/index.test.js +0 -10
  99. package/components/ToastrMessage/index.js +0 -108
  100. package/components/ToastrMessage/messages.js +0 -13
  101. package/components/ToastrMessage/tests/index.test.js +0 -10
  102. package/components/TopBar/_topbar.scss +0 -46
  103. package/components/TopBar/assets/images/capillary_logo.png +0 -0
  104. package/components/TopBar/index.js +0 -112
  105. package/components/TopBar/messages.js +0 -29
  106. package/components/TopBar/tests/index.test.js +0 -10
  107. package/config/app.js +0 -24
  108. package/config/path.js +0 -3
  109. package/config/request.js +0 -135
  110. package/config/toastr.js +0 -44
  111. package/containers/App/actions.js +0 -7
  112. package/containers/App/constants.js +0 -3
  113. package/containers/App/reducer.js +0 -19
  114. package/containers/App/sagas.js +0 -26
  115. package/containers/App/selectors.js +0 -25
  116. package/containers/App/tests/actions.test.js +0 -18
  117. package/containers/App/tests/reducer.test.js +0 -9
  118. package/containers/App/tests/sagas.test.js +0 -15
  119. package/containers/App/tests/selectors.test.js +0 -10
  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 -463
  124. package/containers/Assets/Gallery/messages.js +0 -89
  125. package/containers/Assets/Gallery/reducer.js +0 -81
  126. package/containers/Assets/Gallery/sagas.js +0 -84
  127. package/containers/Assets/Gallery/selectors.js +0 -25
  128. package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +0 -7
  129. package/containers/Assets/Gallery/tests/actions.test.js +0 -26
  130. package/containers/Assets/Gallery/tests/index.test.js +0 -10
  131. package/containers/Assets/Gallery/tests/reducer.test.js +0 -95
  132. package/containers/Assets/Gallery/tests/sagas.test.js +0 -15
  133. package/containers/Assets/Gallery/tests/selectors.test.js +0 -10
  134. package/containers/Cap/actions.js +0 -52
  135. package/containers/Cap/constants.js +0 -22
  136. package/containers/Cap/index.js +0 -369
  137. package/containers/Cap/messsages.js +0 -63
  138. package/containers/Cap/reducer.js +0 -108
  139. package/containers/Cap/sagas.js +0 -143
  140. package/containers/Cap/selectors.js +0 -54
  141. package/containers/Cap/tests/index.test.js +0 -16
  142. package/containers/Cap/tests/selectors.test.js +0 -28
  143. package/containers/Dashboard/actions.js +0 -15
  144. package/containers/Dashboard/constants.js +0 -7
  145. package/containers/Dashboard/index.js +0 -53
  146. package/containers/Dashboard/messages.js +0 -13
  147. package/containers/Dashboard/reducer.js +0 -21
  148. package/containers/Dashboard/sagas.js +0 -11
  149. package/containers/Dashboard/selectors.js +0 -25
  150. package/containers/Dashboard/tests/actions.test.js +0 -18
  151. package/containers/Dashboard/tests/index.test.js +0 -10
  152. package/containers/Dashboard/tests/reducer.test.js +0 -9
  153. package/containers/Dashboard/tests/sagas.test.js +0 -15
  154. package/containers/Dashboard/tests/selectors.test.js +0 -10
  155. package/containers/Ebill/_ebill.scss +0 -5
  156. package/containers/Ebill/actions.js +0 -43
  157. package/containers/Ebill/constants.js +0 -20
  158. package/containers/Ebill/index.js +0 -1273
  159. package/containers/Ebill/messages.js +0 -73
  160. package/containers/Ebill/reducer.js +0 -72
  161. package/containers/Ebill/sagas.js +0 -65
  162. package/containers/Ebill/selectors.js +0 -25
  163. package/containers/Ebill/tests/actions.test.js +0 -18
  164. package/containers/Ebill/tests/index.test.js +0 -10
  165. package/containers/Ebill/tests/reducer.test.js +0 -9
  166. package/containers/Ebill/tests/sagas.test.js +0 -15
  167. package/containers/Ebill/tests/selectors.test.js +0 -10
  168. package/containers/Email/_email.scss +0 -141
  169. package/containers/Email/actions.js +0 -81
  170. package/containers/Email/constants.js +0 -36
  171. package/containers/Email/index.js +0 -3282
  172. package/containers/Email/messages.js +0 -233
  173. package/containers/Email/reducer.js +0 -142
  174. package/containers/Email/sagas.js +0 -136
  175. package/containers/Email/selectors.js +0 -31
  176. package/containers/Email/tests/actions.test.js +0 -18
  177. package/containers/Email/tests/index.test.js +0 -10
  178. package/containers/Email/tests/reducer.test.js +0 -9
  179. package/containers/Email/tests/sagas.test.js +0 -15
  180. package/containers/Email/tests/selectors.test.js +0 -10
  181. package/containers/LanguageProvider/actions.js +0 -17
  182. package/containers/LanguageProvider/constants.js +0 -8
  183. package/containers/LanguageProvider/index.js +0 -44
  184. package/containers/LanguageProvider/reducer.js +0 -30
  185. package/containers/LanguageProvider/selectors.js +0 -20
  186. package/containers/LanguageProvider/tests/actions.test.js +0 -19
  187. package/containers/LanguageProvider/tests/index.test.js +0 -49
  188. package/containers/LanguageProvider/tests/reducer.test.js +0 -20
  189. package/containers/LanguageProvider/tests/selectors.test.js +0 -15
  190. package/containers/Line/Create/_lineCreate.scss +0 -43
  191. package/containers/Line/Create/actions.js +0 -90
  192. package/containers/Line/Create/constants.js +0 -39
  193. package/containers/Line/Create/index.js +0 -815
  194. package/containers/Line/Create/messages.js +0 -173
  195. package/containers/Line/Create/reducer.js +0 -99
  196. package/containers/Line/Create/sagas.js +0 -107
  197. package/containers/Line/Create/selectors.js +0 -36
  198. package/containers/Line/Edit/_lineEdit.scss +0 -25
  199. package/containers/Line/Edit/actions.js +0 -72
  200. package/containers/Line/Edit/constants.js +0 -27
  201. package/containers/Line/Edit/index.js +0 -1043
  202. package/containers/Line/Edit/messages.js +0 -157
  203. package/containers/Line/Edit/reducer.js +0 -83
  204. package/containers/Line/Edit/sagas.js +0 -81
  205. package/containers/Line/Edit/selectors.js +0 -29
  206. package/containers/Line/Edit/tests/actions.test.js +0 -18
  207. package/containers/Line/Edit/tests/index.test.js +0 -10
  208. package/containers/Line/Edit/tests/reducer.test.js +0 -9
  209. package/containers/Line/Edit/tests/sagas.test.js +0 -15
  210. package/containers/Line/Edit/tests/selectors.test.js +0 -10
  211. package/containers/Login/assets/images/capillary_logo.png +0 -0
  212. package/containers/Login/components/LoginForm/index.js +0 -58
  213. package/containers/Login/components/LoginForm/messages.js +0 -21
  214. package/containers/Login/components/LoginForm/tests/index.test.js +0 -10
  215. package/containers/Login/index.js +0 -105
  216. package/containers/Login/messages.js +0 -21
  217. package/containers/Login/selectors.js +0 -25
  218. package/containers/Login/tests/index.test.js +0 -10
  219. package/containers/Login/tests/sagas.test.js +0 -15
  220. package/containers/Login/tests/selectors.test.js +0 -10
  221. package/containers/MobilePush/Create/_mobilePushCreate.scss +0 -25
  222. package/containers/MobilePush/Create/actions.js +0 -46
  223. package/containers/MobilePush/Create/constants.js +0 -23
  224. package/containers/MobilePush/Create/index.js +0 -2248
  225. package/containers/MobilePush/Create/messages.js +0 -233
  226. package/containers/MobilePush/Create/reducer.js +0 -70
  227. package/containers/MobilePush/Create/sagas.js +0 -60
  228. package/containers/MobilePush/Create/selectors.js +0 -28
  229. package/containers/MobilePush/Create/tests/actions.test.js +0 -18
  230. package/containers/MobilePush/Create/tests/index.test.js +0 -10
  231. package/containers/MobilePush/Create/tests/reducer.test.js +0 -9
  232. package/containers/MobilePush/Create/tests/sagas.test.js +0 -15
  233. package/containers/MobilePush/Create/tests/selectors.test.js +0 -10
  234. package/containers/MobilePush/Edit/_mobilePushCreate.scss +0 -25
  235. package/containers/MobilePush/Edit/actions.js +0 -84
  236. package/containers/MobilePush/Edit/constants.js +0 -35
  237. package/containers/MobilePush/Edit/index.js +0 -2536
  238. package/containers/MobilePush/Edit/messages.js +0 -249
  239. package/containers/MobilePush/Edit/reducer.js +0 -112
  240. package/containers/MobilePush/Edit/sagas.js +0 -118
  241. package/containers/MobilePush/Edit/selectors.js +0 -29
  242. package/containers/MobilePush/Edit/tests/actions.test.js +0 -18
  243. package/containers/MobilePush/Edit/tests/index.test.js +0 -10
  244. package/containers/MobilePush/Edit/tests/reducer.test.js +0 -9
  245. package/containers/MobilePush/Edit/tests/sagas.test.js +0 -15
  246. package/containers/MobilePush/Edit/tests/selectors.test.js +0 -10
  247. package/containers/NotFoundPage/index.js +0 -25
  248. package/containers/NotFoundPage/messages.js +0 -13
  249. package/containers/NotFoundPage/tests/index.test.js +0 -17
  250. package/containers/Sms/Create/_smsCreate.scss +0 -45
  251. package/containers/Sms/Create/actions.js +0 -27
  252. package/containers/Sms/Create/constants.js +0 -16
  253. package/containers/Sms/Create/index.js +0 -1486
  254. package/containers/Sms/Create/messages.js +0 -85
  255. package/containers/Sms/Create/reducer.js +0 -41
  256. package/containers/Sms/Create/sagas.js +0 -36
  257. package/containers/Sms/Create/selectors.js +0 -28
  258. package/containers/Sms/Create/tests/actions.test.js +0 -18
  259. package/containers/Sms/Create/tests/index.test.js +0 -10
  260. package/containers/Sms/Create/tests/reducer.test.js +0 -9
  261. package/containers/Sms/Create/tests/sagas.test.js +0 -15
  262. package/containers/Sms/Create/tests/selectors.test.js +0 -10
  263. package/containers/Sms/Edit/actions.js +0 -40
  264. package/containers/Sms/Edit/constants.js +0 -17
  265. package/containers/Sms/Edit/index.js +0 -1470
  266. package/containers/Sms/Edit/messages.js +0 -89
  267. package/containers/Sms/Edit/reducer.js +0 -50
  268. package/containers/Sms/Edit/sagas.js +0 -52
  269. package/containers/Sms/Edit/selectors.js +0 -32
  270. package/containers/Sms/Edit/tests/actions.test.js +0 -18
  271. package/containers/Sms/Edit/tests/index.test.js +0 -10
  272. package/containers/Sms/Edit/tests/reducer.test.js +0 -9
  273. package/containers/Sms/Edit/tests/sagas.test.js +0 -15
  274. package/containers/Sms/Edit/tests/selectors.test.js +0 -10
  275. package/containers/TagList/_tagList.scss +0 -8
  276. package/containers/TagList/actions.js +0 -15
  277. package/containers/TagList/constants.js +0 -7
  278. package/containers/TagList/index.js +0 -234
  279. package/containers/TagList/messages.js +0 -13
  280. package/containers/TagList/reducer.js +0 -23
  281. package/containers/TagList/sagas.js +0 -11
  282. package/containers/TagList/selectors.js +0 -25
  283. package/containers/TagList/tests/actions.test.js +0 -18
  284. package/containers/TagList/tests/index.test.js +0 -10
  285. package/containers/TagList/tests/reducer.test.js +0 -9
  286. package/containers/TagList/tests/sagas.test.js +0 -15
  287. package/containers/TagList/tests/selectors.test.js +0 -10
  288. package/containers/Templates/_templates.scss +0 -333
  289. package/containers/Templates/actions.js +0 -108
  290. package/containers/Templates/constants.js +0 -45
  291. package/containers/Templates/index.js +0 -1582
  292. package/containers/Templates/messages.js +0 -233
  293. package/containers/Templates/reducer.js +0 -141
  294. package/containers/Templates/sagas.js +0 -168
  295. package/containers/Templates/selectors.js +0 -28
  296. package/containers/Templates/tests/actions.test.js +0 -18
  297. package/containers/Templates/tests/index.test.js +0 -10
  298. package/containers/Templates/tests/reducer.test.js +0 -9
  299. package/containers/Templates/tests/sagas.test.js +0 -15
  300. package/containers/Templates/tests/selectors.test.js +0 -10
  301. package/containers/TestPage/constants.js +0 -7
  302. package/containers/TestPage/index.js +0 -31
  303. package/containers/TestPage/messages.js +0 -13
  304. package/containers/TestPage/reducer.js +0 -21
  305. package/containers/TestPage/sagas.js +0 -11
  306. package/containers/Testv2/actions.js +0 -15
  307. package/containers/Testv2/constants.js +0 -7
  308. package/containers/Testv2/index.js +0 -45
  309. package/containers/Testv2/messages.js +0 -13
  310. package/containers/Testv2/reducer.js +0 -23
  311. package/containers/Testv2/sagas.js +0 -11
  312. package/containers/Testv2/selectors.js +0 -25
  313. package/containers/Testv2/tests/actions.test.js +0 -18
  314. package/containers/Testv2/tests/index.test.js +0 -10
  315. package/containers/Testv2/tests/reducer.test.js +0 -9
  316. package/containers/Testv2/tests/sagas.test.js +0 -15
  317. package/containers/Testv2/tests/selectors.test.js +0 -10
  318. package/containers/WeChat/_wechat.scss +0 -8
  319. package/containers/WeChat/actions.js +0 -46
  320. package/containers/WeChat/constants.js +0 -28
  321. package/containers/WeChat/index.js +0 -1618
  322. package/containers/WeChat/messages.js +0 -73
  323. package/containers/WeChat/reducer.js +0 -74
  324. package/containers/WeChat/sagas.js +0 -86
  325. package/containers/WeChat/selectors.js +0 -25
  326. package/containers/WeChat/tests/actions.test.js +0 -18
  327. package/containers/WeChat/tests/index.test.js +0 -10
  328. package/containers/WeChat/tests/reducer.test.js +0 -9
  329. package/containers/WeChat/tests/sagas.test.js +0 -15
  330. package/containers/WeChat/tests/selectors.test.js +0 -10
  331. package/favicon.ico +0 -0
  332. package/global-styles.js +0 -15
  333. package/gtm/eventDefinitions.js +0 -17
  334. package/gtm/eventDefinitionsMap.js +0 -12
  335. package/gtm/tests/events.test.js +0 -3
  336. package/i18n.js +0 -39
  337. package/index.html +0 -42
  338. package/initialState.js +0 -38
  339. package/reducers.js +0 -65
  340. package/routes.js +0 -562
  341. package/schemas/user.js +0 -8
  342. package/services/api.js +0 -306
  343. package/services/localStorageApi.js +0 -33
  344. package/store.js +0 -61
  345. package/styles/_variables.scss +0 -53
  346. package/styles/abstracts/_functions.scss +0 -1
  347. package/styles/abstracts/_mixins.scss +0 -0
  348. package/styles/abstracts/_module.scss +0 -6
  349. package/styles/abstracts/_placeholders.scss +0 -0
  350. package/styles/abstracts/_variables.scss +0 -34
  351. package/styles/base/_animations.scss +0 -0
  352. package/styles/base/_base.scss +0 -64
  353. package/styles/base/_module.scss +0 -5
  354. package/styles/base/_reset.scss +0 -0
  355. package/styles/base/_typography.scss +0 -0
  356. package/styles/components/_module.scss +0 -11
  357. package/styles/components/autocompletebox/_module.scss +0 -60
  358. package/styles/components/breadcrumbs/_breadcrumbs.scss +0 -14
  359. package/styles/components/common/_accordianDropdown.scss +0 -35
  360. package/styles/components/common/_message.scss +0 -3
  361. package/styles/components/dimension/_dimension.scss +0 -77
  362. package/styles/components/filters/_dateFilter.scss +0 -68
  363. package/styles/components/filters/_dimensionFilter.scss +0 -66
  364. package/styles/components/footer/_footer.scss +0 -13
  365. package/styles/components/login/_loginForm.scss +0 -0
  366. package/styles/components/navigation/_leftnav.scss +0 -213
  367. package/styles/components/navigation/_topnav.scss +0 -52
  368. package/styles/containers/_module.scss +0 -3
  369. package/styles/containers/layout/_layoutPage.scss +0 -169
  370. package/styles/containers/login/_loginPage.scss +0 -60
  371. package/styles/containers/reports/_reportPage.scss +0 -128
  372. package/styles/layout/_footer.scss +0 -0
  373. package/styles/layout/_forms.scss +0 -3
  374. package/styles/layout/_grid.scss +0 -3
  375. package/styles/layout/_header.scss +0 -25
  376. package/styles/layout/_module.scss +0 -1
  377. package/styles/layout/_navigation.scss +0 -0
  378. package/styles/layout/_sidebar.scss +0 -0
  379. package/styles/main.scss +0 -6
  380. package/styles/vendor/_module.scss +0 -0
  381. package/styles/vendor/semantic/dist/components/accordion.css +0 -311
  382. package/styles/vendor/semantic/dist/components/accordion.js +0 -610
  383. package/styles/vendor/semantic/dist/components/accordion.min.css +0 -9
  384. package/styles/vendor/semantic/dist/components/accordion.min.js +0 -10
  385. package/styles/vendor/semantic/dist/components/accordion.rtl.css +0 -252
  386. package/styles/vendor/semantic/dist/components/accordion.rtl.min.css +0 -9
  387. package/styles/vendor/semantic/dist/components/ad.css +0 -275
  388. package/styles/vendor/semantic/dist/components/ad.min.css +0 -10
  389. package/styles/vendor/semantic/dist/components/ad.rtl.css +0 -275
  390. package/styles/vendor/semantic/dist/components/ad.rtl.min.css +0 -10
  391. package/styles/vendor/semantic/dist/components/api.js +0 -1167
  392. package/styles/vendor/semantic/dist/components/api.min.js +0 -10
  393. package/styles/vendor/semantic/dist/components/breadcrumb.css +0 -124
  394. package/styles/vendor/semantic/dist/components/breadcrumb.min.css +0 -9
  395. package/styles/vendor/semantic/dist/components/breadcrumb.rtl.css +0 -124
  396. package/styles/vendor/semantic/dist/components/breadcrumb.rtl.min.css +0 -9
  397. package/styles/vendor/semantic/dist/components/button.css +0 -3557
  398. package/styles/vendor/semantic/dist/components/button.min.css +0 -9
  399. package/styles/vendor/semantic/dist/components/button.rtl.css +0 -3450
  400. package/styles/vendor/semantic/dist/components/button.rtl.min.css +0 -9
  401. package/styles/vendor/semantic/dist/components/card.css +0 -964
  402. package/styles/vendor/semantic/dist/components/card.min.css +0 -9
  403. package/styles/vendor/semantic/dist/components/card.rtl.css +0 -964
  404. package/styles/vendor/semantic/dist/components/card.rtl.min.css +0 -9
  405. package/styles/vendor/semantic/dist/components/checkbox.css +0 -625
  406. package/styles/vendor/semantic/dist/components/checkbox.js +0 -831
  407. package/styles/vendor/semantic/dist/components/checkbox.min.css +0 -9
  408. package/styles/vendor/semantic/dist/components/checkbox.min.js +0 -10
  409. package/styles/vendor/semantic/dist/components/checkbox.rtl.css +0 -625
  410. package/styles/vendor/semantic/dist/components/checkbox.rtl.min.css +0 -9
  411. package/styles/vendor/semantic/dist/components/comment.css +0 -270
  412. package/styles/vendor/semantic/dist/components/comment.min.css +0 -9
  413. package/styles/vendor/semantic/dist/components/comment.rtl.css +0 -270
  414. package/styles/vendor/semantic/dist/components/comment.rtl.min.css +0 -9
  415. package/styles/vendor/semantic/dist/components/container.css +0 -147
  416. package/styles/vendor/semantic/dist/components/container.min.css +0 -9
  417. package/styles/vendor/semantic/dist/components/container.rtl.css +0 -147
  418. package/styles/vendor/semantic/dist/components/container.rtl.min.css +0 -9
  419. package/styles/vendor/semantic/dist/components/dimmer.css +0 -200
  420. package/styles/vendor/semantic/dist/components/dimmer.js +0 -708
  421. package/styles/vendor/semantic/dist/components/dimmer.min.css +0 -9
  422. package/styles/vendor/semantic/dist/components/dimmer.min.js +0 -10
  423. package/styles/vendor/semantic/dist/components/dimmer.rtl.css +0 -200
  424. package/styles/vendor/semantic/dist/components/dimmer.rtl.min.css +0 -9
  425. package/styles/vendor/semantic/dist/components/divider.css +0 -260
  426. package/styles/vendor/semantic/dist/components/divider.min.css +0 -9
  427. package/styles/vendor/semantic/dist/components/divider.rtl.css +0 -260
  428. package/styles/vendor/semantic/dist/components/divider.rtl.min.css +0 -9
  429. package/styles/vendor/semantic/dist/components/dropdown.css +0 -1487
  430. package/styles/vendor/semantic/dist/components/dropdown.js +0 -3741
  431. package/styles/vendor/semantic/dist/components/dropdown.min.css +0 -9
  432. package/styles/vendor/semantic/dist/components/dropdown.min.js +0 -11
  433. package/styles/vendor/semantic/dist/components/dropdown.rtl.css +0 -1417
  434. package/styles/vendor/semantic/dist/components/dropdown.rtl.min.css +0 -9
  435. package/styles/vendor/semantic/dist/components/embed.css +0 -166
  436. package/styles/vendor/semantic/dist/components/embed.js +0 -696
  437. package/styles/vendor/semantic/dist/components/embed.min.css +0 -9
  438. package/styles/vendor/semantic/dist/components/embed.min.js +0 -10
  439. package/styles/vendor/semantic/dist/components/embed.rtl.css +0 -166
  440. package/styles/vendor/semantic/dist/components/embed.rtl.min.css +0 -9
  441. package/styles/vendor/semantic/dist/components/feed.css +0 -296
  442. package/styles/vendor/semantic/dist/components/feed.min.css +0 -9
  443. package/styles/vendor/semantic/dist/components/feed.rtl.css +0 -296
  444. package/styles/vendor/semantic/dist/components/feed.rtl.min.css +0 -9
  445. package/styles/vendor/semantic/dist/components/flag.css +0 -1031
  446. package/styles/vendor/semantic/dist/components/flag.min.css +0 -9
  447. package/styles/vendor/semantic/dist/components/flag.rtl.css +0 -1031
  448. package/styles/vendor/semantic/dist/components/flag.rtl.min.css +0 -9
  449. package/styles/vendor/semantic/dist/components/form.css +0 -1067
  450. package/styles/vendor/semantic/dist/components/form.js +0 -1558
  451. package/styles/vendor/semantic/dist/components/form.min.css +0 -9
  452. package/styles/vendor/semantic/dist/components/form.min.js +0 -10
  453. package/styles/vendor/semantic/dist/components/form.rtl.css +0 -1067
  454. package/styles/vendor/semantic/dist/components/form.rtl.min.css +0 -9
  455. package/styles/vendor/semantic/dist/components/grid.css +0 -2002
  456. package/styles/vendor/semantic/dist/components/grid.min.css +0 -9
  457. package/styles/vendor/semantic/dist/components/grid.rtl.css +0 -2002
  458. package/styles/vendor/semantic/dist/components/grid.rtl.min.css +0 -9
  459. package/styles/vendor/semantic/dist/components/header.css +0 -721
  460. package/styles/vendor/semantic/dist/components/header.min.css +0 -9
  461. package/styles/vendor/semantic/dist/components/header.rtl.css +0 -721
  462. package/styles/vendor/semantic/dist/components/header.rtl.min.css +0 -9
  463. package/styles/vendor/semantic/dist/components/icon.css +0 -3142
  464. package/styles/vendor/semantic/dist/components/icon.min.css +0 -9
  465. package/styles/vendor/semantic/dist/components/icon.rtl.css +0 -3142
  466. package/styles/vendor/semantic/dist/components/icon.rtl.min.css +0 -9
  467. package/styles/vendor/semantic/dist/components/image.css +0 -306
  468. package/styles/vendor/semantic/dist/components/image.min.css +0 -9
  469. package/styles/vendor/semantic/dist/components/image.rtl.css +0 -306
  470. package/styles/vendor/semantic/dist/components/image.rtl.min.css +0 -9
  471. package/styles/vendor/semantic/dist/components/input.css +0 -536
  472. package/styles/vendor/semantic/dist/components/input.min.css +0 -9
  473. package/styles/vendor/semantic/dist/components/input.rtl.css +0 -510
  474. package/styles/vendor/semantic/dist/components/input.rtl.min.css +0 -9
  475. package/styles/vendor/semantic/dist/components/item.css +0 -475
  476. package/styles/vendor/semantic/dist/components/item.min.css +0 -9
  477. package/styles/vendor/semantic/dist/components/item.rtl.css +0 -475
  478. package/styles/vendor/semantic/dist/components/item.rtl.min.css +0 -9
  479. package/styles/vendor/semantic/dist/components/label.css +0 -1320
  480. package/styles/vendor/semantic/dist/components/label.min.css +0 -9
  481. package/styles/vendor/semantic/dist/components/label.rtl.css +0 -1307
  482. package/styles/vendor/semantic/dist/components/label.rtl.min.css +0 -9
  483. package/styles/vendor/semantic/dist/components/list.css +0 -951
  484. package/styles/vendor/semantic/dist/components/list.min.css +0 -9
  485. package/styles/vendor/semantic/dist/components/list.rtl.css +0 -951
  486. package/styles/vendor/semantic/dist/components/list.rtl.min.css +0 -9
  487. package/styles/vendor/semantic/dist/components/loader.css +0 -347
  488. package/styles/vendor/semantic/dist/components/loader.min.css +0 -9
  489. package/styles/vendor/semantic/dist/components/loader.rtl.css +0 -347
  490. package/styles/vendor/semantic/dist/components/loader.rtl.min.css +0 -9
  491. package/styles/vendor/semantic/dist/components/menu.css +0 -2020
  492. package/styles/vendor/semantic/dist/components/menu.min.css +0 -1
  493. package/styles/vendor/semantic/dist/components/menu.rtl.css +0 -2002
  494. package/styles/vendor/semantic/dist/components/menu.rtl.min.css +0 -1
  495. package/styles/vendor/semantic/dist/components/message.css +0 -477
  496. package/styles/vendor/semantic/dist/components/message.min.css +0 -9
  497. package/styles/vendor/semantic/dist/components/message.rtl.css +0 -477
  498. package/styles/vendor/semantic/dist/components/message.rtl.min.css +0 -9
  499. package/styles/vendor/semantic/dist/components/modal.css +0 -512
  500. package/styles/vendor/semantic/dist/components/modal.js +0 -913
  501. package/styles/vendor/semantic/dist/components/modal.min.css +0 -9
  502. package/styles/vendor/semantic/dist/components/modal.min.js +0 -10
  503. package/styles/vendor/semantic/dist/components/modal.rtl.css +0 -499
  504. package/styles/vendor/semantic/dist/components/modal.rtl.min.css +0 -9
  505. package/styles/vendor/semantic/dist/components/nag.css +0 -147
  506. package/styles/vendor/semantic/dist/components/nag.js +0 -507
  507. package/styles/vendor/semantic/dist/components/nag.min.css +0 -9
  508. package/styles/vendor/semantic/dist/components/nag.min.js +0 -10
  509. package/styles/vendor/semantic/dist/components/nag.rtl.css +0 -147
  510. package/styles/vendor/semantic/dist/components/nag.rtl.min.css +0 -9
  511. package/styles/vendor/semantic/dist/components/popup.css +0 -733
  512. package/styles/vendor/semantic/dist/components/popup.js +0 -1475
  513. package/styles/vendor/semantic/dist/components/popup.min.css +0 -9
  514. package/styles/vendor/semantic/dist/components/popup.min.js +0 -10
  515. package/styles/vendor/semantic/dist/components/popup.rtl.css +0 -727
  516. package/styles/vendor/semantic/dist/components/popup.rtl.min.css +0 -9
  517. package/styles/vendor/semantic/dist/components/progress.css +0 -516
  518. package/styles/vendor/semantic/dist/components/progress.js +0 -931
  519. package/styles/vendor/semantic/dist/components/progress.min.css +0 -9
  520. package/styles/vendor/semantic/dist/components/progress.min.js +0 -10
  521. package/styles/vendor/semantic/dist/components/progress.rtl.css +0 -516
  522. package/styles/vendor/semantic/dist/components/progress.rtl.min.css +0 -9
  523. package/styles/vendor/semantic/dist/components/rail.css +0 -152
  524. package/styles/vendor/semantic/dist/components/rail.min.css +0 -9
  525. package/styles/vendor/semantic/dist/components/rail.rtl.css +0 -152
  526. package/styles/vendor/semantic/dist/components/rail.rtl.min.css +0 -9
  527. package/styles/vendor/semantic/dist/components/rating.css +0 -263
  528. package/styles/vendor/semantic/dist/components/rating.js +0 -508
  529. package/styles/vendor/semantic/dist/components/rating.min.css +0 -9
  530. package/styles/vendor/semantic/dist/components/rating.min.js +0 -10
  531. package/styles/vendor/semantic/dist/components/rating.rtl.css +0 -263
  532. package/styles/vendor/semantic/dist/components/rating.rtl.min.css +0 -9
  533. package/styles/vendor/semantic/dist/components/reset.css +0 -424
  534. package/styles/vendor/semantic/dist/components/reset.min.css +0 -9
  535. package/styles/vendor/semantic/dist/components/reset.rtl.css +0 -424
  536. package/styles/vendor/semantic/dist/components/reset.rtl.min.css +0 -9
  537. package/styles/vendor/semantic/dist/components/reveal.css +0 -284
  538. package/styles/vendor/semantic/dist/components/reveal.min.css +0 -9
  539. package/styles/vendor/semantic/dist/components/reveal.rtl.css +0 -284
  540. package/styles/vendor/semantic/dist/components/reveal.rtl.min.css +0 -9
  541. package/styles/vendor/semantic/dist/components/search.css +0 -408
  542. package/styles/vendor/semantic/dist/components/search.js +0 -1407
  543. package/styles/vendor/semantic/dist/components/search.min.css +0 -9
  544. package/styles/vendor/semantic/dist/components/search.min.js +0 -10
  545. package/styles/vendor/semantic/dist/components/search.rtl.css +0 -408
  546. package/styles/vendor/semantic/dist/components/search.rtl.min.css +0 -9
  547. package/styles/vendor/semantic/dist/components/segment.css +0 -791
  548. package/styles/vendor/semantic/dist/components/segment.min.css +0 -9
  549. package/styles/vendor/semantic/dist/components/segment.rtl.css +0 -791
  550. package/styles/vendor/semantic/dist/components/segment.rtl.min.css +0 -9
  551. package/styles/vendor/semantic/dist/components/shape.css +0 -157
  552. package/styles/vendor/semantic/dist/components/shape.js +0 -921
  553. package/styles/vendor/semantic/dist/components/shape.min.css +0 -9
  554. package/styles/vendor/semantic/dist/components/shape.min.js +0 -10
  555. package/styles/vendor/semantic/dist/components/shape.rtl.css +0 -157
  556. package/styles/vendor/semantic/dist/components/shape.rtl.min.css +0 -9
  557. package/styles/vendor/semantic/dist/components/sidebar.css +0 -638
  558. package/styles/vendor/semantic/dist/components/sidebar.js +0 -1036
  559. package/styles/vendor/semantic/dist/components/sidebar.min.css +0 -9
  560. package/styles/vendor/semantic/dist/components/sidebar.min.js +0 -10
  561. package/styles/vendor/semantic/dist/components/sidebar.rtl.css +0 -638
  562. package/styles/vendor/semantic/dist/components/sidebar.rtl.min.css +0 -9
  563. package/styles/vendor/semantic/dist/components/site.css +0 -154
  564. package/styles/vendor/semantic/dist/components/site.js +0 -487
  565. package/styles/vendor/semantic/dist/components/site.min.css +0 -9
  566. package/styles/vendor/semantic/dist/components/site.min.js +0 -10
  567. package/styles/vendor/semantic/dist/components/site.rtl.css +0 -154
  568. package/styles/vendor/semantic/dist/components/site.rtl.min.css +0 -9
  569. package/styles/vendor/semantic/dist/components/state.js +0 -708
  570. package/styles/vendor/semantic/dist/components/state.min.js +0 -10
  571. package/styles/vendor/semantic/dist/components/statistic.css +0 -569
  572. package/styles/vendor/semantic/dist/components/statistic.min.css +0 -9
  573. package/styles/vendor/semantic/dist/components/statistic.rtl.css +0 -569
  574. package/styles/vendor/semantic/dist/components/statistic.rtl.min.css +0 -9
  575. package/styles/vendor/semantic/dist/components/step.css +0 -623
  576. package/styles/vendor/semantic/dist/components/step.min.css +0 -9
  577. package/styles/vendor/semantic/dist/components/step.rtl.css +0 -623
  578. package/styles/vendor/semantic/dist/components/step.rtl.min.css +0 -9
  579. package/styles/vendor/semantic/dist/components/sticky.css +0 -78
  580. package/styles/vendor/semantic/dist/components/sticky.js +0 -942
  581. package/styles/vendor/semantic/dist/components/sticky.min.css +0 -9
  582. package/styles/vendor/semantic/dist/components/sticky.min.js +0 -10
  583. package/styles/vendor/semantic/dist/components/sticky.rtl.css +0 -78
  584. package/styles/vendor/semantic/dist/components/sticky.rtl.min.css +0 -9
  585. package/styles/vendor/semantic/dist/components/tab.css +0 -91
  586. package/styles/vendor/semantic/dist/components/tab.js +0 -946
  587. package/styles/vendor/semantic/dist/components/tab.min.css +0 -9
  588. package/styles/vendor/semantic/dist/components/tab.min.js +0 -10
  589. package/styles/vendor/semantic/dist/components/tab.rtl.css +0 -91
  590. package/styles/vendor/semantic/dist/components/tab.rtl.min.css +0 -9
  591. package/styles/vendor/semantic/dist/components/table.css +0 -1108
  592. package/styles/vendor/semantic/dist/components/table.min.css +0 -9
  593. package/styles/vendor/semantic/dist/components/table.rtl.css +0 -1108
  594. package/styles/vendor/semantic/dist/components/table.rtl.min.css +0 -9
  595. package/styles/vendor/semantic/dist/components/transition.css +0 -1964
  596. package/styles/vendor/semantic/dist/components/transition.js +0 -1095
  597. package/styles/vendor/semantic/dist/components/transition.min.css +0 -9
  598. package/styles/vendor/semantic/dist/components/transition.min.js +0 -10
  599. package/styles/vendor/semantic/dist/components/transition.rtl.css +0 -1964
  600. package/styles/vendor/semantic/dist/components/transition.rtl.min.css +0 -9
  601. package/styles/vendor/semantic/dist/components/visibility.js +0 -1283
  602. package/styles/vendor/semantic/dist/components/visibility.min.js +0 -10
  603. package/styles/vendor/semantic/dist/semantic.css +0 -36950
  604. package/styles/vendor/semantic/dist/semantic.js +0 -22500
  605. package/styles/vendor/semantic/dist/semantic.min.css +0 -364
  606. package/styles/vendor/semantic/dist/semantic.min.js +0 -19
  607. package/styles/vendor/semantic/dist/semantic.rtl.css +0 -36579
  608. package/styles/vendor/semantic/dist/semantic.rtl.min.css +0 -11
  609. package/styles/vendor/semantic/dist/themes/basic/assets/fonts/icons.eot +0 -0
  610. package/styles/vendor/semantic/dist/themes/basic/assets/fonts/icons.svg +0 -450
  611. package/styles/vendor/semantic/dist/themes/basic/assets/fonts/icons.ttf +0 -0
  612. package/styles/vendor/semantic/dist/themes/basic/assets/fonts/icons.woff +0 -0
  613. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.eot +0 -0
  614. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.svg +0 -685
  615. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.ttf +0 -0
  616. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.woff +0 -0
  617. package/styles/vendor/semantic/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  618. package/styles/vendor/semantic/dist/themes/default/assets/images/flags.png +0 -0
  619. package/styles/vendor/semantic/dist/themes/github/assets/fonts/octicons-local.ttf +0 -0
  620. package/styles/vendor/semantic/dist/themes/github/assets/fonts/octicons.svg +0 -200
  621. package/styles/vendor/semantic/dist/themes/github/assets/fonts/octicons.ttf +0 -0
  622. package/styles/vendor/semantic/dist/themes/github/assets/fonts/octicons.woff +0 -0
  623. package/styles/vendor/semantic/dist/themes/material/assets/fonts/icons.eot +0 -0
  624. package/styles/vendor/semantic/dist/themes/material/assets/fonts/icons.svg +0 -2373
  625. package/styles/vendor/semantic/dist/themes/material/assets/fonts/icons.ttf +0 -0
  626. package/styles/vendor/semantic/dist/themes/material/assets/fonts/icons.woff +0 -0
  627. package/styles/vendor/semantic/gulpfile.js +0 -72
  628. package/styles/vendor/semantic/src/definitions/behaviors/api.js +0 -1167
  629. package/styles/vendor/semantic/src/definitions/behaviors/colorize.js +0 -280
  630. package/styles/vendor/semantic/src/definitions/behaviors/form.js +0 -1558
  631. package/styles/vendor/semantic/src/definitions/behaviors/state.js +0 -708
  632. package/styles/vendor/semantic/src/definitions/behaviors/visibility.js +0 -1283
  633. package/styles/vendor/semantic/src/definitions/behaviors/visit.js +0 -525
  634. package/styles/vendor/semantic/src/definitions/collections/breadcrumb.less +0 -122
  635. package/styles/vendor/semantic/src/definitions/collections/form.less +0 -1053
  636. package/styles/vendor/semantic/src/definitions/collections/grid.less +0 -1920
  637. package/styles/vendor/semantic/src/definitions/collections/menu.less +0 -1965
  638. package/styles/vendor/semantic/src/definitions/collections/message.less +0 -478
  639. package/styles/vendor/semantic/src/definitions/collections/table.less +0 -1114
  640. package/styles/vendor/semantic/src/definitions/elements/button.less +0 -3427
  641. package/styles/vendor/semantic/src/definitions/elements/container.less +0 -143
  642. package/styles/vendor/semantic/src/definitions/elements/divider.less +0 -255
  643. package/styles/vendor/semantic/src/definitions/elements/flag.less +0 -52
  644. package/styles/vendor/semantic/src/definitions/elements/header.less +0 -708
  645. package/styles/vendor/semantic/src/definitions/elements/icon.less +0 -477
  646. package/styles/vendor/semantic/src/definitions/elements/image.less +0 -324
  647. package/styles/vendor/semantic/src/definitions/elements/input.less +0 -507
  648. package/styles/vendor/semantic/src/definitions/elements/label.less +0 -1257
  649. package/styles/vendor/semantic/src/definitions/elements/list.less +0 -951
  650. package/styles/vendor/semantic/src/definitions/elements/loader.less +0 -332
  651. package/styles/vendor/semantic/src/definitions/elements/rail.less +0 -154
  652. package/styles/vendor/semantic/src/definitions/elements/reveal.less +0 -265
  653. package/styles/vendor/semantic/src/definitions/elements/segment.less +0 -768
  654. package/styles/vendor/semantic/src/definitions/elements/step.less +0 -562
  655. package/styles/vendor/semantic/src/definitions/globals/reset.less +0 -40
  656. package/styles/vendor/semantic/src/definitions/globals/site.js +0 -487
  657. package/styles/vendor/semantic/src/definitions/globals/site.less +0 -166
  658. package/styles/vendor/semantic/src/definitions/modules/accordion.js +0 -610
  659. package/styles/vendor/semantic/src/definitions/modules/accordion.less +0 -219
  660. package/styles/vendor/semantic/src/definitions/modules/checkbox.js +0 -831
  661. package/styles/vendor/semantic/src/definitions/modules/checkbox.less +0 -598
  662. package/styles/vendor/semantic/src/definitions/modules/dimmer.js +0 -708
  663. package/styles/vendor/semantic/src/definitions/modules/dimmer.less +0 -189
  664. package/styles/vendor/semantic/src/definitions/modules/dropdown.js +0 -3741
  665. package/styles/vendor/semantic/src/definitions/modules/dropdown.less +0 -1352
  666. package/styles/vendor/semantic/src/definitions/modules/embed.js +0 -696
  667. package/styles/vendor/semantic/src/definitions/modules/embed.less +0 -163
  668. package/styles/vendor/semantic/src/definitions/modules/modal.js +0 -913
  669. package/styles/vendor/semantic/src/definitions/modules/modal.less +0 -484
  670. package/styles/vendor/semantic/src/definitions/modules/nag.js +0 -507
  671. package/styles/vendor/semantic/src/definitions/modules/nag.less +0 -158
  672. package/styles/vendor/semantic/src/definitions/modules/popup.js +0 -1475
  673. package/styles/vendor/semantic/src/definitions/modules/popup.less +0 -712
  674. package/styles/vendor/semantic/src/definitions/modules/progress.js +0 -931
  675. package/styles/vendor/semantic/src/definitions/modules/progress.less +0 -503
  676. package/styles/vendor/semantic/src/definitions/modules/rating.js +0 -508
  677. package/styles/vendor/semantic/src/definitions/modules/rating.less +0 -191
  678. package/styles/vendor/semantic/src/definitions/modules/search.js +0 -1407
  679. package/styles/vendor/semantic/src/definitions/modules/search.less +0 -417
  680. package/styles/vendor/semantic/src/definitions/modules/shape.js +0 -921
  681. package/styles/vendor/semantic/src/definitions/modules/shape.less +0 -150
  682. package/styles/vendor/semantic/src/definitions/modules/sidebar.js +0 -1036
  683. package/styles/vendor/semantic/src/definitions/modules/sidebar.less +0 -552
  684. package/styles/vendor/semantic/src/definitions/modules/sticky.js +0 -942
  685. package/styles/vendor/semantic/src/definitions/modules/sticky.less +0 -74
  686. package/styles/vendor/semantic/src/definitions/modules/tab.js +0 -946
  687. package/styles/vendor/semantic/src/definitions/modules/tab.less +0 -94
  688. package/styles/vendor/semantic/src/definitions/modules/transition.js +0 -1095
  689. package/styles/vendor/semantic/src/definitions/modules/transition.less +0 -78
  690. package/styles/vendor/semantic/src/definitions/views/ad.less +0 -268
  691. package/styles/vendor/semantic/src/definitions/views/card.less +0 -1059
  692. package/styles/vendor/semantic/src/definitions/views/comment.less +0 -269
  693. package/styles/vendor/semantic/src/definitions/views/feed.less +0 -278
  694. package/styles/vendor/semantic/src/definitions/views/item.less +0 -464
  695. package/styles/vendor/semantic/src/definitions/views/statistic.less +0 -557
  696. package/styles/vendor/semantic/src/semantic.less +0 -66
  697. package/styles/vendor/semantic/src/site/collections/breadcrumb.overrides +0 -3
  698. package/styles/vendor/semantic/src/site/collections/breadcrumb.variables +0 -3
  699. package/styles/vendor/semantic/src/site/collections/form.overrides +0 -3
  700. package/styles/vendor/semantic/src/site/collections/form.variables +0 -3
  701. package/styles/vendor/semantic/src/site/collections/grid.overrides +0 -3
  702. package/styles/vendor/semantic/src/site/collections/grid.variables +0 -3
  703. package/styles/vendor/semantic/src/site/collections/menu.overrides +0 -24
  704. package/styles/vendor/semantic/src/site/collections/menu.variables +0 -6
  705. package/styles/vendor/semantic/src/site/collections/message.overrides +0 -3
  706. package/styles/vendor/semantic/src/site/collections/message.variables +0 -3
  707. package/styles/vendor/semantic/src/site/collections/table.overrides +0 -3
  708. package/styles/vendor/semantic/src/site/collections/table.variables +0 -3
  709. package/styles/vendor/semantic/src/site/elements/button.overrides +0 -110
  710. package/styles/vendor/semantic/src/site/elements/button.variables +0 -3
  711. package/styles/vendor/semantic/src/site/elements/container.overrides +0 -3
  712. package/styles/vendor/semantic/src/site/elements/container.variables +0 -3
  713. package/styles/vendor/semantic/src/site/elements/divider.overrides +0 -3
  714. package/styles/vendor/semantic/src/site/elements/divider.variables +0 -3
  715. package/styles/vendor/semantic/src/site/elements/flag.overrides +0 -3
  716. package/styles/vendor/semantic/src/site/elements/flag.variables +0 -3
  717. package/styles/vendor/semantic/src/site/elements/header.overrides +0 -3
  718. package/styles/vendor/semantic/src/site/elements/header.variables +0 -3
  719. package/styles/vendor/semantic/src/site/elements/icon.overrides +0 -3
  720. package/styles/vendor/semantic/src/site/elements/icon.variables +0 -3
  721. package/styles/vendor/semantic/src/site/elements/image.overrides +0 -3
  722. package/styles/vendor/semantic/src/site/elements/image.variables +0 -3
  723. package/styles/vendor/semantic/src/site/elements/input.overrides +0 -25
  724. package/styles/vendor/semantic/src/site/elements/input.variables +0 -3
  725. package/styles/vendor/semantic/src/site/elements/label.overrides +0 -18
  726. package/styles/vendor/semantic/src/site/elements/label.variables +0 -3
  727. package/styles/vendor/semantic/src/site/elements/list.overrides +0 -3
  728. package/styles/vendor/semantic/src/site/elements/list.variables +0 -3
  729. package/styles/vendor/semantic/src/site/elements/loader.overrides +0 -3
  730. package/styles/vendor/semantic/src/site/elements/loader.variables +0 -3
  731. package/styles/vendor/semantic/src/site/elements/rail.overrides +0 -3
  732. package/styles/vendor/semantic/src/site/elements/rail.variables +0 -3
  733. package/styles/vendor/semantic/src/site/elements/reveal.overrides +0 -3
  734. package/styles/vendor/semantic/src/site/elements/reveal.variables +0 -3
  735. package/styles/vendor/semantic/src/site/elements/segment.overrides +0 -3
  736. package/styles/vendor/semantic/src/site/elements/segment.variables +0 -3
  737. package/styles/vendor/semantic/src/site/elements/step.overrides +0 -3
  738. package/styles/vendor/semantic/src/site/elements/step.variables +0 -3
  739. package/styles/vendor/semantic/src/site/globals/reset.overrides +0 -3
  740. package/styles/vendor/semantic/src/site/globals/reset.variables +0 -3
  741. package/styles/vendor/semantic/src/site/globals/site.overrides +0 -3
  742. package/styles/vendor/semantic/src/site/globals/site.variables +0 -52
  743. package/styles/vendor/semantic/src/site/modules/accordion.overrides +0 -67
  744. package/styles/vendor/semantic/src/site/modules/accordion.variables +0 -3
  745. package/styles/vendor/semantic/src/site/modules/chatroom.overrides +0 -3
  746. package/styles/vendor/semantic/src/site/modules/chatroom.variables +0 -3
  747. package/styles/vendor/semantic/src/site/modules/checkbox.overrides +0 -3
  748. package/styles/vendor/semantic/src/site/modules/checkbox.variables +0 -3
  749. package/styles/vendor/semantic/src/site/modules/dimmer.overrides +0 -3
  750. package/styles/vendor/semantic/src/site/modules/dimmer.variables +0 -3
  751. package/styles/vendor/semantic/src/site/modules/dropdown.overrides +0 -80
  752. package/styles/vendor/semantic/src/site/modules/dropdown.variables +0 -3
  753. package/styles/vendor/semantic/src/site/modules/embed.overrides +0 -3
  754. package/styles/vendor/semantic/src/site/modules/embed.variables +0 -0
  755. package/styles/vendor/semantic/src/site/modules/modal.overrides +0 -13
  756. package/styles/vendor/semantic/src/site/modules/modal.variables +0 -3
  757. package/styles/vendor/semantic/src/site/modules/nag.overrides +0 -3
  758. package/styles/vendor/semantic/src/site/modules/nag.variables +0 -3
  759. package/styles/vendor/semantic/src/site/modules/popup.overrides +0 -3
  760. package/styles/vendor/semantic/src/site/modules/popup.variables +0 -3
  761. package/styles/vendor/semantic/src/site/modules/progress.overrides +0 -3
  762. package/styles/vendor/semantic/src/site/modules/progress.variables +0 -3
  763. package/styles/vendor/semantic/src/site/modules/rating.overrides +0 -3
  764. package/styles/vendor/semantic/src/site/modules/rating.variables +0 -3
  765. package/styles/vendor/semantic/src/site/modules/search.overrides +0 -3
  766. package/styles/vendor/semantic/src/site/modules/search.variables +0 -3
  767. package/styles/vendor/semantic/src/site/modules/shape.overrides +0 -3
  768. package/styles/vendor/semantic/src/site/modules/shape.variables +0 -3
  769. package/styles/vendor/semantic/src/site/modules/sidebar.overrides +0 -3
  770. package/styles/vendor/semantic/src/site/modules/sidebar.variables +0 -3
  771. package/styles/vendor/semantic/src/site/modules/sticky.overrides +0 -3
  772. package/styles/vendor/semantic/src/site/modules/sticky.variables +0 -3
  773. package/styles/vendor/semantic/src/site/modules/tab.overrides +0 -3
  774. package/styles/vendor/semantic/src/site/modules/tab.variables +0 -3
  775. package/styles/vendor/semantic/src/site/modules/transition.overrides +0 -3
  776. package/styles/vendor/semantic/src/site/modules/transition.variables +0 -3
  777. package/styles/vendor/semantic/src/site/views/ad.overrides +0 -3
  778. package/styles/vendor/semantic/src/site/views/ad.variables +0 -3
  779. package/styles/vendor/semantic/src/site/views/card.overrides +0 -3
  780. package/styles/vendor/semantic/src/site/views/card.variables +0 -3
  781. package/styles/vendor/semantic/src/site/views/comment.overrides +0 -3
  782. package/styles/vendor/semantic/src/site/views/comment.variables +0 -3
  783. package/styles/vendor/semantic/src/site/views/feed.overrides +0 -3
  784. package/styles/vendor/semantic/src/site/views/feed.variables +0 -3
  785. package/styles/vendor/semantic/src/site/views/item.overrides +0 -3
  786. package/styles/vendor/semantic/src/site/views/item.variables +0 -3
  787. package/styles/vendor/semantic/src/site/views/statistic.overrides +0 -3
  788. package/styles/vendor/semantic/src/site/views/statistic.variables +0 -3
  789. package/styles/vendor/semantic/src/theme.config +0 -92
  790. package/styles/vendor/semantic/src/theme.less +0 -61
  791. package/styles/vendor/semantic/src/themes/amazon/elements/button.overrides +0 -46
  792. package/styles/vendor/semantic/src/themes/amazon/elements/button.variables +0 -58
  793. package/styles/vendor/semantic/src/themes/amazon/globals/site.variables +0 -43
  794. package/styles/vendor/semantic/src/themes/basic/assets/fonts/icons.eot +0 -0
  795. package/styles/vendor/semantic/src/themes/basic/assets/fonts/icons.svg +0 -450
  796. package/styles/vendor/semantic/src/themes/basic/assets/fonts/icons.ttf +0 -0
  797. package/styles/vendor/semantic/src/themes/basic/assets/fonts/icons.woff +0 -0
  798. package/styles/vendor/semantic/src/themes/basic/collections/table.overrides +0 -4
  799. package/styles/vendor/semantic/src/themes/basic/collections/table.variables +0 -11
  800. package/styles/vendor/semantic/src/themes/basic/elements/button.overrides +0 -4
  801. package/styles/vendor/semantic/src/themes/basic/elements/button.variables +0 -44
  802. package/styles/vendor/semantic/src/themes/basic/elements/icon.overrides +0 -189
  803. package/styles/vendor/semantic/src/themes/basic/elements/icon.variables +0 -12
  804. package/styles/vendor/semantic/src/themes/basic/elements/step.overrides +0 -10
  805. package/styles/vendor/semantic/src/themes/basic/elements/step.variables +0 -18
  806. package/styles/vendor/semantic/src/themes/basic/globals/reset.overrides +0 -5
  807. package/styles/vendor/semantic/src/themes/basic/globals/reset.variables +0 -3
  808. package/styles/vendor/semantic/src/themes/basic/modules/progress.overrides +0 -3
  809. package/styles/vendor/semantic/src/themes/basic/modules/progress.variables +0 -15
  810. package/styles/vendor/semantic/src/themes/basic/views/card.overrides +0 -4
  811. package/styles/vendor/semantic/src/themes/basic/views/card.variables +0 -35
  812. package/styles/vendor/semantic/src/themes/bookish/elements/header.overrides +0 -15
  813. package/styles/vendor/semantic/src/themes/bookish/elements/header.variables +0 -37
  814. package/styles/vendor/semantic/src/themes/bootstrap3/elements/button.overrides +0 -0
  815. package/styles/vendor/semantic/src/themes/bootstrap3/elements/button.variables +0 -63
  816. package/styles/vendor/semantic/src/themes/chubby/collections/form.overrides +0 -16
  817. package/styles/vendor/semantic/src/themes/chubby/collections/form.variables +0 -9
  818. package/styles/vendor/semantic/src/themes/chubby/collections/menu.overrides +0 -0
  819. package/styles/vendor/semantic/src/themes/chubby/collections/menu.variables +0 -40
  820. package/styles/vendor/semantic/src/themes/chubby/elements/button.overrides +0 -21
  821. package/styles/vendor/semantic/src/themes/chubby/elements/button.variables +0 -57
  822. package/styles/vendor/semantic/src/themes/chubby/elements/header.overrides +0 -5
  823. package/styles/vendor/semantic/src/themes/chubby/elements/header.variables +0 -21
  824. package/styles/vendor/semantic/src/themes/chubby/modules/accordion.overrides +0 -7
  825. package/styles/vendor/semantic/src/themes/chubby/modules/accordion.variables +0 -15
  826. package/styles/vendor/semantic/src/themes/chubby/views/comment.overrides +0 -12
  827. package/styles/vendor/semantic/src/themes/chubby/views/comment.variables +0 -46
  828. package/styles/vendor/semantic/src/themes/classic/collections/table.overrides +0 -3
  829. package/styles/vendor/semantic/src/themes/classic/collections/table.variables +0 -14
  830. package/styles/vendor/semantic/src/themes/classic/elements/button.overrides +0 -3
  831. package/styles/vendor/semantic/src/themes/classic/elements/button.variables +0 -96
  832. package/styles/vendor/semantic/src/themes/classic/elements/header.overrides +0 -3
  833. package/styles/vendor/semantic/src/themes/classic/elements/header.variables +0 -12
  834. package/styles/vendor/semantic/src/themes/classic/modules/progress.overrides +0 -3
  835. package/styles/vendor/semantic/src/themes/classic/modules/progress.variables +0 -9
  836. package/styles/vendor/semantic/src/themes/classic/views/card.overrides +0 -98
  837. package/styles/vendor/semantic/src/themes/classic/views/card.variables +0 -22
  838. package/styles/vendor/semantic/src/themes/colored/modules/checkbox.overrides +0 -0
  839. package/styles/vendor/semantic/src/themes/colored/modules/checkbox.variables +0 -29
  840. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.eot +0 -0
  841. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.svg +0 -685
  842. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.ttf +0 -0
  843. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.woff +0 -0
  844. package/styles/vendor/semantic/src/themes/default/assets/fonts/icons.woff2 +0 -0
  845. package/styles/vendor/semantic/src/themes/default/assets/images/flags.png +0 -0
  846. package/styles/vendor/semantic/src/themes/default/collections/breadcrumb.overrides +0 -3
  847. package/styles/vendor/semantic/src/themes/default/collections/breadcrumb.variables +0 -33
  848. package/styles/vendor/semantic/src/themes/default/collections/form.overrides +0 -3
  849. package/styles/vendor/semantic/src/themes/default/collections/form.variables +0 -195
  850. package/styles/vendor/semantic/src/themes/default/collections/grid.overrides +0 -4
  851. package/styles/vendor/semantic/src/themes/default/collections/grid.variables +0 -103
  852. package/styles/vendor/semantic/src/themes/default/collections/menu.overrides +0 -3
  853. package/styles/vendor/semantic/src/themes/default/collections/menu.variables +0 -458
  854. package/styles/vendor/semantic/src/themes/default/collections/message.overrides +0 -3
  855. package/styles/vendor/semantic/src/themes/default/collections/message.variables +0 -158
  856. package/styles/vendor/semantic/src/themes/default/collections/table.overrides +0 -0
  857. package/styles/vendor/semantic/src/themes/default/collections/table.variables +0 -246
  858. package/styles/vendor/semantic/src/themes/default/elements/button.overrides +0 -3
  859. package/styles/vendor/semantic/src/themes/default/elements/button.variables +0 -358
  860. package/styles/vendor/semantic/src/themes/default/elements/container.overrides +0 -3
  861. package/styles/vendor/semantic/src/themes/default/elements/container.variables +0 -58
  862. package/styles/vendor/semantic/src/themes/default/elements/divider.overrides +0 -18
  863. package/styles/vendor/semantic/src/themes/default/elements/divider.variables +0 -53
  864. package/styles/vendor/semantic/src/themes/default/elements/flag.overrides +0 -986
  865. package/styles/vendor/semantic/src/themes/default/elements/flag.variables +0 -13
  866. package/styles/vendor/semantic/src/themes/default/elements/header.overrides +0 -4
  867. package/styles/vendor/semantic/src/themes/default/elements/header.variables +0 -151
  868. package/styles/vendor/semantic/src/themes/default/elements/icon.overrides +0 -941
  869. package/styles/vendor/semantic/src/themes/default/elements/icon.variables +0 -62
  870. package/styles/vendor/semantic/src/themes/default/elements/image.overrides +0 -3
  871. package/styles/vendor/semantic/src/themes/default/elements/image.variables +0 -44
  872. package/styles/vendor/semantic/src/themes/default/elements/input.overrides +0 -3
  873. package/styles/vendor/semantic/src/themes/default/elements/input.variables +0 -101
  874. package/styles/vendor/semantic/src/themes/default/elements/label.overrides +0 -3
  875. package/styles/vendor/semantic/src/themes/default/elements/label.variables +0 -254
  876. package/styles/vendor/semantic/src/themes/default/elements/list.overrides +0 -3
  877. package/styles/vendor/semantic/src/themes/default/elements/list.variables +0 -224
  878. package/styles/vendor/semantic/src/themes/default/elements/loader.overrides +0 -3
  879. package/styles/vendor/semantic/src/themes/default/elements/loader.variables +0 -72
  880. package/styles/vendor/semantic/src/themes/default/elements/rail.overrides +0 -3
  881. package/styles/vendor/semantic/src/themes/default/elements/rail.variables +0 -34
  882. package/styles/vendor/semantic/src/themes/default/elements/reveal.overrides +0 -3
  883. package/styles/vendor/semantic/src/themes/default/elements/reveal.variables +0 -17
  884. package/styles/vendor/semantic/src/themes/default/elements/segment.overrides +0 -3
  885. package/styles/vendor/semantic/src/themes/default/elements/segment.variables +0 -139
  886. package/styles/vendor/semantic/src/themes/default/elements/step.overrides +0 -16
  887. package/styles/vendor/semantic/src/themes/default/elements/step.variables +0 -130
  888. package/styles/vendor/semantic/src/themes/default/globals/reset.overrides +0 -429
  889. package/styles/vendor/semantic/src/themes/default/globals/reset.variables +0 -3
  890. package/styles/vendor/semantic/src/themes/default/globals/site.overrides +0 -3
  891. package/styles/vendor/semantic/src/themes/default/globals/site.variables +0 -936
  892. package/styles/vendor/semantic/src/themes/default/modules/accordion.overrides +0 -28
  893. package/styles/vendor/semantic/src/themes/default/modules/accordion.variables +0 -100
  894. package/styles/vendor/semantic/src/themes/default/modules/chatroom.overrides +0 -3
  895. package/styles/vendor/semantic/src/themes/default/modules/chatroom.variables +0 -3
  896. package/styles/vendor/semantic/src/themes/default/modules/checkbox.overrides +0 -36
  897. package/styles/vendor/semantic/src/themes/default/modules/checkbox.variables +0 -193
  898. package/styles/vendor/semantic/src/themes/default/modules/dimmer.overrides +0 -3
  899. package/styles/vendor/semantic/src/themes/default/modules/dimmer.variables +0 -61
  900. package/styles/vendor/semantic/src/themes/default/modules/dropdown.overrides +0 -62
  901. package/styles/vendor/semantic/src/themes/default/modules/dropdown.variables +0 -373
  902. package/styles/vendor/semantic/src/themes/default/modules/embed.overrides +0 -3
  903. package/styles/vendor/semantic/src/themes/default/modules/embed.variables +0 -53
  904. package/styles/vendor/semantic/src/themes/default/modules/modal.overrides +0 -3
  905. package/styles/vendor/semantic/src/themes/default/modules/modal.variables +0 -151
  906. package/styles/vendor/semantic/src/themes/default/modules/nag.overrides +0 -3
  907. package/styles/vendor/semantic/src/themes/default/modules/nag.variables +0 -74
  908. package/styles/vendor/semantic/src/themes/default/modules/popup.overrides +0 -3
  909. package/styles/vendor/semantic/src/themes/default/modules/popup.variables +0 -137
  910. package/styles/vendor/semantic/src/themes/default/modules/progress.overrides +0 -3
  911. package/styles/vendor/semantic/src/themes/default/modules/progress.variables +0 -113
  912. package/styles/vendor/semantic/src/themes/default/modules/rating.overrides +0 -68
  913. package/styles/vendor/semantic/src/themes/default/modules/rating.variables +0 -103
  914. package/styles/vendor/semantic/src/themes/default/modules/search.overrides +0 -3
  915. package/styles/vendor/semantic/src/themes/default/modules/search.variables +0 -158
  916. package/styles/vendor/semantic/src/themes/default/modules/shape.overrides +0 -3
  917. package/styles/vendor/semantic/src/themes/default/modules/shape.variables +0 -40
  918. package/styles/vendor/semantic/src/themes/default/modules/sidebar.overrides +0 -3
  919. package/styles/vendor/semantic/src/themes/default/modules/sidebar.variables +0 -45
  920. package/styles/vendor/semantic/src/themes/default/modules/sticky.overrides +0 -3
  921. package/styles/vendor/semantic/src/themes/default/modules/sticky.variables +0 -7
  922. package/styles/vendor/semantic/src/themes/default/modules/tab.overrides +0 -3
  923. package/styles/vendor/semantic/src/themes/default/modules/tab.variables +0 -11
  924. package/styles/vendor/semantic/src/themes/default/modules/transition.overrides +0 -910
  925. package/styles/vendor/semantic/src/themes/default/modules/transition.variables +0 -10
  926. package/styles/vendor/semantic/src/themes/default/views/ad.overrides +0 -3
  927. package/styles/vendor/semantic/src/themes/default/views/ad.variables +0 -13
  928. package/styles/vendor/semantic/src/themes/default/views/card.overrides +0 -3
  929. package/styles/vendor/semantic/src/themes/default/views/card.variables +0 -220
  930. package/styles/vendor/semantic/src/themes/default/views/comment.overrides +0 -3
  931. package/styles/vendor/semantic/src/themes/default/views/comment.variables +0 -104
  932. package/styles/vendor/semantic/src/themes/default/views/feed.overrides +0 -3
  933. package/styles/vendor/semantic/src/themes/default/views/feed.variables +0 -141
  934. package/styles/vendor/semantic/src/themes/default/views/item.overrides +0 -3
  935. package/styles/vendor/semantic/src/themes/default/views/item.variables +0 -154
  936. package/styles/vendor/semantic/src/themes/default/views/statistic.overrides +0 -3
  937. package/styles/vendor/semantic/src/themes/default/views/statistic.variables +0 -98
  938. package/styles/vendor/semantic/src/themes/duo/elements/loader.overrides +0 -3
  939. package/styles/vendor/semantic/src/themes/duo/elements/loader.variables +0 -6
  940. package/styles/vendor/semantic/src/themes/fixed-width/collections/grid.overrides +0 -3
  941. package/styles/vendor/semantic/src/themes/fixed-width/collections/grid.variables +0 -23
  942. package/styles/vendor/semantic/src/themes/fixed-width/modules/modal.overrides +0 -3
  943. package/styles/vendor/semantic/src/themes/fixed-width/modules/modal.variables +0 -37
  944. package/styles/vendor/semantic/src/themes/flat/collections/form.overrides +0 -28
  945. package/styles/vendor/semantic/src/themes/flat/collections/form.variables +0 -74
  946. package/styles/vendor/semantic/src/themes/flat/globals/site.overrides +0 -3
  947. package/styles/vendor/semantic/src/themes/flat/globals/site.variables +0 -107
  948. package/styles/vendor/semantic/src/themes/github/assets/fonts/octicons-local.ttf +0 -0
  949. package/styles/vendor/semantic/src/themes/github/assets/fonts/octicons.svg +0 -200
  950. package/styles/vendor/semantic/src/themes/github/assets/fonts/octicons.ttf +0 -0
  951. package/styles/vendor/semantic/src/themes/github/assets/fonts/octicons.woff +0 -0
  952. package/styles/vendor/semantic/src/themes/github/collections/breadcrumb.variables +0 -11
  953. package/styles/vendor/semantic/src/themes/github/collections/form.overrides +0 -16
  954. package/styles/vendor/semantic/src/themes/github/collections/form.variables +0 -40
  955. package/styles/vendor/semantic/src/themes/github/collections/grid.variables +0 -2
  956. package/styles/vendor/semantic/src/themes/github/collections/menu.overrides +0 -7
  957. package/styles/vendor/semantic/src/themes/github/collections/menu.variables +0 -61
  958. package/styles/vendor/semantic/src/themes/github/collections/message.overrides +0 -11
  959. package/styles/vendor/semantic/src/themes/github/collections/message.variables +0 -29
  960. package/styles/vendor/semantic/src/themes/github/collections/table.variables +0 -8
  961. package/styles/vendor/semantic/src/themes/github/elements/button.overrides +0 -4
  962. package/styles/vendor/semantic/src/themes/github/elements/button.variables +0 -77
  963. package/styles/vendor/semantic/src/themes/github/elements/header.variables +0 -9
  964. package/styles/vendor/semantic/src/themes/github/elements/icon.overrides +0 -208
  965. package/styles/vendor/semantic/src/themes/github/elements/icon.variables +0 -13
  966. package/styles/vendor/semantic/src/themes/github/elements/image.variables +0 -5
  967. package/styles/vendor/semantic/src/themes/github/elements/input.overrides +0 -32
  968. package/styles/vendor/semantic/src/themes/github/elements/input.variables +0 -16
  969. package/styles/vendor/semantic/src/themes/github/elements/label.overrides +0 -9
  970. package/styles/vendor/semantic/src/themes/github/elements/label.variables +0 -4
  971. package/styles/vendor/semantic/src/themes/github/elements/segment.overrides +0 -3
  972. package/styles/vendor/semantic/src/themes/github/elements/segment.variables +0 -40
  973. package/styles/vendor/semantic/src/themes/github/elements/step.overrides +0 -26
  974. package/styles/vendor/semantic/src/themes/github/elements/step.variables +0 -26
  975. package/styles/vendor/semantic/src/themes/github/globals/site.variables +0 -47
  976. package/styles/vendor/semantic/src/themes/github/modules/dropdown.overrides +0 -53
  977. package/styles/vendor/semantic/src/themes/github/modules/dropdown.variables +0 -35
  978. package/styles/vendor/semantic/src/themes/github/modules/popup.variables +0 -12
  979. package/styles/vendor/semantic/src/themes/gmail/collections/message.overrides +0 -0
  980. package/styles/vendor/semantic/src/themes/gmail/collections/message.variables +0 -15
  981. package/styles/vendor/semantic/src/themes/instagram/views/card.overrides +0 -12
  982. package/styles/vendor/semantic/src/themes/instagram/views/card.variables +0 -23
  983. package/styles/vendor/semantic/src/themes/material/assets/fonts/icons.eot +0 -0
  984. package/styles/vendor/semantic/src/themes/material/assets/fonts/icons.svg +0 -2373
  985. package/styles/vendor/semantic/src/themes/material/assets/fonts/icons.ttf +0 -0
  986. package/styles/vendor/semantic/src/themes/material/assets/fonts/icons.woff +0 -0
  987. package/styles/vendor/semantic/src/themes/material/collections/menu.overrides +0 -1
  988. package/styles/vendor/semantic/src/themes/material/collections/menu.variables +0 -10
  989. package/styles/vendor/semantic/src/themes/material/elements/button.overrides +0 -15
  990. package/styles/vendor/semantic/src/themes/material/elements/button.variables +0 -97
  991. package/styles/vendor/semantic/src/themes/material/elements/header.overrides +0 -15
  992. package/styles/vendor/semantic/src/themes/material/elements/header.variables +0 -21
  993. package/styles/vendor/semantic/src/themes/material/elements/icon.overrides +0 -934
  994. package/styles/vendor/semantic/src/themes/material/elements/icon.variables +0 -11
  995. package/styles/vendor/semantic/src/themes/material/globals/site.overrides +0 -0
  996. package/styles/vendor/semantic/src/themes/material/globals/site.variables +0 -128
  997. package/styles/vendor/semantic/src/themes/material/modules/dropdown.overrides +0 -5
  998. package/styles/vendor/semantic/src/themes/material/modules/dropdown.variables +0 -20
  999. package/styles/vendor/semantic/src/themes/material/modules/modal.overrides +0 -6
  1000. package/styles/vendor/semantic/src/themes/material/modules/modal.variables +0 -15
  1001. package/styles/vendor/semantic/src/themes/pulsar/elements/loader.overrides +0 -70
  1002. package/styles/vendor/semantic/src/themes/pulsar/elements/loader.variables +0 -7
  1003. package/styles/vendor/semantic/src/themes/raised/elements/button.overrides +0 -3
  1004. package/styles/vendor/semantic/src/themes/raised/elements/button.variables +0 -27
  1005. package/styles/vendor/semantic/src/themes/resetcss/globals/reset.overrides +0 -52
  1006. package/styles/vendor/semantic/src/themes/resetcss/globals/reset.variables +0 -3
  1007. package/styles/vendor/semantic/src/themes/round/elements/button.overrides +0 -0
  1008. package/styles/vendor/semantic/src/themes/round/elements/button.variables +0 -138
  1009. package/styles/vendor/semantic/src/themes/rtl/globals/site.overrides +0 -6
  1010. package/styles/vendor/semantic/src/themes/rtl/globals/site.variables +0 -14
  1011. package/styles/vendor/semantic/src/themes/striped/modules/progress.overrides +0 -29
  1012. package/styles/vendor/semantic/src/themes/striped/modules/progress.variables +0 -3
  1013. package/styles/vendor/semantic/src/themes/timeline/views/feed.overrides +0 -27
  1014. package/styles/vendor/semantic/src/themes/timeline/views/feed.variables +0 -36
  1015. package/styles/vendor/semantic/src/themes/twitter/elements/button.overrides +0 -13
  1016. package/styles/vendor/semantic/src/themes/twitter/elements/button.variables +0 -44
  1017. package/styles/vendor/semantic/tasks/README.md +0 -17
  1018. package/styles/vendor/semantic/tasks/admin/components/create.js +0 -332
  1019. package/styles/vendor/semantic/tasks/admin/components/init.js +0 -170
  1020. package/styles/vendor/semantic/tasks/admin/components/update.js +0 -184
  1021. package/styles/vendor/semantic/tasks/admin/distributions/create.js +0 -219
  1022. package/styles/vendor/semantic/tasks/admin/distributions/init.js +0 -169
  1023. package/styles/vendor/semantic/tasks/admin/distributions/update.js +0 -179
  1024. package/styles/vendor/semantic/tasks/admin/publish.js +0 -25
  1025. package/styles/vendor/semantic/tasks/admin/register.js +0 -55
  1026. package/styles/vendor/semantic/tasks/admin/release.js +0 -29
  1027. package/styles/vendor/semantic/tasks/build/assets.js +0 -35
  1028. package/styles/vendor/semantic/tasks/build/css.js +0 -113
  1029. package/styles/vendor/semantic/tasks/build/javascript.js +0 -77
  1030. package/styles/vendor/semantic/tasks/build.js +0 -50
  1031. package/styles/vendor/semantic/tasks/check-install.js +0 -28
  1032. package/styles/vendor/semantic/tasks/clean.js +0 -14
  1033. package/styles/vendor/semantic/tasks/collections/README.md +0 -16
  1034. package/styles/vendor/semantic/tasks/collections/admin.js +0 -49
  1035. package/styles/vendor/semantic/tasks/collections/build.js +0 -19
  1036. package/styles/vendor/semantic/tasks/collections/internal.js +0 -227
  1037. package/styles/vendor/semantic/tasks/collections/rtl.js +0 -16
  1038. package/styles/vendor/semantic/tasks/config/admin/github.js +0 -37
  1039. package/styles/vendor/semantic/tasks/config/admin/oauth.example.js +0 -11
  1040. package/styles/vendor/semantic/tasks/config/admin/release.js +0 -111
  1041. package/styles/vendor/semantic/tasks/config/admin/templates/README.md +0 -32
  1042. package/styles/vendor/semantic/tasks/config/admin/templates/bower.json +0 -29
  1043. package/styles/vendor/semantic/tasks/config/admin/templates/component-package.js +0 -14
  1044. package/styles/vendor/semantic/tasks/config/admin/templates/composer.json +0 -20
  1045. package/styles/vendor/semantic/tasks/config/admin/templates/css-package.js +0 -34
  1046. package/styles/vendor/semantic/tasks/config/admin/templates/less-package.js +0 -21
  1047. package/styles/vendor/semantic/tasks/config/admin/templates/package.json +0 -17
  1048. package/styles/vendor/semantic/tasks/config/defaults.js +0 -117
  1049. package/styles/vendor/semantic/tasks/config/docs.js +0 -32
  1050. package/styles/vendor/semantic/tasks/config/npm/gulpfile.js +0 -72
  1051. package/styles/vendor/semantic/tasks/config/project/config.js +0 -141
  1052. package/styles/vendor/semantic/tasks/config/project/install.js +0 -763
  1053. package/styles/vendor/semantic/tasks/config/project/release.js +0 -65
  1054. package/styles/vendor/semantic/tasks/config/tasks.js +0 -166
  1055. package/styles/vendor/semantic/tasks/config/user.js +0 -58
  1056. package/styles/vendor/semantic/tasks/docs/build.js +0 -189
  1057. package/styles/vendor/semantic/tasks/docs/metadata.js +0 -138
  1058. package/styles/vendor/semantic/tasks/docs/serve.js +0 -255
  1059. package/styles/vendor/semantic/tasks/install.js +0 -459
  1060. package/styles/vendor/semantic/tasks/rtl/build.js +0 -132
  1061. package/styles/vendor/semantic/tasks/rtl/watch.js +0 -221
  1062. package/styles/vendor/semantic/tasks/version.js +0 -11
  1063. package/styles/vendor/semantic/tasks/watch.js +0 -231
  1064. package/tests/i18n.test.js +0 -32
  1065. package/tests/store.test.js +0 -26
  1066. package/translations/en.json +0 -383
  1067. package/translations/zh.json +0 -383
  1068. package/utils/ApiCaller.js +0 -101
  1069. package/utils/Formatter.js +0 -77
  1070. package/utils/asyncInjectors.js +0 -78
  1071. package/utils/authWrapper.js +0 -38
  1072. package/utils/common.js +0 -23
  1073. package/utils/jed.js +0 -1497
  1074. package/utils/messageUtils.js +0 -11
  1075. package/utils/smsCharCount.js +0 -351
  1076. package/utils/smsCharCountV2.js +0 -143
  1077. package/utils/tests/asyncInjectors.test.js +0 -173
@@ -1,3282 +0,0 @@
1
- /*
2
- *
3
- * Email
4
- *
5
- */
6
-
7
- import React, { PropTypes } from 'react';
8
- import { connect } from 'react-redux';
9
- import { bindActionCreators } from 'redux';
10
- import Helmet from 'react-helmet';
11
- import { Row, Col, Spin, Breadcrumb, Popover, Modal, Select } from 'antd';
12
- import { injectIntl, intlShape, FormattedMessage } from 'react-intl';
13
- import { CapButton, CapInput } from '@capillarytech/cap-react-ui-library';
14
- import { createStructuredSelector } from 'reselect';
15
- import _ from 'lodash';
16
- import moment from "moment";
17
- import FormBuilder from '../../components/FormBuilder';
18
- import { makeSelectMetaEntities, makeSelectAuthenticated } from '../Cap/selectors';
19
- import * as actions from './actions';
20
- import * as templatesActions from '../Templates/actions';
21
- import * as globalActions from '../../containers/Cap/actions';
22
- import { UserIsAuthenticated } from '../../utils/authWrapper';
23
- import makeSelectEmail from './selectors';
24
- import { makeSelectTemplates } from '../Templates/selectors';
25
- import messages from './messages';
26
- // import PageHeader from '../../components/PageHeader';
27
- import './_email.scss';
28
- import {getMessageObject} from '../../utils/messageUtils';
29
- import EmailPreview from '../../components/EmailPreview';
30
- import ImagePreview from '../../components/ImagePreview';
31
- import CardGrid from '../../components/CardGrid';
32
- import Pagination from '../../components/Pagination';
33
- const BreadcrumbItem = Breadcrumb.Item;
34
-
35
- export class Email extends React.Component { // eslint-disable-line react/prefer-stateless-function
36
- constructor(props) {
37
- super(props);
38
- this.state = {
39
- formData: {},
40
- tabCount: 1,
41
- currentTab: 1,
42
- events: {
43
- blur: this.onBlur,
44
- afterPaste: this.afterPaste,
45
- change: this.onChange,
46
- },
47
- isEdit: false,
48
- schema: {},
49
- // schema: {
50
- // standalone: {
51
- // sections: [
52
- // {
53
- // type: "col-label",
54
- // inputFields: [
55
- // {
56
- // id: "template-subject",
57
- // placeholder: "Enter Email Subject",
58
- // type: "input",
59
- // metaType: "text",
60
- // datatype: "string",
61
- // required: true,
62
- // label: "Subject",
63
- // style: {
64
- // fontSize: "20px",
65
- // fontFamily: "proxima-nova,sans-serif",
66
- // fontStyle: "normal",
67
- // fontWeight: 600,
68
- // display: (this.props.location.query.type === 'embedded' && (this.props.location.query.module === "loyalty" || this.props.location.query.module === "dvs")) ? "" : "none",
69
- // },
70
- // labelStyle: {
71
- // fontSize: "18px",
72
- // fontFamily: "proxima-nova,sans-serif",
73
- // fontStyle: "normal",
74
- // fontWeight: 600,
75
- // display: (this.props.location.query.type === 'embedded' && (this.props.location.query.module === "loyalty" || this.props.location.query.module === "dvs")) ? "" : "none",
76
- // background: "white",
77
- // },
78
- // styling: "semantic",
79
- // order: 1,
80
- // width: 9,
81
- // customComponent: false,
82
- // standalone: true,
83
- // onlyDisplay: false,
84
- // errorMessage: "Email Subject cannot be empty.",
85
- // // supportedEvents: [
86
- // // "onChange",
87
- // // ],
88
- // },
89
- // ],
90
- // },
91
- // {
92
- // type: "multicols",
93
- // inputFields: [
94
- // {
95
- // cols: [
96
- // {
97
- // id: "template-name",
98
- // placeholder: "Enter template name",
99
- // type: "input",
100
- // metaType: "text",
101
- // datatype: "string",
102
- // required: true,
103
- // style: {
104
- // fontSize: "20px",
105
- // fontFamily: "proxima-nova,sans-serif",
106
- // fontStyle: "normal",
107
- // fontWeight: 600,
108
- // },
109
- // styling: "semantic",
110
- // order: 1,
111
- // width: 9,
112
- // customComponent: false,
113
- // standalone: true,
114
- // onlyDisplay: false,
115
- // errorMessage: "Template name cannot be empty.",
116
- // supportedEvents: [
117
- // "onChange",
118
- // ],
119
- // },
120
- // {
121
- // id: "template-version",
122
- // type: "select", //Resembles component to be used
123
- // options: [],
124
- // metaType: "text",
125
- // datatype: "string",
126
- // required: true,
127
- // fluid: true,
128
- // style: {
129
- // fontSize: '14px',
130
- // fontFamily: 'open-sans',
131
- // fontStyle: 'normal',
132
- // marginBottom: '16px',
133
- // },
134
- // styling: "semantic",
135
- // order: 1,
136
- // width: 5,
137
- // customComponent: false,
138
- // standalone: true,
139
- // supportedEvents: [
140
- // 'onSelect',
141
- // 'addVersion',
142
- // ],
143
- // },
144
- // {
145
- // id: "preview-button",
146
- // width: 3,
147
- // offset: 3,
148
- // metaType: "submit-button",
149
- // colStyle: {
150
- // textAlign: "right",
151
- // paddingRight: "12px",
152
- // },
153
- // type: "button",
154
- // buttonType: "cancel",
155
- // value: "Preview",
156
- // customComponent: false,
157
- // standalone: true,
158
- // styling: "semantic",
159
- // order: 3,
160
- // fluid: false,
161
- // submitAction: "previewTemplate",
162
- // onlyDisplay: true,
163
- // supportedEvents: [
164
- // "previewTemplate",
165
- // ],
166
- // },
167
- // {
168
- // id: "cancel-button",
169
- // width: 2,
170
- // metaType: "submit-button",
171
- // colStyle: {
172
- // textAlign: "right",
173
- // width: "9%",
174
- // },
175
- // type: "button",
176
- // buttonType: "cancel",
177
- // value: "Cancel",
178
- // customComponent: false,
179
- // standalone: true,
180
- // styling: "semantic",
181
- // order: 3,
182
- // fluid: false,
183
- // onlyDisplay: true,
184
- // submitAction: "cancelTemplate",
185
- // supportedEvents: [
186
- // "cancelTemplate",
187
- // ],
188
- // },
189
- // {
190
- // id: "save-button",
191
- // width: 2,
192
- // metaType: "submit-button",
193
- // colStyle: {
194
- // textAlign: "right",
195
- // width: "7%",
196
- // },
197
- // type: "button",
198
- // buttonType: "primary",
199
- // value: "Save",
200
- // customComponent: false,
201
- // styling: "semantic",
202
- // order: 3,
203
- // fluid: false,
204
- // standalone: true,
205
- // onlyDisplay: true,
206
- // submitAction: "saveFormData",
207
- // supportedEvents: [
208
- // "saveFormData",
209
- // ],
210
- // },
211
- // ],
212
- // },
213
- // ],
214
- // actionFields: [],
215
- // },
216
- // ],
217
- // },
218
- // containers: [
219
- // {
220
- // panes: [
221
- // {
222
- // sections: [
223
- // {
224
- // type: "multicols",
225
- // width: 24,
226
- // rowStyle: {
227
- // // height: "calc(100vh - 142px)",
228
- // },
229
- // actionFields: [],
230
- // inputFields: [
231
- // {
232
- // cols: [
233
- // {
234
- // id: "template-content",
235
- // type: "ckeditor",
236
- // metaType: "text",
237
- // datatype: "string",
238
- // required: true,
239
- // onlyDisplay: false,
240
- // standalone: false,
241
- // order: 2,
242
- // width: 24,
243
- // events: {
244
- // blur: this.onBlur,
245
- // afterPaste: this.afterPaste,
246
- // // change: this.onChange,
247
- // },
248
- // colStyle: {
249
- // display: (!_.isEmpty(this.props.Templates.edmTemplate) && this.props.Templates.edmTemplate.versions.base.drag_drop_id) ? 'none' : '',
250
- // },
251
- // customComponent: true,
252
- // getEditorInstanse: this.getEditorInstanse,
253
- // supportedEvents: [
254
- // "onContentChange",
255
- // ],
256
- // },
257
- // {
258
- // id: "edmeditor",
259
- // type: "edmeditor",
260
- // metaType: "text",
261
- // datatype: "string",
262
- // required: true,
263
- // onlyDisplay: true,
264
- // standalone: false,
265
- // width: 24,
266
- // order: 2,
267
- // customComponent: true,
268
- // // getEditorInstanse: this.getEditorInstanse,
269
- // colStyle: {
270
- // display: (!_.isEmpty(this.props.Templates.edmTemplate) && this.props.Templates.edmTemplate.versions.base.drag_drop_id) ? '' : 'none',
271
- // },
272
- // supportedEvents: [
273
- // // "onContentChange",
274
- // ],
275
- // },
276
- // ],
277
- // },
278
- // ],
279
- // },
280
- // ],
281
- // },
282
- // ],
283
- // type: "tabs",
284
- // defaultPanes: 1,
285
- // additionalPanes: 0,
286
- // id: "pane",
287
- // tabBarExtraContent: {
288
- // sections: [
289
- // {
290
- // type: "multicols",
291
- // actionFields: [],
292
- // inputFields: [
293
- // {
294
- // cols: [
295
- // {
296
- // id: "add-language-button",
297
- // metaType: "submit-button",
298
- // type: "customPopover",
299
- // customComponent: true,
300
- // onlyDisplay: true,
301
- // styling: "semantic",
302
- // order: 3,
303
- // width: 3,
304
- // colStyle: {
305
- // color: `rgb(78, 146, 229)`,
306
- // fontSize: '14px',
307
- // fontFamily: 'open-sans',
308
- // lineHeight: '24px',
309
- // textAlign: 'center',
310
- // cursor: 'pointer',
311
- // display: (this.props.location.query.type === 'embedded' && (this.props.location.query.module === "loyalty" || this.props.location.query.module === "timeline" )) ? 'none' : '',
312
- // },
313
- // popOverList: this.props.Global.currentOrgDetails && this.props.Global.currentOrgDetails.basic_details.supported_languages ? this.props.Global.currentOrgDetails.basic_details.supported_languages : [],
314
- // baseLanguage: this.props.Global.currentOrgDetails && this.props.Global.currentOrgDetails.basic_details.base_language ? this.props.Global.currentOrgDetails.basic_details.base_language : 'en',
315
- // submitAction: "addLanguage",
316
- // supportedEvents: [
317
- // "addLanguage",
318
- // ],
319
- // },
320
- // {
321
- // id: "tagList",
322
- // label: "Tags",
323
- // type: "tag-list", //Resembles component to be used
324
- // metaType: "List",
325
- // datatype: "select",
326
- // required: true,
327
- // fluid: true,
328
- // onlyDisplay: true,
329
- // styling: "semantic",
330
- // order: 1,
331
- // style: {
332
- // border: "none",
333
- // },
334
- // customComponent: true,
335
- // width: 3,
336
- // offset: 11,
337
- // supportedEvents: [
338
- // 'onTagSelect',
339
- // ],
340
- // },
341
- // {
342
- // id: "insert-image",
343
- // metaType: "label",
344
- // type: "div", //Resembles component to be used
345
- // primitive: true,
346
- // value: "Insert Image",
347
- // fluid: true,
348
- // onlyDisplay: false,
349
- // styling: "semantic",
350
- // order: 1,
351
- // customComponent: false,
352
- // submitAction: "onImageSelect",
353
- // style: {
354
- // color: "#4E92E5",
355
- // fontSize: "14px",
356
- // fontFamily: "open-sans",
357
- // lineHeight: "24px",
358
- // textAlign: "center",
359
- // cursor: "pointer",
360
- // },
361
- // width: 3,
362
- // supportedEvents: [
363
- // "onImageSelect",
364
- // ],
365
- // },
366
- // {
367
- // id: "mark-final-version-label",
368
- // metaType: "label",
369
- // type: "div",
370
- // primitive: true,
371
- // value: "Mark as Final",
372
- // onlyDisplay: true,
373
- // customComponent: false,
374
- // order: 3,
375
- // width: 3,
376
- // fluid: false,
377
- // style: {
378
- // color: "#4E92E5",
379
- // fontSize: "14px",
380
- // fontFamily: "open-sans",
381
- // lineHeight: "24px",
382
- // textAlign: "center",
383
- // cursor: "pointer",
384
- // display: (this.props.location.query.type === 'embedded') ? "none" : "",
385
- // },
386
- // submitAction: "markFinalVersion",
387
- // supportedEvents: [
388
- // "markFinalVersion",
389
- // ],
390
- // },
391
- // {
392
- // id: "tab-options-popover",
393
- // metaType: "display",
394
- // colStyle: {
395
- // flex: 0,
396
- // },
397
- // type: "popover",
398
- // customComponent: false,
399
- // styling: "semantic",
400
- // order: 3,
401
- // width: 1,
402
- // fluid: false,
403
- // onlyDisplay: true,
404
- // submitAction: "onTabOptionSelect",
405
- // supportedEvents: [
406
- // "onTabOptionSelect",
407
- // ],
408
- // content: {
409
- // sections: [
410
- // {
411
- // type: "multicols",
412
- // inputFields: [
413
- // {
414
- // cols: [
415
- // {
416
- // id: "duplicate-version-label",
417
- // metaType: "label",
418
- // type: "div",
419
- // primitive: true,
420
- // value: "Duplicate Version",
421
- // onlyDisplay: true,
422
- // customComponent: false,
423
- // order: 3,
424
- // fluid: false,
425
- // colStyle: {
426
- // display: (this.props.location.query.type === 'embedded') ? "none" : "",
427
- // },
428
- // className: "version-popover",
429
- // submitAction: "duplicateVersion",
430
- // supportedEvents: [
431
- // "duplicateVersion",
432
- // ],
433
- // },
434
- // ],
435
- // },
436
- // {
437
- // cols: [
438
- // {
439
- // id: "delete-version-label",
440
- // metaType: "label",
441
- // type: "div",
442
- // primitive: true,
443
- // value: "Delete Version",
444
- // onlyDisplay: true,
445
- // customComponent: false,
446
- // order: 3,
447
- // fluid: false,
448
- // colStyle: {
449
- // display: (this.props.location.query.type === 'embedded') ? "none" : "",
450
- // },
451
- // className: "version-popover",
452
- // submitAction: "deleteVersion",
453
- // supportedEvents: [
454
- // "deleteVersion",
455
- // ],
456
- // },
457
- // ],
458
- // },
459
- // {
460
- // cols: [
461
- // {
462
- // id: "delete-language-label",
463
- // metaType: "label",
464
- // type: "div",
465
- // primitive: true,
466
- // value: "Delete Language",
467
- // onlyDisplay: true,
468
- // customComponent: false,
469
- // order: 3,
470
- // fluid: false,
471
- // className: "version-popover",
472
- // submitAction: "deleteLanguage",
473
- // supportedEvents: [
474
- // "deleteLanguage",
475
- // ],
476
- // },
477
- // ],
478
- // },
479
- // {
480
- // cols: [
481
- // {
482
- // id: "switch-editor-label",
483
- // metaType: "label",
484
- // type: "div",
485
- // primitive: true,
486
- // value: "Switch Editor",
487
- // onlyDisplay: true,
488
- // customComponent: false,
489
- // order: 4,
490
- // fluid: false,
491
- // className: "version-popover",
492
- // submitAction: "switchEditor",
493
- // supportedEvents: [
494
- // "switchEditor",
495
- // ],
496
- // style: {
497
- // display: (!_.isEmpty(this.props.Templates.edmTemplate) && this.props.Templates.edmTemplate.versions.base.drag_drop_id) ? '' : 'none',
498
- // },
499
- // },
500
- // ],
501
- // },
502
- // ],
503
- // actionFields: [],
504
- // },
505
- // ],
506
- // },
507
- // value: {
508
- // sections: [
509
- // {
510
- // type: "multicols",
511
- // inputFields: [
512
- // {
513
- // cols: [
514
- // {
515
- // id: "tab-option-icon",
516
- // metaType: "display",
517
- // type: "icon",
518
- // onlyDisplay: true,
519
- // primitive: false,
520
- // value: "",
521
- // customComponent: false,
522
- // order: 3,
523
- // fluid: false,
524
- // },
525
- // ],
526
- // },
527
- // ],
528
- // actionFields: [],
529
- // },
530
- // ],
531
- // },
532
- // trigger: "click",
533
- // placement: "bottomLeft",
534
- // },
535
- // ],
536
- // },
537
- // ],
538
- // },
539
- // ],
540
- // },
541
- // tabContent: {
542
- // sections: [
543
- // {
544
- // type: "multicols",
545
- // inputFields: [
546
- // {
547
- // rowStyle: {
548
- // display: "flex",
549
- // flex: 1,
550
- // },
551
- // cols: [
552
- // {
553
- // id: "tab-header",
554
- // metaType: "label",
555
- // value: "English",
556
- // primitive: true,
557
- // dynamicTab: false,
558
- // type: "div",
559
- // width: 5,
560
- // offset: 0,
561
- // onlyDisplay: true,
562
- // colStyle: {
563
- // flex: 1,
564
- // },
565
- // supportedEvents: [
566
- // "onChange",
567
- // ],
568
- // },
569
- // ],
570
- // },
571
- // ],
572
- // actionFields: [],
573
- // },
574
- // ],
575
- // },
576
- // label: "Version",
577
- // onlyDisplay: true,
578
- // supportedEvents: [
579
- // "onTabChange",
580
- // ],
581
- // isActive: true,
582
- // },
583
- // ],
584
- // channel: "EMAIL",
585
- // },
586
- loading: false,
587
- isFormValid: true,
588
- injectedTags: {},
589
- checkValidation: false,
590
- saveEdmDataMode: 'save',
591
- tabKey: '',
592
- showEmailPreview: false,
593
- device: "desktop",
594
- editorInstanse: undefined,
595
- showImageSelectionBox: false,
596
- isDragDrop: false,
597
- showConfirmationModal: false,
598
- modalContent: {title: "Alert", body: "Do you really want to delete this language?", type: 'confirm', id: 'email-language-delete-modal'},
599
- showModal: false,
600
- page: 1,
601
- perPageLimit: 25,
602
- totalCount: 0,
603
- searchText: '',
604
- saveCount: 0,
605
- cmsDataCount: 0,
606
- targetSaveCount: 0,
607
- saveObj: {},
608
- showEdmEmailTemplates: false,
609
- editDataSet: false,
610
- languageDataSet: false,
611
- addLanguageType: '',
612
- startValidation: false,
613
- saveForm: false,
614
- };
615
-
616
- this.isTagLoaded = false;
617
- this.edmEvent = undefined;
618
- this.supportedLanguages = this.props.Global.currentOrgDetails && this.props.Global.currentOrgDetails.basic_details.supported_languages ? this.props.Global.currentOrgDetails.basic_details.supported_languages : [];
619
- this.map = {
620
- "template-name": {
621
- onChange: this.onTemplateNameChange,
622
- },
623
- "template-version": {
624
- onSelect: this.handleVersionSelect,
625
- addVersion: this.addVersion,
626
- },
627
- "preview-button": {
628
- previewTemplate: this.toggleEmailPreview,
629
- },
630
- "cancel-button": {
631
- cancelTemplate: this.cancelTemplate,
632
- },
633
- "save-button": {
634
- saveFormData: this.saveFormData,
635
- },
636
- "sms-editor": {
637
- onChange: this.onTemplateContentChange,
638
- },
639
- "tagList": {
640
- onTagSelect: this.onTagSelect,
641
- },
642
- "unicode-validity": {
643
- onChange: this.onTemplateNameChange,
644
- },
645
- "add-language-button": {
646
- addLanguage: this.addLanguage,
647
- },
648
- "tab-header": {
649
- onChange: this.onVersionNameChange,
650
- },
651
- "tab-options-popover": {
652
- onTabOptionSelect: this.onTabOptionSelect,
653
- },
654
- "mark-final-version-label": {
655
- markFinalVersion: this.markFinalVersion,
656
- },
657
- "duplicate-version-label": {
658
- duplicateVersion: this.duplicateVersion,
659
- },
660
- "rename-version-label": {
661
- renameVersion: this.renameVersion,
662
- },
663
- "delete-version-label": {
664
- deleteVersion: this.deleteVersion,
665
- },
666
- "switch-editor-label": {
667
- switchEditor: this.switchEditor,
668
- },
669
- "pane": {
670
- onTabChange: this.onTabChange,
671
- },
672
- "insert-image": {
673
- onImageSelect: this.onImageSelect,
674
- },
675
- "template-content": {
676
- onContentChange: this.onChange,
677
- getEditorInstanse: this.getEditorInstanse,
678
- },
679
- "delete-language-label": {
680
- deleteLanguage: this.deleteLanguage,
681
- },
682
- };
683
- }
684
-
685
- componentWillMount() {
686
- console.log('new log 2');
687
- console.log('Dark KNight', this.props.Templates, this.props.Email, this.props.Global, this.supportedLanguages);
688
- const formData = this.initFormData(this.props, true); //_.cloneDeep(this.state.formData);
689
- const isEmpty = _.isEmpty(formData);
690
- if (!isEmpty) {
691
- formData['template-version-options'] = [
692
- {
693
- key: 'version 1',
694
- label: 'Version 1',
695
- value: 'version 1',
696
- },
697
- {
698
- key: 'New Version',
699
- label: 'New Version',
700
- value: 'New Version',
701
- },
702
- ];
703
- // console.log('New Form Data Preparing ', this.initFormData());
704
- formData['template-version'] = "version 1";
705
- }
706
- // const formData = _.cloneDeep(this.state.formData);
707
- if (this.props.params.id || (this.props.location.query.module === "library" && this.props.templateData && !_.isEmpty(this.props.templateData))) {
708
- this.setState({isEdit: true}, () => {
709
- if (this.props.params.id) {
710
- this.props.actions.getTemplateDetails(this.props.params.id, 'email');
711
- }
712
- });
713
- }
714
- // formData[0] = {
715
- // "template-content": (this.props.Templates.selectedEmailLayout ? this.props.Templates.selectedEmailLayout : ''),
716
- // };
717
- // if (this.props.Templates.CmsSettings) {}
718
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
719
- if (this.props.location.query.module === "library" && this.props.templateData) {
720
- this.props.templatesActions.resetTemplateData();
721
- }
722
- if (!_.isEmpty(this.props.Templates.edmTemplate) && this.props.Templates.edmTemplate.versions.base.is_drag_drop) {
723
- this.setState({isDragDrop: true});
724
- if (this.props.params.id) {
725
- this.props.actions.getCmsSetting('edm', this.props.Templates.edmTemplate.versions.base.drag_drop_id, 'open', undefined, isEdmSupport);
726
- } else if (this.props.location.query.module !== "library" || (this.props.location.query.module === "library" && !this.props.templateData)) {
727
- this.props.actions.getCmsSetting('edm', this.props.Templates.edmTemplate.versions.base.drag_drop_id, 'create', undefined, isEdmSupport);
728
- }
729
- }
730
- console.log('Form Data ', formData);
731
- this.setState({ content: (this.props.Templates.selectedEmailLayout ? this.props.Templates.selectedEmailLayout : ''), formData}, () => {
732
- // this.injectEvents(this.state.schema);
733
- });
734
-
735
- // setTimeout(() => {
736
- // // this.getFormData();
737
- // this.startTemplateCreation();
738
- // }, 15000);
739
- }
740
-
741
- componentDidMount() {
742
- console.log('email container mounted');
743
- const query = {
744
- layout: 'EMAIL',
745
- type: 'LAYOUT',
746
- };
747
- this.props.globalActions.fetchSchemaForEntity(query);
748
- window.addEventListener("message", this.handleFrameTasks);
749
- if (this.props.location.query.type === 'embedded') {
750
- this.showNext();
751
- }
752
- }
753
-
754
- componentWillReceiveProps(nextProps) {
755
- console.log('setting new language Next Props email', nextProps, this.state);
756
- // if (this.props.location.query.type === 'embedded') {
757
- // this.showNext();
758
- // }
759
-
760
- if (this.state.languageDataSet && nextProps.Templates.selectedEmailLayout && nextProps.Templates.selectedEmailLayout !== '' && !_.isEqual(this.props.Templates.selectedEmailLayout, nextProps.Templates.selectedEmailLayout )) {
761
- console.log('setting new language content props', nextProps.Templates.selectedEmailLayout);
762
- this.setNewLanguageContent(nextProps.Templates.selectedEmailLayout);
763
- }
764
- if (nextProps.metaEntities && nextProps.metaEntities.layouts && nextProps.metaEntities.layouts.length > 0 && _.isEmpty(this.state.schema)) {
765
- const newSchema = this.injectEvents(nextProps.metaEntities.layouts[0].definition);
766
- console.log('Schema test 1 ', newSchema);
767
- this.setState({schema: newSchema});
768
- if (this.props.location.query.module !== 'library' || (this.props.location.query.module === 'library' && this.props.getDefaultTags)) {
769
- const query = {
770
- layout: 'EMAIL',
771
- type: 'TAG',
772
- context: this.props.location.query.type === 'embedded' ? this.props.location.query.module : 'default',
773
- embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
774
- };
775
- if (this.props.getDefaultTags) {
776
- query.context = this.props.getDefaultTags;
777
- }
778
- this.props.globalActions.fetchSchemaForEntity(query);
779
- }
780
- setTimeout(() => {
781
- this.showSubject();
782
- }, 0);
783
- }
784
- if (nextProps.Global.currentOrgDetails && nextProps.Global.currentOrgDetails.basic_details && !_.isEmpty(nextProps.Global.currentOrgDetails.basic_details) && _.isEmpty(this.state.formData)) {
785
- const formData = this.initFormData(nextProps);
786
- formData['template-version-options'] = [
787
- {
788
- key: 'version 1',
789
- label: 'Version 1',
790
- value: 'version 1',
791
- },
792
- {
793
- key: 'New Version',
794
- label: 'New Version',
795
- value: 'New Version',
796
- },
797
- ];
798
- // console.log('New Form Data Preparing ', this.initFormData());
799
- formData['template-version'] = "version 1";
800
- //const that = this;
801
- this.setState({formData}, () => {
802
- // setTimeout(() => {
803
- // this.getFormData();
804
- // that.startTemplateCreation();
805
- // }, 15000);
806
- });
807
- } else if (nextProps.Global.currentOrgDetails && nextProps.Global.currentOrgDetails.basic_details) {
808
- // this.injectEvents(this.state.schema);
809
- const baseLanguage = nextProps.Global.currentOrgDetails.basic_details.base_language;
810
- if (this.state.formData[`${this.state.currentTab - 1}`] && _.isEmpty(this.state.formData[`${this.state.currentTab - 1}`].selectedLanguages)) {
811
- console.log('Language Empty ', this.state.formData);
812
- const formData = _.cloneDeep(this.state.formData);
813
- formData[`${this.state.currentTab - 1}`].selectedLanguages = [];
814
- formData[`${this.state.currentTab - 1}`].selectedLanguages.push(baseLanguage);
815
- formData.base.selectedLanguages = [];
816
- formData.base.selectedLanguages.push(baseLanguage);
817
- this.setState({formData});
818
- }
819
-
820
- if (!_.isEmpty(this.state.schema)) {
821
- const schema = _.cloneDeep(this.state.schema);
822
- console.log('Schema test 2', schema);
823
- const formData = _.cloneDeep(this.state.formData);
824
- const container = schema.containers[0];
825
- // const baseLanguage = this.props.Global.currentOrgDetails.basic_details.base_language;
826
- if (baseLanguage === formData[0].activeTab) {
827
- container.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: "none"};
828
- } else {
829
- container.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: ""};
830
- }
831
- this.setState({schema});
832
- }
833
-
834
- // console.log('isTagLoaded', this.isTagLoaded);
835
- // if (!this.isTagLoaded) {
836
- // this.isTagLoaded = true;
837
- // const query = {
838
- // layout: 'EMAIL',
839
- // type: 'TAG',
840
- // context: this.props.location.query.type === 'embedded' ? this.props.location.query.module : 'default',
841
- // embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
842
- // };
843
- // this.props.globalActions.fetchSchemaForEntity(query);
844
- // }
845
-
846
- if (this.state.isEdit && !this.state.editDataSet && !_.isEmpty(nextProps.Email.templateDetails) && !_.isEmpty(this.state.schema)) {
847
- console.log('setting edit data in email', nextProps.Email.templateDetails);
848
- this.setState({editDataSet: true}, () => {
849
- this.setEditData(nextProps.Email.templateDetails);
850
- });
851
- }
852
- if (this.state.isEdit && nextProps.location.query.module === "library" && !_.isEmpty(nextProps.templateData) && !this.props.params.id && !nextProps.isGetFormData) {
853
- this.startTemplateCreation(nextProps.templateData);
854
- }
855
- if (nextProps.location.query.module === 'library' && nextProps.isGetFormData) {
856
- this.getFormData();
857
- }
858
-
859
- if (!_.isEmpty(nextProps.Email.CmsSettings) && !_.isEqual(this.props.Email.CmsSettings, nextProps.Email.CmsSettings)) {
860
- const apiLangId = nextProps.Email.CmsSettings.langId;
861
- const langId = nextProps.Email.CmsSettings.langId !== "undefined" ? nextProps.Email.CmsSettings.langId : nextProps.Global.currentOrgDetails.basic_details.base_language;
862
- console.log('Got src', this.state.currentTab, nextProps.Email.CmsSettings, langId, nextProps.Global.currentOrgDetails.basic_details.base_language);
863
- const formData = _.cloneDeep(this.state.formData);
864
-
865
- const schema = _.cloneDeep(this.state.schema);
866
- const langIndex = formData[this.state.currentTab - 1].selectedLanguages.indexOf(langId);
867
- console.log('edm trying to set data', langIndex, langId, formData[this.state.currentTab - 1].activeTab, apiLangId);
868
- const temp = schema.containers[this.state.currentTab - 1];
869
- if (baseLanguage === langId && (apiLangId === "undefined" || apiLangId === formData[this.state.currentTab - 1].activeTab)) {
870
- temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: "none"};
871
- } else if (apiLangId === "undefined" || apiLangId === formData[this.state.currentTab - 1].activeTab) {
872
- temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: ""};
873
- }
874
-
875
- if (nextProps.Email.CmsSettings.isDragDrop) {
876
- formData[`${this.state.currentTab - 1}`][langId][`edmeditor${this.state.currentTab > 1 ? this.state.currentTab : ''}src`] = nextProps.Email.CmsSettings.url;
877
- formData[`${this.state.currentTab - 1}`][langId][`drag_drop_id`] = this.getParameterByName("projectId", nextProps.Email.CmsSettings.url);
878
- formData[`${this.state.currentTab - 1}`][langId][`is_drag_drop`] = true;
879
- if (formData[`${this.state.currentTab - 1}`].base) {
880
- formData.base[langId][`edmeditor${this.state.currentTab > 1 ? this.state.currentTab : ''}src`] = nextProps.Email.CmsSettings.url;
881
- formData.base[langId][`drag_drop_id`] = this.getParameterByName("projectId", nextProps.Email.CmsSettings.url);
882
- formData.base[langId][`is_drag_drop`] = true;
883
- }
884
- _.forEach(temp.panes, (pane, index) => {
885
- const tempPane = pane;
886
- // console.log('edm trying to set data', index, langIndex, tempPane);
887
- if (parseInt(index, 10) === parseInt(langIndex, 10)) {
888
- // console.log('edm trying to set data done', index, langIndex, tempPane);
889
- tempPane.sections[0].inputFields[0].cols[1].colStyle = {display: ""};
890
- tempPane.sections[0].inputFields[0].cols[0].colStyle = {display: "none"};
891
- }
892
- });
893
- console.log('Schema test 3', schema);
894
- this.setState({schema, isSchemaChanged: true});
895
- } else {
896
- _.forEach(temp.panes, (pane, index) => {
897
- const tempPane = pane;
898
- if (parseInt(index, 10) === parseInt(langIndex, 10) ) {
899
- tempPane.sections[0].inputFields[0].cols[1].colStyle = {display: "none"};
900
- tempPane.sections[0].inputFields[0].cols[0].colStyle = {display: ""};
901
- }
902
- });
903
- console.log('Schema test 4', schema);
904
- this.setState({schema, isSchemaChanged: true});
905
- let html = decodeURIComponent(nextProps.Email.CmsSettings.htmlContent);
906
- console.log('Before ', html, nextProps.Email.CmsSettings.htmlContent);
907
- html = html.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/\\&quot;/g, '"');
908
- console.log('html content ', html);
909
- formData[this.state.currentTab - 1][langId]["template-content"] = html;
910
- if (window.CKEDITOR && apiLangId !== "undefined") {
911
- const instanceName = `template-content${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`;
912
- console.log('email switch data name', instanceName);
913
- _.forEach(window.CKEDITOR.instances, (winInstance) => {
914
- const tempInstance = winInstance;
915
- console.log('email switch data instance', winInstance, winInstance.name);
916
- if (winInstance.name === instanceName) {
917
- console.log('setting instance name after loading', winInstance, name);
918
- tempInstance.setData(html);
919
- } else if (winInstance.name.indexOf('editor') !== -1) {
920
- tempInstance.setData(html);
921
- }
922
- });
923
- }
924
- }
925
-
926
- this.setState({ formData }, () => {
927
- this.hideEdmOptions(nextProps.Email.CmsSettings.isDragDrop);
928
- });
929
- }
930
-
931
- if (nextProps.Email.createResponse && nextProps.Email.createResponse.templateId) {
932
- // this.resetSchema();
933
- let message;
934
- if (this.state.isEdit) {
935
- message = getMessageObject('success', this.props.intl.formatMessage(messages.emailEditSuccess), true);
936
- } else {
937
- message = getMessageObject('success', this.props.intl.formatMessage(messages.emailCreateSuccess), true);
938
- }
939
- this.props.globalActions.addMessageToQueue(message);
940
- this.props.actions.clearCRUDResponse();
941
- const module = this.props.location.query.module ? this.props.location.query.module : 'default';
942
- const type = this.props.location.query.type;
943
- const isLanguageSupport = this.props.location.query.isLanguageSupport || false;
944
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
945
- this.props.router.push({
946
- pathname: `/email`,
947
- query: type === 'embedded' ? {type: 'embedded', module, isLanguageSupport, isEdmSupport} : {module, isLanguageSupport, isEdmSupport},
948
- });
949
- }
950
- if (nextProps.Email.createTemplateError && !_.isEqual(nextProps.Email.createTemplateError, this.props.Email.createTemplateError)) {
951
- const message = getMessageObject('error', (nextProps.Email.createTemplateErrorMessage && nextProps.Email.createTemplateErrorMessage !== '') ? nextProps.Email.createTemplateErrorMessage : this.props.intl.formatMessage(messages.somethingWentWrong), true);
952
- this.props.globalActions.addMessageToQueue(message);
953
- }
954
- if (!nextProps.Email.fetchingCmsData && !_.isEqual(nextProps.Email.cmsData, this.props.Email.cmsData)) {
955
- const formData = _.cloneDeep(this.state.formData);
956
- if (nextProps.Email.langId && nextProps.Email.langId !== 'undefined') {
957
- console.log('setting template content', nextProps.Email.cmsData, decodeURIComponent(nextProps.Email.cmsData));
958
- const langId = nextProps.Email.langId;
959
- formData[`${this.state.currentTab - 1}`][langId]['template-content'] = decodeURIComponent(nextProps.Email.cmsData);
960
- if (formData[`${this.state.currentTab - 1}`].base) {
961
- formData.base[langId]['template-content'] = decodeURIComponent(nextProps.Email.cmsData);
962
- }
963
- } else if (this.state.gettingPreviewData) {
964
- this.setState({gettingPreviewData: false});
965
- formData[`${this.state.currentTab - 1}`][formData[`${this.state.currentTab - 1}`].activeTab]['template-content'] = decodeURIComponent(nextProps.Email.cmsData);
966
- if (formData[`${this.state.currentTab - 1}`].base) {
967
- formData.base[formData.base.activeTab]['template-content'] = decodeURIComponent(nextProps.Email.cmsData);
968
- }
969
- } else {
970
- console.log('email switch data ', this.state.currentTab, formData, formData[`${this.state.currentTab - 1}`].activeTab);
971
- const langIndex = formData[this.state.currentTab - 1].selectedLanguages.indexOf(formData[this.state.currentTab - 1].activeTab);
972
- const instanceName = `template-content${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`;
973
- console.log('email switch data name', instanceName);
974
- _.forEach(window.CKEDITOR.instances, (winInstance) => {
975
- const temp = winInstance;
976
- console.log('email switch data instance', winInstance, winInstance.name);
977
- if (winInstance.name === instanceName) {
978
- console.log('setting instance name after loading', winInstance, name);
979
- temp.setData(decodeURIComponent(nextProps.Email.cmsData));
980
- } else if (winInstance.name.indexOf('editor') !== -1) {
981
- temp.setData(decodeURIComponent(nextProps.Email.cmsData));
982
- }
983
- });
984
- formData[`${this.state.currentTab - 1}`][formData[`${this.state.currentTab - 1}`].activeTab]['template-content'] = decodeURIComponent(nextProps.Email.cmsData);
985
- formData[`${this.state.currentTab - 1}`][formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop = false;
986
- formData[`${this.state.currentTab - 1}`][formData[`${this.state.currentTab - 1}`].activeTab].drag_drop_id = "";
987
- delete formData[`${this.state.currentTab - 1}`][formData[`${this.state.currentTab - 1}`].activeTab].edmeditorsrc;
988
- if (formData[`${this.state.currentTab - 1}`].base) {
989
- formData.base[formData.base.activeTab]['template-content'] = decodeURIComponent(nextProps.Email.cmsData);
990
- formData.base[formData.base.activeTab].is_drag_drop = false;
991
- formData.base[formData.base.activeTab].drag_drop_id = "";
992
- delete formData.base[formData.base.activeTab].edmeditorsrc;
993
- }
994
- console.log('ckeditor trying to set ckeditor data');
995
- }
996
- console.log('setting template content final', formData);
997
- this.setState({ formData }, () => {
998
- if (nextProps.Email.langId) {
999
- this.shouldStartValidation();
1000
- }
1001
- });
1002
- }
1003
-
1004
- if (nextProps.metaEntities && nextProps.metaEntities.tags && nextProps.metaEntities.tags.custom && !_.isEqual(this.props.metaEntities.tags, nextProps.metaEntities.tags)) {
1005
- let injectedTags = _.cloneDeep(this.state.injectedTags);
1006
- delete injectedTags["Registration custom fields"];
1007
- delete injectedTags["Store custom fields"];
1008
- delete injectedTags["Transaction custom fields"];
1009
- injectedTags = _.merge({}, injectedTags, nextProps.metaEntities.tags.custom);
1010
- console.log('new injected tags', nextProps.metaEntities.tags.custom);
1011
- if (!_.has(nextProps.metaEntities.tags.custom, "Registration custom fields")) {
1012
- delete injectedTags["Registration custom fields"];
1013
- }
1014
- if (!_.has(nextProps.metaEntities.tags.custom, "Store custom fields")) {
1015
- delete injectedTags["Store custom fields"];
1016
- }
1017
- if (!_.has(nextProps.metaEntities.tags.custom, "Transaction custom fields")) {
1018
- delete injectedTags["Transaction custom fields"];
1019
- }
1020
- this.setState({injectedTags});
1021
- }
1022
-
1023
- if ( !_.isEqual(nextProps.Email.uploadAssetSuccess, this.props.Email.uploadAssetSuccess) && nextProps.Email.uploadAssetSuccess) {
1024
- console.log('Post on will receive props');
1025
- const isDragDrop = this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop;
1026
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
1027
- if (isDragDrop && isEdmSupport) {
1028
- console.log('Handle EDM ', this.edmEvent, JSON.parse(this.edmEvent.data)._dynId, nextProps.Email.uploadedAssetData.metaInfo.secure_file_path);
1029
- const evtData = JSON.parse(this.edmEvent.data);
1030
- if (evtData.action === 'editBackground') {
1031
- this.edmEvent.source.postMessage(JSON.stringify({
1032
- _dynId: JSON.parse(this.edmEvent.data)._dynId,
1033
- action: "setProps",
1034
- props: {
1035
- background: {
1036
- image: {
1037
- src: nextProps.Email.uploadedAssetData.metaInfo.secure_file_path,
1038
- },
1039
- },
1040
- },
1041
- }), "*");
1042
- } else if (evtData.action === 'edit') {
1043
- this.edmEvent.source.postMessage(JSON.stringify({
1044
- _dynId: JSON.parse(this.edmEvent.data)._dynId,
1045
- action: "setProps",
1046
- props: {
1047
- src: nextProps.Email.uploadedAssetData.metaInfo.secure_file_path,
1048
- },
1049
- }), "*");
1050
- }
1051
- this.edmEvent = undefined;
1052
- } else {
1053
- this.state.editorInstanse.insertHtml(`<img src='${nextProps.Email.uploadedAssetData.metaInfo.secure_file_path}' alt='Capillary Image'>`);
1054
- //this.resetCkEditorInstance(this.state.currentTab, this.state.formData, true, nextProps.Email.uploadedAssetData, true);
1055
- }
1056
- this.setState({showImageSelectionBox: false});
1057
- }
1058
-
1059
- if ( !_.isEqual(nextProps.Email.assetUploading, this.props.Email.assetUploading) && !nextProps.Email.assetUploading && !nextProps.Email.uploadAssetSuccess) {
1060
- const message = getMessageObject('error', this.props.intl.formatMessage(messages.assetUploadFailed), true);
1061
- this.props.globalActions.addMessageToQueue(message);
1062
- }
1063
-
1064
- if (!_.isEqual(nextProps.Global.currentOrgDetails.basic_details.supported_languages, this.props.Global.currentOrgDetails.basic_details.supported_languages)) {
1065
- this.supportedLanguages = nextProps.Global.currentOrgDetails.basic_details.supported_languages;
1066
- }
1067
-
1068
- if (!nextProps.Email.fetchingAllAssets && !_.isEqual(nextProps.Email.fetchingAllAssets, this.props.Email.fetchingAllAssets) && !_.isEmpty(nextProps.Email.assetList) && nextProps.Email.assetList[0] && nextProps.Email.assetList[0].totalCount && this.state.totalCount === 0) {
1069
- this.setState({totalCount: nextProps.Email.assetList[0].totalCount});
1070
- }
1071
- }
1072
- }
1073
-
1074
- componentWillUnmount() {
1075
- console.log('removed listener create');
1076
- this.resetStateValue();
1077
- window.removeEventListener("message", this.handleFrameTasks);
1078
- this.props.actions.clearStoreValues();
1079
- }
1080
-
1081
- onFormDataChange = (formData, tabCount, currentTab) => {
1082
- console.log('Form data changed is ', formData, tabCount, currentTab);
1083
- // this.transformFormData(formData);
1084
- this.setState({formData, tabCount, isSchemaChanged: false});
1085
- if (currentTab) {
1086
- this.setState({currentTab});
1087
- }
1088
- //this.resetCkEditorInstance(currentTab, formData);
1089
- }
1090
-
1091
- onChange = (evt) => {
1092
- const formData = _.cloneDeep(this.state.formData);
1093
- console.log('oncontentchange onChange ', evt, evt.editor.getData());
1094
- //if (evt.editor.name.indexOf('editor') === -1) {
1095
- // _.forEach(window.CKEDITOR.instances, (winInstance) => {
1096
- // const temp = winInstance;
1097
- // if (winInstance.name === evt.editor.name) {
1098
- // console.log('setting instance name after loading', winInstance, name);
1099
- // setTimeout(() => {
1100
- // //temp.name = id;
1101
- // }, 1000);
1102
- // //temp.name = id;
1103
- // console.log('setting instance name after loading 2', winInstance, name);
1104
- // }
1105
- // });
1106
- //}
1107
- if (!formData[this.state.currentTab - 1][formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop) {
1108
- formData[`${this.state.currentTab - 1}`][formData[`${this.state.currentTab - 1}`].activeTab][`template-content`] = _.cloneDeep(evt.editor.getData());
1109
- if (formData[`${this.state.currentTab - 1}`].tabKey === formData.base.tabKey) {
1110
- formData.base[formData[`${this.state.currentTab - 1}`].activeTab][`template-content`] = _.cloneDeep(evt.editor.getData());
1111
- }
1112
- console.log("Modified Form Data ", formData);
1113
- this.setState({formData, content: evt.editor.getData()}, () => {
1114
- console.log('Dark Knight ', this.state.content);
1115
- });
1116
- }
1117
- }
1118
-
1119
- onBlur = (evt) => {
1120
- console.log("onBlur fired with event info: ", evt);
1121
- }
1122
-
1123
- onTabChange(data, formData) {
1124
- console.log('inside parent ontabchange', data, this.state);
1125
- //this.resetCkEditorInstance(data, formData);
1126
- const schema = _.cloneDeep(this.state.schema);
1127
- const container = schema.containers[`${data - 1}`];
1128
- if (formData[`${data - 1}`][formData[`${data - 1}`].activeTab].is_drag_drop) {
1129
- container.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[3].cols[0].style = {display: ""};
1130
- container.tabBarExtraContent.sections[0].inputFields[0].cols[2].style.display = "none";
1131
- } else {
1132
- container.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[3].cols[0].style = {display: "none"};
1133
- container.tabBarExtraContent.sections[0].inputFields[0].cols[2].style.display = "";
1134
- }
1135
- const baseLanguage = this.props.Global.currentOrgDetails.basic_details.base_language;
1136
- if (baseLanguage === formData[`${data - 1}`].activeTab) {
1137
- container.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: "none"};
1138
- } else {
1139
- container.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: ""};
1140
- }
1141
- this.setState({currentTab: data, formData, schema});
1142
- }
1143
-
1144
- onTemplateNameChange = (name) => {
1145
- console.log('Template name changed to ', name);
1146
- }
1147
-
1148
- onTagSelect = (data, currentTab, value) => {
1149
- console.log('On Tag selection ', data, currentTab, value);
1150
- const isDragDrop = this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop;
1151
- const formData = _.cloneDeep(this.state.formData);
1152
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
1153
- console.log('isEdmsupport', isEdmSupport);
1154
- if (isDragDrop && isEdmSupport) {
1155
- const msg = {
1156
- action: "InsertToCursor",
1157
- content: `{{${data}}}`,
1158
- };
1159
- const msgString = JSON.stringify(msg);
1160
- const langId = formData[this.state.currentTab - 1].activeTab;
1161
- const langIndex = formData[this.state.currentTab - 1].selectedLanguages.indexOf(langId);
1162
- const win = document.getElementById(`edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`).contentWindow;
1163
- win.postMessage(msgString, '*');
1164
- } else {
1165
- console.log('tag', this.state, this.state.editorInstanse);
1166
- this.state.editorInstanse.insertHtml(`{{${data}}}`);
1167
- //this.resetCkEditorInstance(currentTab, formData, true, data);
1168
- }
1169
- }
1170
-
1171
- onImageSelect = (data) => {
1172
- console.log('Calling', data);
1173
- this.setState({ showImageSelectionBox: true }, () => {
1174
- const params = {
1175
- name: this.state.searchText,
1176
- sortBy: 'Most Recent',
1177
- };
1178
- this.fetchAllAssets({params, resetPage: true});
1179
- // this.props.actions.getAllAssets("image", params);
1180
- });
1181
- }
1182
-
1183
- getValidationData = () => {
1184
- console.log('all data save getting validation data');
1185
- const that = this;
1186
- const formData = _.cloneDeep(this.state.formData);
1187
- _.forEach(formData, (val, index) => {
1188
- if (!isNaN(index)) {
1189
- _.forEach(val.selectedLanguages, (language) => {
1190
- console.log('all data save language', language, val[language]);
1191
- if (val[language].is_drag_drop) {
1192
- that.props.actions.getCmsData('edm', val[language].drag_drop_id, language);
1193
- }
1194
- });
1195
- }
1196
- });
1197
- }
1198
-
1199
- setNewLanguageContent = (data) => {
1200
- const content = _.cloneDeep(data);
1201
- const formData = _.cloneDeep(this.state.formData);
1202
- const currentTab = this.state.currentTab - 1;
1203
- // const schema = _.cloneDeep(this.state.schema);
1204
- console.log('Setting new language content', formData, this.state.settingLanguage);
1205
- const currentTabData = formData[currentTab][this.state.settingLanguage.iso_code];
1206
- currentTabData.is_drag_drop = false;
1207
- currentTabData.drag_drop_id = "";
1208
- const newActiveTab = this.state.settingLanguage.iso_code;
1209
- currentTabData["template-content"] = content;
1210
- formData[currentTab].activeTab = newActiveTab;
1211
- if (currentTabData.edmeditorsrc) {
1212
- delete currentTabData.edmeditorsrc;
1213
- }
1214
- formData[currentTab].selectedLanguages.push(newActiveTab);
1215
- console.log('setting new language content final', formData);
1216
- // this.setState({formData});
1217
- // const container = schema.containers[this.state.currentTab - 1];
1218
- // const temp = container;
1219
- // const langTab = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(newActiveTab);
1220
- // console.log('switch language Tab ', langTab, this.state.formData[`${this.state.currentTab - 1}`].selectedLanguages, this.state.formData[`${this.state.currentTab - 1}`].activeTab);
1221
- // temp.panes[langTab].sections[0].inputFields[0].cols[0].colStyle = {display: ""};
1222
- // temp.panes[langTab].sections[0].inputFields[0].cols[1].colStyle = {display: "none"};
1223
- // temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[3].cols[0].style = {display: "none"};
1224
- this.props.templatesActions.resetUploadData();
1225
- this.setState({formData, languageDataSet: false, addLanguageType: ''});
1226
- }
1227
-
1228
- getParameterByName = (name, url) => {
1229
- const match = RegExp(`[?&]${name}=([^&]*)`).exec(url);
1230
- return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
1231
- }
1232
-
1233
- getFormData = (e, value) => {
1234
- this.setState({getFormDataValue: value, gettingFormData: true}, () => {
1235
- this.saveValidationData();
1236
- });
1237
- // console.log('posting final result', this.state.formData);
1238
- // const response = {
1239
- // action: "getFormData",
1240
- // postAction: value || 'next',
1241
- // value: this.transformFormData(this.state.formData),
1242
- // validity: this.state.isFormValid,
1243
- // };
1244
- // console.log('Get Data', response);
1245
- // this.setState({checkValidation: true});
1246
- // if (e) {
1247
- // e.source.postMessage(JSON.stringify(response), e.origin);
1248
- // }
1249
- // return response;
1250
- }
1251
-
1252
- setFormValidity = (isFormValid) => {
1253
- this.setState({isFormValid});
1254
- }
1255
-
1256
- setEditData(editData) {
1257
- console.log('Edit Data is ', editData);
1258
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
1259
- const formData = _.cloneDeep(this.state.formData);
1260
-
1261
- const tabIndex = this.state.currentTab + 1;
1262
- const schema = (this.props.location.query.type === 'embedded') ? this.removeStandAlone() : _.cloneDeep(this.state.schema);
1263
- const containers = _.cloneDeep(schema.containers.slice());
1264
- let tabKey = "";
1265
- let currentTab = _.cloneDeep(this.state.currentTab);
1266
- const isLanguageSupport = this.props.location.query.isLanguageSupport;
1267
- const type = this.props.location.query.type;
1268
-
1269
- formData['template-name'] = editData.name;
1270
- formData.base = editData.versions.base;
1271
-
1272
- _.forEach(editData.versions.history, (data1, index) => {
1273
- const data = _.cloneDeep(data1);
1274
- if (data !== null) {
1275
- if (index > 0 && (isLanguageSupport || this.props.location.query.type !== 'embedded')) {
1276
- const firstPane = _.cloneDeep(containers[0].panes[0]);
1277
- // schema.containers[this.state.currentTab - 1].isActive = false;
1278
- const sections = [];
1279
- // containers[0].isActive = true;
1280
- _.forEach(firstPane.sections, (section) => {
1281
- let sect = _.cloneDeep(section);
1282
- console.log('trying to clone in add version', JSON.stringify(sect), index);
1283
- if (sect.type === 'col-label') {
1284
- sect = this.cloneColLabel(sect, index, true);
1285
- } else if (sect.type === 'multicols') {
1286
- sect = this.cloneMultiCol(sect, index, true);
1287
- } else if (sect.type === 'parent') {
1288
- sect = this.cloneParent(sect, index, true);
1289
- }
1290
- console.log('returning section', sect);
1291
- sections.push(sect);
1292
- return true;
1293
- });
1294
- firstPane.sections = sections;
1295
- containers[0].panes = [];
1296
- containers[0].panes.push(firstPane);
1297
- schema.containers.push(containers[0]);
1298
- console.log('Pane Version', containers);
1299
-
1300
- // _.forEach(sections[0].inputFields[0].cols, (inputField) => {
1301
- // if (this.map[inputField.id] === undefined) {
1302
- // if (inputField.id.indexOf('template-content') > -1) {
1303
- // this.map[inputField.id] = this.map['template-content'];
1304
- // } else if (inputField.id.indexOf('edmeditor2') > -1) {
1305
- // this.map[inputField.id] = this.map.edmeditor2;
1306
- // }
1307
- // }
1308
- // });
1309
-
1310
- const newVersionOption = formData['template-version-options'].pop();
1311
- formData['template-version-options'].push({
1312
- key: `version ${index + 1}`,
1313
- label: `Version ${index + 1}`,
1314
- value: `version ${index + 1}`,
1315
- });
1316
- formData['template-version-options'].push(newVersionOption);
1317
- }
1318
-
1319
- // data.activeTab = this.props.Global.currentOrgDetails.basic_details.base_language;
1320
- _.forEach((data.selectedLanguages), (language) => {
1321
- if (data.tabKey === data[language].tabKey) {
1322
- data.activeTab = language;
1323
- }
1324
- });
1325
- if (data.constructor === Object) {
1326
- console.log("Edit Data ", data, 'Tab key ', editData.versions.base.tabKey, data.tabKey, index, schema.containers, formData);
1327
- if (data.tabKey === editData.versions.base.tabKey) {
1328
- tabKey = data.tabKey;
1329
- schema.containers[index].isActive = true;
1330
- formData['template-version'] = formData['template-version-options'][index].key;
1331
- currentTab = index + 1;
1332
- console.log('Dummy Random Tabkey Found ', tabKey, index, schema.containers[index].isActive);
1333
- } else {
1334
- schema.containers[index].isActive = false;
1335
- console.log('Dummy Random ', schema.containers[index].isActive, index);
1336
- }
1337
- // const isLanguageSupport = this.props.location.query.isLanguageSupport;
1338
- console.log('Schema Test ', schema, schema.containers[index]);
1339
- _.forEach(data.selectedLanguages, (lang, langIndex) => {
1340
- console.log('Language ', lang, langIndex);
1341
- if ((type !== 'embedded' || (type === 'embedded' && isLanguageSupport === 'true')) && lang !== this.props.Global.currentOrgDetails.basic_details.base_language) {
1342
- const tabContent = _.cloneDeep(containers[0].tabContent.sections[0]);
1343
- const tabContentSection = tabContent.inputFields[0].cols[0];
1344
- const panes = containers[0].panes.slice();
1345
- const firstPane = _.cloneDeep(panes[0]);
1346
- const sections = [];
1347
- _.forEach(firstPane.sections, (section) => {
1348
- let sect = _.cloneDeep(section);
1349
- console.log('trying to clone in add version', JSON.stringify(sect), tabIndex);
1350
- if (sect.type === 'col-label') {
1351
- sect = this.cloneColLabel(sect, (langIndex + 1));
1352
- } else if (sect.type === 'multicols') {
1353
- sect = this.cloneMultiCol(sect, (langIndex + 1));
1354
- } else if (sect.type === 'parent') {
1355
- sect = this.cloneParent(sect, (langIndex + 1));
1356
- }
1357
- console.log('returning section', sect);
1358
- sections.push(sect);
1359
- return true;
1360
- });
1361
- // console.log('tabContent.inputFields[0].cols[0]', tabContentSection, this.state.currentTab);
1362
- console.log('Testing language', this.map[tabContentSection.id], tabContentSection.id, data, lang);
1363
- this.map[`template-content${data.selectedLanguages.indexOf(lang) + 1}`] = this.map['template-content'];
1364
- tabContentSection.id = `${tabContentSection.id}${index + 1}`;
1365
- tabContentSection.value = `${data[lang].language}`;
1366
- console.log('cloned final sections', sections, tabContent);
1367
- firstPane.sections = sections;
1368
- firstPane.sectionsHeaders = [tabContent];
1369
- console.log('firstPane final version', JSON.stringify(firstPane));
1370
- // panes.push(firstPane);
1371
- console.log('initial panes', JSON.stringify(this.state.schema.containers));
1372
- schema.containers[index].panes.push(firstPane);
1373
- } else if (lang !== this.props.Global.currentOrgDetails.basic_details.base_language) {
1374
- delete data[lang];
1375
- data.selectedLanguages.splice(langIndex, 1);
1376
- }
1377
- });
1378
- }
1379
- if (data.base) {
1380
- formData.base = data;
1381
- }
1382
- formData[index] = data;
1383
- }
1384
- });
1385
-
1386
- _.forEach(formData.base.selectedLanguages, (language) => {
1387
- if (formData.base.tabKey === formData.base[language].tabKey) {
1388
- formData.base.activeTab = language;
1389
- }
1390
- });
1391
-
1392
- console.log('Edit Form Data ', formData, schema);
1393
- this.setState({ formData, schema, tabKey, currentTab, tabCount: editData.versions.history.length }, () => {
1394
- console.log('Form Data Set ', this.state.formData);
1395
- _.forEach((editData.versions.base.selectedLanguages), (language) => {
1396
- // if (formData[this.state.currentTab - 1].tabKey === formData[this.state.currentTab - 1][language].tabKey) {
1397
- // formData[this.state.currentTab - 1].activeTab = language;
1398
- // }
1399
- // if (formData.base.tabKey === formData.base[language].tabKey) {
1400
- // formData.base.activeTab = language;
1401
- // }
1402
- if (language && editData.versions.base[language].is_drag_drop) {
1403
- console.log('making edm calls again');
1404
- this.props.actions.getCmsSetting('edm', editData.versions.base[language].drag_drop_id, 'open', language, isEdmSupport);
1405
- }
1406
- });
1407
- console.log('final form data edit', formData);
1408
- // this.resetCkEditorInstance(this.state.currentTab - 1, formData);
1409
- // this.setState({formData});
1410
- });
1411
- }
1412
-
1413
- getMappedEvent = (id, event) => {
1414
- console.log('Map ', this.map, id, event);
1415
- return this.map[id][event];
1416
- }
1417
-
1418
- getCurrentWindow = (e) => {
1419
- console.log('in email create', e);
1420
- const response = {
1421
- action: e.action,
1422
- value: 'edit',
1423
- direction: e.value,
1424
- };
1425
- parent.postMessage(JSON.stringify(response), '*');
1426
- }
1427
-
1428
- getEditorInstanse = (instance, id) => {
1429
- console.log('Got editor Instance ', instance, id);
1430
- window.CKEDITOR.on( 'instanceReady', ( event ) => {
1431
- this.setState({editorInstanse: event.editor});
1432
- event.editor.on( 'focus', () => {
1433
- console.log( 'focused', event.editor, this );
1434
- this.setState({editorInstanse: event.editor});
1435
- });
1436
- });
1437
- //this.setState({editorInstanse: instance});
1438
- }
1439
-
1440
- setModalContent = (type, data) => {
1441
- let modalContent = {};
1442
- if (type === 'delete-version') {
1443
- modalContent = {
1444
- title: "Alert",
1445
- body: "Do you really want to delete this version?",
1446
- type: 'confirm',
1447
- id: 'email-version-delete-modal',
1448
- };
1449
- } else if (type === 'delete-language') {
1450
- modalContent = {
1451
- title: "Alert",
1452
- body: "Do you really want to delete this language?",
1453
- type: 'confirm',
1454
- id: 'email-language-delete-modal',
1455
- };
1456
- } else if (type === 'add-language') {
1457
- const jsx = (
1458
- <div>
1459
- <div><CapButton type="secondary" style={{width: "100%", marginBottom: "8px"}} onClick={this.uploadFile}>Upload File</CapButton>
1460
- <input type="file" id="filename" style={{ display: 'none'}} accept=".zip, .html, .htm" onChange={(event) => this.handleFileUpload(event, {files: event.target.files})} />
1461
- </div>
1462
- <div><CapButton type="secondary" style={{width: "100%", marginBottom: "8px"}} onClick={this.useEditor}>Use Editor</CapButton></div>
1463
- <div><CapButton type="secondary" style={{width: "100%", marginBottom: "8px"}} onClick={this.copyPrimaryLanguage}>Copy primary Language</CapButton></div>
1464
- </div>);
1465
- modalContent = {
1466
- title: "New Language",
1467
- type: "action",
1468
- jsx,
1469
- id: 'email-add-language-options',
1470
- };
1471
- this.setState({settingLanguage: data});
1472
- }
1473
- this.setState({ modalContent, showModal: true});
1474
- };
1475
-
1476
- shouldStartValidation = () => {
1477
- this.setState((prevState) => ({ cmsDataCount: prevState.cmsDataCount + 1}), () => {
1478
- console.log('all data save count validating', this.state.saveCount, this.state.cmsDataCount);
1479
- if (this.state.targetSaveCount === this.state.cmsDataCount) {
1480
- console.log('validation final starting edm validation');
1481
- this.setState({startValidation: true});
1482
- }
1483
- });
1484
- }
1485
-
1486
- stopValidation = () => {
1487
- this.setState({startValidation: false});
1488
- }
1489
- saveValidationData = () => {
1490
- let saveCount = 0;
1491
- this.setState({saveEdmDataMode: 'validation', saveCount: 0, cmsDataCount: 0}, () => {
1492
- _.forEach(this.state.formData, (newdata, index) => {
1493
- if (!isNaN(index)) {
1494
- _.forEach(newdata.selectedLanguages, (language) => {
1495
- if (newdata[language].is_drag_drop && ((parseInt(index, 10) + 1) === this.state.currentTab)) {
1496
- console.log('all data 4');
1497
- saveCount += 1;
1498
- }
1499
- });
1500
- }
1501
- });
1502
- if (saveCount === 0) {
1503
- this.setState({startValidation: true});
1504
- return;
1505
- }
1506
- this.setState({targetSaveCount: saveCount, mode: "save", saveCount: 0, cmsDataCount: 0}, () => {
1507
- const data = this.state.formData[this.state.currentTab - 1];
1508
- _.forEach(data.selectedLanguages, (language, langIndex) => {
1509
- if (data[language].is_drag_drop) {
1510
- console.log('saving edm template', document.getElementById("edmeditor"), `edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`);
1511
- const win = document.getElementById(`edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`).contentWindow;
1512
- win.postMessage("saveProject", '*');
1513
- }
1514
- });
1515
- });
1516
- });
1517
- }
1518
-
1519
- resetStateValue = () => {
1520
- this.setState({
1521
- formData: {},
1522
- tabCount: 1,
1523
- currentTab: 1,
1524
- isEdit: false,
1525
- schema: {},
1526
- loading: false,
1527
- isFormValid: true,
1528
- injectedTags: {},
1529
- checkValidation: false,
1530
- tabKey: '',
1531
- showEmailPreview: false,
1532
- device: "desktop",
1533
- editorInstanse: undefined,
1534
- showImageSelectionBox: false,
1535
- isDragDrop: false,
1536
- showConfirmationModal: false,
1537
- modalContent: {title: "Alert", body: "Do you really want to delete this language?", type: 'confirm', id: 'email-language-delete-modal'},
1538
- showModal: false,
1539
- page: 1,
1540
- perPageLimit: 25,
1541
- totalCount: 0,
1542
- searchText: '',
1543
- saveCount: 0,
1544
- targetSaveCount: 0,
1545
- saveObj: {},
1546
- showEdmEmailTemplates: false,
1547
- editDataSet: false,
1548
- }, () => {
1549
- console.log('Unmount value cleared', this.state);
1550
- });
1551
- }
1552
-
1553
- resetCkEditorInstance = (data, formData, onInsert, value, isImage) => {
1554
- const currentLang = formData[`${data - 1}`].selectedLanguages.indexOf(formData[`${data - 1}`].activeTab);
1555
- const langIndex = formData[`${data - 1}`].selectedLanguages.indexOf(formData[`${data - 1}`].activeTab);
1556
- let instance1 = window.CKEDITOR.instances[`editor${currentLang + 1}`];
1557
- const instanceCount = 0;
1558
- const instanceArray = [];
1559
- _.forEach(window.CKEDITOR.instances, (instance, index) => {
1560
- console.log('all ck instances ', instance, index, instanceCount, langIndex);
1561
- const name = instance.name;
1562
- if (instance.status === "destroyed") {
1563
- return;
1564
- }
1565
- let instanceIdx = 0;
1566
- if (name.indexOf('template-content') > -1 && name !== 'template-content') {
1567
- instanceIdx = parseInt(name.replace('template-content', ''), 10) - 1;
1568
- const obj = {
1569
- idx: instanceIdx,
1570
- instance,
1571
- };
1572
- instanceArray.push(obj);
1573
- } else {
1574
- const obj = {
1575
- idx: 0,
1576
- instance,
1577
- };
1578
- instanceArray.push(obj);
1579
- }
1580
- });
1581
- console.log('sorted instance array before sort', instanceArray);
1582
- instanceArray.sort( (a, b) => {
1583
- const idxA = a.idx;
1584
- const idxB = b.idx;
1585
- if (idxA < idxB) {
1586
- return -1;
1587
- } else if (idxA > idxB) {
1588
- return 1;
1589
- }
1590
- return 0;
1591
- });
1592
- console.log('sorted instance array after sort', instanceArray);
1593
- //instanceCount += 1;
1594
- // if (instanceIdx === langIndex) {
1595
- const instance = instanceArray[langIndex].instance;
1596
- console.log('setting instance as ', instance, instance.name);
1597
- instance1 = instance;
1598
- this.setState({editorInstanse: instance1}, () => {
1599
- if (onInsert && !isImage) {
1600
- this.state.editorInstanse.insertHtml(`{{${value}}}`);
1601
- } else if (onInsert) {
1602
- this.state.editorInstanse.insertHtml(`<img src='${value.metaInfo.secure_file_path}' alt='Capillary Image'>`);
1603
- }
1604
- });
1605
- }
1606
-
1607
- uploadFile = () => {
1608
- console.log('uploadFile');
1609
- document.getElementById('filename').click();
1610
- console.log('Upload File initiated');
1611
- };
1612
-
1613
- useEditor = () => {
1614
- console.log('useEditor');
1615
- //this.toggleEdmEmailTemplateSelection();
1616
- this.setState({addLanguageType: "useEditor"}, () => {
1617
- this.setState({showModal: false}, () => {
1618
- this.toggleEdmEmailTemplateSelection();
1619
- });
1620
- });
1621
- }
1622
-
1623
- copyPrimaryLanguage = () => {
1624
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
1625
- console.log('copy primary language');
1626
- this.setState({addLanguageType: "copyPrimaryLanguage"}, () => {
1627
- this.setState({showModal: false});
1628
- const formData = _.cloneDeep(this.state.formData);
1629
- const currentTab = this.state.currentTab - 1;
1630
- const baseLanguage = this.props.Global.currentOrgDetails.basic_details.base_language ? this.props.Global.currentOrgDetails.basic_details.base_language : 'en';
1631
- if (formData[currentTab][baseLanguage].is_drag_drop) {
1632
- this.props.actions.getCmsSetting('edm', formData[currentTab][baseLanguage].drag_drop_id, 'duplicate', baseLanguage, isEdmSupport);
1633
- }
1634
- });
1635
- }
1636
-
1637
- handleFileUpload = (e, {files}) => {
1638
- if (files.length === 0) {
1639
- return;
1640
- }
1641
- const fileExtension = files[0].name.split('.').pop();
1642
- const supportedZipFormats = ['zip'];
1643
- console.log('File Params ', fileExtension);
1644
- if (supportedZipFormats.indexOf(fileExtension.toLowerCase()) !== -1) {
1645
- this.setState({ addLanguageType: "upload"}, () => {
1646
- console.log('Zip Format got');
1647
- this.props.templatesActions.handleZipUpload(files[0]);
1648
- document.getElementById("filename").value = "";
1649
- this.setState({showModal: false});
1650
- });
1651
- } else if (fileExtension === 'html' || fileExtension === 'htm') {
1652
- console.log('html Format got');
1653
- const reader = new FileReader();
1654
- reader.onload = () => {
1655
- this.setState({ addLanguageType: "upload"}, () => {
1656
- const text = reader.result;
1657
- this.props.templatesActions.handleHtmlUpload(text);
1658
- document.getElementById("filename").value = "";
1659
- this.setState({showModal: false});
1660
- });
1661
- };
1662
- reader.readAsText(files[0]);
1663
- } else {
1664
- alert('Invalid file type added! Please Give a proper zip/html file');
1665
- console.log('Invalid file type added! Please Give a proper zip/html file');
1666
- }
1667
- };
1668
-
1669
- uploadImages(e, {files}) {
1670
- e.preventDefault();
1671
- const _URL = window.URL || window.webkitURL;
1672
- const file = files[0];
1673
- const fileSize = (file.size / ( 1024 * 1024 ));
1674
- if (fileSize > 5) {
1675
- const message = getMessageObject('error', this.props.intl.formatMessage(messages.uploadSizeError), true);
1676
- this.props.globalActions.addMessageToQueue(message);
1677
- document.getElementById("fileName").value = "";
1678
- return;
1679
- }
1680
- const img = new Image();
1681
- const that = this;
1682
- img.src = _URL.createObjectURL(file);
1683
- img.onload = function () {
1684
- const fileParams = {
1685
- width: this.width,
1686
- height: this.height,
1687
- };
1688
- that.props.actions.uploadAsset(file, 'image', fileParams);
1689
- that.handleImagePreviewClose();
1690
- };
1691
- }
1692
-
1693
- fetchAllAssets = ({params, getNextPage, resetPage}) => {
1694
- let queryParams = params;
1695
- let page = this.state.page;
1696
- if (!this.props.Email.fetchingAllAssets && (resetPage || (page === 1 && this.state.totalCount === 0) || page <= (this.state.totalCount / this.state.perPageLimit))) {
1697
- if (getNextPage) {
1698
- page += 1;
1699
- }
1700
- let totalCount = this.state.totalCount;
1701
- if (resetPage) {
1702
- page = 1;
1703
- totalCount = 0;
1704
- }
1705
- if ((!params || _.isEmpty(params))) {
1706
- queryParams = {
1707
- sortBy: this.state.sortBy,
1708
- };
1709
- }
1710
- if (this.state.searchText !== "") {
1711
- queryParams = {...queryParams, name: this.state.searchText};
1712
- }
1713
- this.setState({page, totalCount}, () => {
1714
- queryParams.page = page;
1715
- queryParams.perPage = this.state.perPageLimit;
1716
- this.props.actions.getAllAssets('image', queryParams);
1717
- });
1718
- }
1719
- };
1720
-
1721
- searchAsset = (value) => {
1722
- this.setState({searchText: value}, () => {
1723
- this.delay(() => {
1724
- const params = {
1725
- name: this.state.searchText,
1726
- };
1727
- if (this.state.sortBy) {
1728
- params.sortBy = this.state.sortBy;
1729
- }
1730
- this.fetchAllAssets({params, resetPage: true});
1731
- }, 1000);
1732
- });
1733
- }
1734
-
1735
- delay = (callback, ms) => {
1736
- clearTimeout(this.delayTimer);
1737
- this.delayTimer = setTimeout(callback, ms);
1738
- }
1739
-
1740
- deleteLanguage = (passedData, val) => {
1741
- const formData = _.cloneDeep(passedData);
1742
- console.log('Delete Language ', formData, val);
1743
- const schema = _.cloneDeep(this.state.schema);
1744
- schema.containers[this.state.currentTab - 1].panes.splice(val, 1);
1745
- schema.containers[this.state.currentTab - 1].tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: "none"};
1746
- //this.resetCkEditorInstance(this.state.currentTab, formData);
1747
- this.setState({schema, formData, showModal: false});
1748
- console.log('Schema ', schema, formData, val);
1749
- }
1750
-
1751
- initFormData(props, fromMount) {
1752
- console.log('init email', props, fromMount);
1753
- let newFormData = {};
1754
- if (props.Global.currentOrgDetails && props.Global.currentOrgDetails.basic_details) {
1755
- console.log('init email actual', props, fromMount);
1756
- newFormData = {
1757
- "0": {},
1758
- "template-name": "",
1759
- "base": {},
1760
- };
1761
- const baseData = {};
1762
- const baseLanguage = props.Global.currentOrgDetails.basic_details.base_language;
1763
- this.supportedLanguages = props.Global.currentOrgDetails.basic_details.supported_languages;
1764
- const languageObject = this.supportedLanguages[_.findIndex(this.supportedLanguages, {iso_code: baseLanguage})];
1765
- baseData.activeTab = baseLanguage;
1766
- baseData[languageObject.iso_code] = {};
1767
- baseData[languageObject.iso_code].is_drag_drop = false;
1768
- baseData[languageObject.iso_code].lang_id = languageObject.lang_id;
1769
- baseData[languageObject.iso_code].iso_code = languageObject.iso_code;
1770
- baseData[languageObject.iso_code].language = languageObject.language;
1771
- baseData[languageObject.iso_code]["template-content"] = (props.Templates.selectedEmailLayout ? props.Templates.selectedEmailLayout : '');
1772
- // if (this.state.isDragDrop) {
1773
- baseData[languageObject.iso_code].drag_drop_id = "";//props.Templates.edmTemplate.versions.base.drag_drop_id;
1774
- //}
1775
- baseData.selectedLanguages = [baseLanguage];
1776
- newFormData.base = baseData;
1777
- newFormData[0] = baseData;
1778
- newFormData[0].base = true;
1779
- }
1780
- this.props.templatesActions.resetUploadData();
1781
- return newFormData;
1782
- }
1783
-
1784
- transformFormData = (formData) => {
1785
- console.log('Transforming data ', formData);
1786
- const newFormData = {
1787
- base: {},
1788
- secondary_templates: [],
1789
- };
1790
- // const baseData = {};
1791
- _.forEach(formData.base, (content, index) => {
1792
- if (content && content.constructor === Object) {
1793
- const tmpData = {};
1794
- if (_.isEmpty(content)) {
1795
- return;
1796
- }
1797
- tmpData.html_content = content['template-content'];
1798
- tmpData.is_drag_drop = content.is_drag_drop;
1799
- tmpData.lang_id = content.lang_id;
1800
- tmpData.iso_code = content.iso_code;
1801
- tmpData.language = content.language;
1802
- if (content.is_drag_drop) {
1803
- tmpData.drag_drop_id = (content.drag_drop_id ? content.drag_drop_id : "");
1804
- }
1805
-
1806
- if (index === this.props.Global.currentOrgDetails.basic_details.base_language) {
1807
- newFormData.base = _.cloneDeep(tmpData);
1808
- }
1809
- newFormData.secondary_templates.push({template_data: tmpData});
1810
- console.log('Tranforming data for embedded mode', tmpData);
1811
- }
1812
- });
1813
- if (this.props.location.query.type === 'embedded' && (this.props.location.query.module === "loyalty" || this.props.location.query.module === "dvs" || this.props.location.query.module === "coupon_expiry" || this.props.location.query.module === "timeline" || this.props.location.query.module === "library")) {
1814
- newFormData.base.subject = formData['template-subject'];
1815
- }
1816
-
1817
- console.log('This is test subject ', newFormData);
1818
- return newFormData;
1819
- }
1820
-
1821
- handleFrameTasks = (e) => {
1822
- console.log('data listened to is', e.data);
1823
- const type = this.isValidJson(e.data) ? JSON.parse(e.data) : e.data;
1824
- console.log('data type', typeof type);
1825
- if (typeof type === 'object') {
1826
- console.log('received something', type);
1827
- const action = type.action;
1828
- switch (action) {
1829
- case "startTemplateCreation":
1830
- this.startTemplateCreation(type.value);
1831
- break;
1832
- case "edit":
1833
- this.edmEvent = e;
1834
- if (type.elementJson.type === "IMAGE") {
1835
- console.log('Data Inside ', type);
1836
- this.onImageSelect();
1837
- }
1838
- break;
1839
- case "editBackground":
1840
- this.edmEvent = e;
1841
- if (type.elementJson.type === "BOX" || type.elementJson.type === "BUTTON" || type.elementJson.type === "GENERAL") {
1842
- console.log('Data Inside ', type);
1843
- this.onImageSelect();
1844
- }
1845
- break;
1846
- case "create":
1847
- this.edmEvent = e;
1848
- break;
1849
- case "select":
1850
- //this.edmEvent = e;
1851
- break;
1852
- case "startLoading":
1853
- this.startLoading(type.edit);
1854
- break;
1855
- case "getCurrentWindow":
1856
- this.getCurrentWindow(type);
1857
- break;
1858
- case "getFormData":
1859
- this.getFormData(e, type.value);
1860
- break;
1861
- default:
1862
- break;
1863
- }
1864
- } else {
1865
- console.log('Else Type ', type);
1866
- switch (type) {
1867
- case "getFormData":
1868
- this.getFormData(e);
1869
- break;
1870
- case "startTemplateCreation":
1871
- console.log('Starting to create template');
1872
- //this.getFormData(e);
1873
- break;
1874
- case "moveToTemplates":
1875
- console.log('moving to templates');
1876
- this.moveToTemplates();
1877
- break;
1878
- case "validateContent":
1879
- console.log('validating Content');
1880
- this.validateContent(e);
1881
- break;
1882
- case "Save result: success":
1883
- this.handleEdmSave();
1884
- break;
1885
- case "JsonChanged":
1886
- this.edmEvent = e;
1887
- break;
1888
- default:
1889
- break;
1890
- }
1891
- }
1892
- }
1893
-
1894
- isValidJson = (str) => {
1895
- try {
1896
- JSON.parse(str);
1897
- } catch (e) {
1898
- return false;
1899
- }
1900
- return true;
1901
- }
1902
-
1903
- handleEdmSave = () => {
1904
- console.log('all data save', this.state.mode, this.state.targetSaveCount, this.state.saveCount);
1905
- if (this.state.mode === "save") {
1906
- this.setState((prevState) => ({ saveCount: prevState.saveCount + 1}), () => {
1907
- console.log('all data save count', this.state.saveCount);
1908
- if (this.state.targetSaveCount === this.state.saveCount) {
1909
- if (this.state.saveEdmDataMode === 'validation') {
1910
- this.getValidationData();
1911
- } else if (this.state.saveEdmDataMode === 'save') {
1912
- this.props.actions.createTemplate(this.state.saveObj);
1913
- }
1914
- }
1915
- });
1916
- } else if (this.state.mode === 'preview' || this.state.mode === 'switchEditor') {
1917
- this.props.actions.getCmsData('edm', this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].drag_drop_id);
1918
- if (this.state.mode === 'switchEditor') {
1919
- let schema = _.cloneDeep(this.state.schema);
1920
- const formData = _.cloneDeep(this.state.formData);
1921
- _.forEach(schema.containers, (container, index) => {
1922
- if (parseInt(index, 10) === (this.state.currentTab - 1)) {
1923
- const temp = container;
1924
- const langTab = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(formData[`${this.state.currentTab - 1}`].activeTab);
1925
- console.log('switch language Tab ', langTab, formData[`${this.state.currentTab - 1}`].selectedLanguages, formData[`${this.state.currentTab - 1}`].activeTab);
1926
- temp.panes[langTab].sections[0].inputFields[0].cols[0].colStyle = {display: ""};
1927
- temp.panes[langTab].sections[0].inputFields[0].cols[1].colStyle = {display: "none"};
1928
- temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[3].cols[0].style = {display: "none"};
1929
- }
1930
- });
1931
- schema = this.showInsertImageButton(schema);
1932
- console.log('Handle OK ', schema);
1933
- this.setState({ schema, showConfirmationModal: false, isSchemaChanged: true }, () => {
1934
- this.injectEvents(schema);
1935
- });
1936
- }
1937
- }
1938
- }
1939
-
1940
- handleImagePreviewClose = () => {
1941
- this.setState({ showImageSelectionBox: false });
1942
- }
1943
-
1944
- handleContentChange = (data) => {
1945
- console.log('CKEditor Data changed ', data);
1946
- const formData = _.cloneDeep(this.state.formData);
1947
- formData[this.state.currentTab][formData[this.state.currentTab - 1].activeTab]["template-content"] = data;
1948
- this.setState({formData});
1949
- }
1950
-
1951
- handleOnHoverItem = (isHovering, id) => {
1952
- console.log('Card Howering ', isHovering, id);
1953
- if (!isHovering) {
1954
- // const data = _.find(this.props.Email.assetList, {_id: id});
1955
- // console.log('Found Data ', data);
1956
- // if (data) {
1957
- // if (this.state.isDragDrop) {
1958
- // console.log('Handle EDM ', isHovering, id);
1959
- // } else {
1960
- // this.state.editorInstanse.insertHtml(`<img src='${data.metaInfo.public_url}' alt='Capillary Image'>`);
1961
- // }
1962
- // }
1963
- }
1964
- }
1965
-
1966
- hideEdmOptions = (isDragDrop) => {
1967
- const schema = _.cloneDeep(this.state.schema);
1968
- _.forEach(schema.containers, (container) => {
1969
- if (container.isActive) {
1970
- _.forEach(container.tabBarExtraContent.sections[0].inputFields[0].cols, (containerInputFieldCol) => {
1971
- if (containerInputFieldCol.id === 'insert-image') {
1972
- const newContainerInputFieldCol = containerInputFieldCol;
1973
- newContainerInputFieldCol.style.display = isDragDrop ? "none" : '';
1974
- }
1975
- if (containerInputFieldCol.id === 'tab-options-popover') {
1976
- _.forEach(containerInputFieldCol.content.sections[0].inputFields, (tabPopoverSection) => {
1977
- if (tabPopoverSection.cols[0].id === 'switch-editor-label') {
1978
- const newTabPopoverSection = tabPopoverSection;
1979
- newTabPopoverSection.cols[0].style.display = isDragDrop ? "" : 'none';
1980
- }
1981
- });
1982
- }
1983
- });
1984
- }
1985
- });
1986
- console.log('HandleEdmOption ', JSON.stringify(schema));
1987
- this.setState({schema, isSchemaChanged: true});
1988
- }
1989
-
1990
- showInsertImageButton = (passedSchema) => {
1991
- const schema = passedSchema || _.cloneDeep(this.state.schema);
1992
- _.forEach(schema.containers, (container) => {
1993
- if (container.isActive) {
1994
- _.forEach(container.tabBarExtraContent.sections[0].inputFields[0].cols, (containerInputFieldCol) => {
1995
- if (containerInputFieldCol.id === 'insert-image') {
1996
- const newContainerInputFieldCol = containerInputFieldCol;
1997
- newContainerInputFieldCol.style.display = "";
1998
- }
1999
- });
2000
- }
2001
- });
2002
- console.log('HandleHideMarkAsFinal ', JSON.stringify(schema));
2003
- this.setState({schema, isSchemaChanged: true});
2004
- }
2005
-
2006
- showSubject = () => {
2007
- const schema = _.cloneDeep(this.state.schema);
2008
- if (this.props.location.query.type === 'embedded' && (this.props.location.query.module === "loyalty" || this.props.location.query.module === "dvs" || this.props.location.query.module === "timeline" || this.props.location.query.module === "coupon_expiry" ||
2009
- this.props.location.query.module === "library")) {
2010
- schema.standalone.sections[0].inputFields[0].style.display = "";
2011
- schema.standalone.sections[0].inputFields[0].labelStyle.display = "";
2012
- }
2013
- this.setState({schema});
2014
- }
2015
-
2016
- handleOnItemClick = (isSelected, id) => {
2017
- console.log('Dummy ', isSelected, id, event);
2018
- const isDragDrop = this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop;
2019
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
2020
- if (isSelected) {
2021
- const data = _.find(this.props.Email.assetList, {_id: id});
2022
- console.log('Found Data ', data, this.state.isDragDrop);
2023
- if (data) {
2024
- if (isDragDrop && isEdmSupport) {
2025
- console.log('Handle EDM ', isSelected, id, this.edmEvent, JSON.parse(this.edmEvent.data)._dynId, data.metaInfo.secure_file_path);
2026
- const evtData = JSON.parse(this.edmEvent.data);
2027
- if (evtData.action === 'editBackground') {
2028
- this.edmEvent.source.postMessage(JSON.stringify({
2029
- _dynId: JSON.parse(this.edmEvent.data)._dynId,
2030
- action: "setProps",
2031
- props: {
2032
- background: {
2033
- image: {
2034
- src: data.metaInfo.secure_file_path,
2035
- },
2036
- },
2037
- },
2038
- }), "*");
2039
- } else if (evtData.action === 'edit') {
2040
- this.edmEvent.source.postMessage(JSON.stringify({
2041
- _dynId: JSON.parse(this.edmEvent.data)._dynId,
2042
- action: "setProps",
2043
- props: {
2044
- src: data.metaInfo.secure_file_path,
2045
- },
2046
- }), "*");
2047
- }
2048
- this.edmEvent = undefined;
2049
- } else {
2050
- this.state.editorInstanse.insertHtml(`<img src='${data.metaInfo.secure_file_path}' alt='Capillary Image'>`);
2051
- //this.resetCkEditorInstance(this.state.currentTab, this.state.formData, true, data, true);
2052
- }
2053
- }
2054
- this.setState({ showImageSelectionBox: false });
2055
- }
2056
- }
2057
-
2058
- toggleEmailPreview = () => {
2059
- const isDragDrop = this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop;
2060
- if (isDragDrop && !this.state.showEmailPreview) {
2061
- const activeLangTab = this.state.formData[`${this.state.currentTab - 1}`].activeTab;
2062
- const langIndex = this.state.formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(activeLangTab);
2063
- const win = document.getElementById(`edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`).contentWindow;
2064
- win.postMessage("saveProject", '*');
2065
- this.setState({mode: "preview", gettingPreviewData: true});
2066
- // this.setState({gettingPreviewData: true}, () => {
2067
- // this.props.actions.getCmsData('edm', this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].drag_drop_id);
2068
- // });
2069
- } else if (this.state.showEmailPreview) {
2070
- const formData = _.cloneDeep(this.state.formData);
2071
- formData[`${this.state.currentTab - 1}`][formData[`${this.state.currentTab - 1}`].activeTab]['template-content'] = "";
2072
- if (formData[`${this.state.currentTab - 1}`].base) {
2073
- formData.base[formData.base.activeTab]['template-content'] = "";
2074
- }
2075
- }
2076
- this.setState( (prevState) => ({ showEmailPreview: !prevState.showEmailPreview }));
2077
- }
2078
-
2079
- changePreviewDevice = (device) => {
2080
- this.setState({ device });
2081
- }
2082
-
2083
- handleVersionSelect = (status, formData, val) => {
2084
- console.log('HandleVersion select', status, val);
2085
- const newFormData = _.cloneDeep(this.state.formData);
2086
- const schema = _.cloneDeep(this.state.schema);
2087
- const versionIndex = _.findIndex(formData['template-version-options'], {key: status});
2088
- newFormData['template-version'] = formData['template-version-options'][versionIndex].key;
2089
- console.log('Selected Version', status, formData, val, versionIndex);
2090
- const newContainers = [];
2091
- _.forEach(schema.containers, (container, index) => {
2092
- console.log('Container Iteration ', container, index);
2093
- const tmpContainer = _.cloneDeep(container);
2094
- if (index === versionIndex) {
2095
- tmpContainer.isActive = true;
2096
- } else {
2097
- tmpContainer.isActive = false;
2098
- }
2099
- newContainers.push(tmpContainer);
2100
- });
2101
- schema.containers = _.cloneDeep(newContainers);
2102
- this.setState({formData: newFormData, schema, currentTab: (versionIndex + 1), isSchemaChanged: true});
2103
- }
2104
-
2105
- afterPaste = (evt) => {
2106
- console.log("afterPaste fired with event info: ", evt);
2107
- }
2108
-
2109
- deleteVersion = (data, currentTab) => {
2110
- console.log('deleting version', data, currentTab);
2111
- if (this.state.tabCount === 1 || currentTab === 1) {
2112
- return;
2113
- }
2114
- const schema = _.cloneDeep(this.state.schema);
2115
- const formData = _.cloneDeep(this.state.formData);
2116
- schema.containers.splice(`${currentTab - 1}`, 1);
2117
- schema.containers[0].isActive = true;
2118
- delete formData[`${currentTab - 1}`];
2119
- formData['template-version-options'].splice(`${currentTab - 1}`, 1);
2120
- formData['template-version'] = formData['template-version-options'][0].value;
2121
- console.log('Current formData and Schema after delete', formData, schema);
2122
- this.setState({schema, tabCount: (this.state.tabCount - 1), currentTab: 1, isSchemaChanged: true, showModal: false});
2123
- }
2124
-
2125
- switchEditor = () => {
2126
- console.log('Editor Switched');
2127
- this.setState({showConfirmationModal: true});
2128
- }
2129
-
2130
- renameVersion = (data, currentTab) => {
2131
- console.log('renaming version', data, currentTab);
2132
- }
2133
-
2134
- markFinalVersion = (data, currentTab) => {
2135
- const message = getMessageObject('success', this.props.intl.formatMessage(messages["Template Marked as Final Successfully"]), true);
2136
- this.props.globalActions.addMessageToQueue(message);
2137
- console.log('markFinal version', data, currentTab, this.state.schema);
2138
- }
2139
-
2140
- duplicateVersion = (formData, currentTab) => {
2141
- console.log('duplicate version', formData, currentTab);
2142
- this.setState({formData}, () => {
2143
- this.addVersion(this.state.tabCount);
2144
- });
2145
- }
2146
-
2147
- addVersion = (data) => {
2148
- if (this.state.schema.containers.length === 5) {
2149
- alert('You cant have more that 5 versions');
2150
- return;
2151
- }
2152
- console.log('adding version', data, this.state.formData);
2153
- const schema = _.cloneDeep(this.state.schema);
2154
- const tabIndex = schema.containers.length + 1; //data + 1;
2155
- const formData = _.cloneDeep(this.state.formData);
2156
- const containers = _.cloneDeep(schema.containers.slice());
2157
- const firstPane = _.cloneDeep(containers[0].panes[0]);
2158
- const sections = [];
2159
- containers[0].isActive = true;
2160
- _.forEach(firstPane.sections, (section) => {
2161
- let sect = _.cloneDeep(section);
2162
- console.log('trying to clone in add version', JSON.stringify(sect), tabIndex);
2163
- if (sect.type === 'col-label') {
2164
- sect = this.cloneColLabel(sect, tabIndex);
2165
- } else if (sect.type === 'multicols') {
2166
- sect = this.cloneMultiCol(sect, tabIndex);
2167
- } else if (sect.type === 'parent') {
2168
- sect = this.cloneParent(sect, tabIndex);
2169
- }
2170
- console.log('returning section', sect);
2171
- sections.push(sect);
2172
- return true;
2173
- });
2174
- firstPane.sections = sections;
2175
- containers[0].panes = [];
2176
- containers[0].panes.push(firstPane);
2177
- schema.containers.push(containers[0]);
2178
-
2179
- _.forEach(schema.containers, (container, index) => {
2180
- schema.containers[index].isActive = ((index + 1) === this.state.currentTab);
2181
- });
2182
- console.log('Pane ', containers);
2183
-
2184
- _.forEach(sections[0].inputFields[0].cols, (inputField) => {
2185
- if (this.map[inputField.id] === undefined) {
2186
- if (inputField.id.indexOf('template-content') > -1) {
2187
- this.map[inputField.id] = this.map['template-content'];
2188
- } else if (inputField.id.indexOf('edmeditor2') > -1) {
2189
- this.map[inputField.id] = this.map.edmeditor2;
2190
- }
2191
- }
2192
- });
2193
-
2194
- const newVersionOption = formData['template-version-options'].pop();
2195
-
2196
- formData['template-version-options'].push({
2197
- key: `version ${tabIndex}`,
2198
- label: `Version ${tabIndex}`,
2199
- value: `version ${tabIndex}`,
2200
- });
2201
- formData['template-version-options'].push(newVersionOption);
2202
- formData['template-version'] = `version ${tabIndex}`;
2203
-
2204
- if (schema) {
2205
- this.setState({schema, formData, currentTab: (tabIndex), isSchemaChanged: true});
2206
- }
2207
- }
2208
-
2209
- addLanguage = (tempLang, passedData, val, asyncLanguages) => {
2210
- if (this.state.addLanguageType === "upload") {
2211
- this.setState({languageDataSet: true}, () => {
2212
- console.log('adding from add language 1', this.props.Templates);
2213
- if (this.props.Templates.selectedEmailLayout && this.props.Templates.selectedEmailLayout !== '') {
2214
- console.log('adding from add language 2');
2215
- this.setNewLanguageContent(this.props.Templates.selectedEmailLayout);
2216
- }
2217
- });
2218
- }
2219
- let addLanguageLength = 1;
2220
- if (asyncLanguages) {
2221
- addLanguageLength = asyncLanguages.length;
2222
- }
2223
- let data = tempLang;
2224
- let tabKey = '';
2225
- let langTab = 0;
2226
- const schema = _.cloneDeep(this.state.schema);
2227
- const formData = _.cloneDeep(passedData);
2228
- for (let idx = 0; idx < addLanguageLength; idx += 1) {
2229
- let newActiveTab = this.state.settingLanguage ? this.state.settingLanguage.iso_code : 'en';
2230
- if (asyncLanguages) {
2231
- newActiveTab = asyncLanguages[idx].iso_code;
2232
- data = asyncLanguages[idx];
2233
- }
2234
- langTab = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(newActiveTab);
2235
- if (langTab === -1) {
2236
- formData[`${this.state.currentTab - 1}`].selectedLanguages.push(newActiveTab);
2237
- langTab = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(newActiveTab);
2238
- }
2239
- const selectedLanguage = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(data.iso_code);
2240
- tabKey = formData[`${this.state.currentTab - 1}`][data.iso_code].tabKey;
2241
- console.log('adding language', data, formData, val, selectedLanguage, formData[`${this.state.currentTab - 1}`]);
2242
- const tabIndex = (selectedLanguage) + 1;
2243
- const containers = schema.containers.slice();
2244
- const tabContent = _.cloneDeep(containers[0].tabContent.sections[0]);
2245
- const tabContentSection = tabContent.inputFields[0].cols[0];
2246
- const panes = containers[`${this.state.currentTab - 1}`].panes.slice();
2247
- const firstPane = _.cloneDeep(panes[0]);
2248
- const sections = [];
2249
- _.forEach(firstPane.sections, (section) => {
2250
- let sect = _.cloneDeep(section);
2251
- console.log('trying to clone in add version', JSON.stringify(sect), tabIndex);
2252
- if (sect.type === 'col-label') {
2253
- sect = this.cloneColLabel(sect, tabIndex);
2254
- } else if (sect.type === 'multicols') {
2255
- sect = this.cloneMultiCol(sect, tabIndex);
2256
- } else if (sect.type === 'parent') {
2257
- sect = this.cloneParent(sect, tabIndex);
2258
- }
2259
- console.log('returning section', sect);
2260
- sections.push(sect);
2261
- return true;
2262
- });
2263
- console.log('tabContent.inputFields[0].cols[0]', tabContentSection, this.state.currentTab);
2264
- tabContentSection.id = `${tabContentSection.id}${tabIndex}`;
2265
- tabContentSection.value = `${data.language}`;
2266
- console.log('cloned final sections', sections, tabContent);
2267
- _.forEach(sections[0].inputFields[0].cols, (inputField) => {
2268
- if (this.map[inputField.id] === undefined) {
2269
- if (inputField.id.indexOf('template-content') > -1) {
2270
- this.map[inputField.id] = this.map['template-content'];
2271
- } else if (inputField.id.indexOf('edmeditor2') > -1) {
2272
- this.map[inputField.id] = this.map.edmeditor2;
2273
- }
2274
- }
2275
- });
2276
- firstPane.sections = sections;
2277
- firstPane.sectionsHeaders = [tabContent];
2278
- console.log('firstPane final version', JSON.stringify(firstPane));
2279
- // panes.push(firstPane);
2280
- console.log('initial panes', JSON.stringify(this.state.schema.containers));
2281
- schema.containers[`${this.state.currentTab - 1}`].panes.push(firstPane);
2282
- // schema.containers[0].tabContent.sections.push(tabContent);
2283
- console.log('final schema after adding version', firstPane, schema);
2284
- }
2285
- //this.props.templatesActions.getEdmDefaultTemplates();
2286
- const container = schema.containers[this.state.currentTab - 1];
2287
- const temp = container;
2288
- console.log('switch language Tab ', langTab, formData[`${this.state.currentTab - 1}`].selectedLanguages, this.state.formData[`${this.state.currentTab - 1}`].activeTab);
2289
- if (this.state.addLanguageType === "upload") {
2290
- temp.panes[langTab].sections[0].inputFields[0].cols[0].colStyle = {display: ""};
2291
- temp.panes[langTab].sections[0].inputFields[0].cols[1].colStyle = {display: "none"};
2292
- temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[3].cols[0].style = {display: "none"};
2293
- }
2294
- temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: ""};
2295
- if (schema) {
2296
- this.setState({schema, isSchemaChanged: true, tabKey});
2297
- if (this.state.addLanguageType !== "upload") {
2298
- this.setState({addLanguageType: ''});
2299
- }
2300
- //this.toggleEdmEmailTemplateSelection();
2301
- }
2302
- // const mode = this.state.addLanguageMode;
2303
- // switch (mode) {
2304
- // case "upload":
2305
- //
2306
- // default:
2307
- // break;
2308
- // }
2309
- }
2310
-
2311
- openPreviewMode = (selectedAsset) => {
2312
- console.log('Open Preview Mode', selectedAsset);
2313
- const asset = selectedAsset;
2314
- asset.showButtons = asset.showButtons ? !asset.showButtons : true;
2315
- this.setState({selectedAsset: asset});
2316
- }
2317
-
2318
- cloneParent = (section, tabIndex, noSuffix) => {
2319
- console.log('trying to clone', JSON.stringify(section), tabIndex);
2320
- const parentsect = section;
2321
- const childSectionsBeforeCloning = parentsect.childSections.slice();
2322
- const childSections = [];
2323
- _.forEach(childSectionsBeforeCloning, (childSection) => {
2324
- let sect = {};
2325
- if (childSection.type === 'col-label') {
2326
- sect = this.cloneColLabel(childSection, tabIndex, noSuffix);
2327
- } else if (childSection.type === 'multicols') {
2328
- sect = this.cloneMultiCol(childSection, tabIndex, noSuffix);
2329
- } else if (childSection.type === 'parent') {
2330
- sect = this.cloneParent(childSection, tabIndex, noSuffix);
2331
- }
2332
- console.log('returning cloned parent section', sect);
2333
- childSections.push(sect);
2334
- return true;
2335
- });
2336
- console.log('returning cloned parent section final 1', JSON.stringify(childSections));
2337
- parentsect.childSections = childSections;
2338
- console.log('returning cloned parent section final', parentsect);
2339
- return _.cloneDeep(parentsect);
2340
- }
2341
-
2342
- cloneColLabel = (sectionObj, tabIndex, noSuffix) => {
2343
- console.log('cloning cloneColLabel', sectionObj, tabIndex);
2344
- const section = _.cloneDeep(sectionObj);
2345
- const inputFields = _.forEach(section.inputFields, (inputField) => {
2346
- const inputF = inputField;
2347
- inputF.id = noSuffix ? `${inputField.id}` : `${inputField.id}${tabIndex}`;
2348
- inputF.paneIndex = tabIndex;
2349
- return inputF;
2350
- });
2351
- section.inputFields = inputFields;
2352
- console.log('cloned ifs are', section);
2353
- return section;
2354
- }
2355
-
2356
- cloneMultiCol = (sectionObj, tabIndex, noSuffix) => {
2357
- console.log('cloning multicol ', sectionObj, tabIndex);
2358
- const section = _.cloneDeep(sectionObj);
2359
- const inputFields = _.forEach(section.inputFields, (inputField) => {
2360
- const inputF = inputField;
2361
- const cols = _.forEach(inputF.cols, (col) => {
2362
- const colTemp = col;
2363
- colTemp.id = noSuffix ? `${col.id}` : `${col.id}${tabIndex}`;
2364
- colTemp.paneIndex = tabIndex;
2365
- return colTemp;
2366
- });
2367
- inputF.cols = cols;
2368
- return inputF;
2369
- });
2370
- section.inputFields = inputFields;
2371
- console.log('cloned cols are', section);
2372
- return section;
2373
- }
2374
-
2375
- injectMessages = (elem) => {
2376
- const temp = elem;
2377
- if (temp.value && messages[temp.value]) {
2378
- temp.value = this.props.intl.formatMessage(messages[temp.value]);
2379
- }
2380
- if (temp.label && messages[temp.label]) {
2381
- temp.label = this.props.intl.formatMessage(messages[temp.label]);
2382
- }
2383
- if (temp.errorMessage && messages[temp.errorMessage]) {
2384
- temp.errorMessage = this.props.intl.formatMessage(messages[temp.errorMessage]);
2385
- }
2386
- if (temp.placeholder && messages[temp.placeholder]) {
2387
- temp.placeholder = this.props.intl.formatMessage(messages[temp.placeholder]);
2388
- }
2389
- return temp;
2390
- }
2391
-
2392
- showNext = () => {
2393
- console.log("Inside ShowNext");
2394
- const response = {
2395
- action: "showNext",
2396
- value: true,
2397
- };
2398
- parent.postMessage(JSON.stringify(response), '*');
2399
- }
2400
-
2401
- moveToTemplates = () => {
2402
- console.log('in move to Templates');
2403
- const modalContent = {
2404
- title: "Alert",
2405
- body: "Do you really want to go back? All your temporary changes will be lost!",
2406
- type: 'confirm',
2407
- id: 'template-back-confirm-modal',
2408
- show: true,
2409
- };
2410
- this.setState({modalContent, showModal: true});
2411
- }
2412
-
2413
- cancelTemplate = () => {
2414
- const type = this.props.location.query.type;
2415
- const module = this.props.location.query.module ? this.props.location.query.module : 'default';
2416
- const isLanguageSupport = this.props.location.query.isLanguageSupport || false;
2417
- const isEdmSupport = this.props.location.query.isEdmSupport !== false || false;
2418
- this.props.router.push({
2419
- pathname: `/email/`,
2420
- query: type === 'embedded' ? {type: 'embedded', module, isLanguageSupport, isEdmSupport} : {module, isLanguageSupport, isEdmSupport},
2421
- });
2422
- }
2423
-
2424
- selectAsset = (asset) => {
2425
- this.state.editorInstanse.insertHtml(`<img src='${asset}' alt='Capillary Image'>`);
2426
- }
2427
-
2428
- prepareImageData() {
2429
- console.log('Preparing Image Dataa ');
2430
- const data = [];
2431
- const assetList = this.props.Email.assetList;
2432
- _.forEach(assetList, (asset) => {
2433
- const tmpData = {};
2434
- tmpData.id = asset._id;
2435
- const updateDateTime = (moment().format('DD-MM-YYYY') === moment(asset.updatedAt).format('DD-MM-YYYY')) ? moment(asset.updatedAt).format('hh:mma') : moment(asset.updatedAt).format('DD-MM-YYYY');
2436
- tmpData.content = (
2437
- <div className="image-container">
2438
- <img style={{width: '100%'}} src={asset.metaInfo.secure_file_path ? asset.metaInfo.secure_file_path : asset.metaInfo.public_url} alt={asset.name} />
2439
- <div className={asset.showButtons ? 'overlay show-overlay' : 'overlay hide'}>
2440
- <div>
2441
- <CapButton type="secondary" className="select-button" onClick={(e) => this.selectAsset(e)}>
2442
- <FormattedMessage {...messages.select} />
2443
- </CapButton>
2444
- </div>
2445
- <div>
2446
- {/* <CapButton type="cancel" className="preview-button" onClick={() => this.openEmbeddedPreviewMode(asset)}>
2447
- <FormattedMessage {...messages.preview} />
2448
- </CapButton> */}
2449
- </div>
2450
- </div>
2451
- </div>
2452
- );
2453
- tmpData.footer = (
2454
- <div className="card-footer-wrapper">
2455
- <div className="card-title-container">
2456
- <div className="card-title-wrapper">
2457
- <p className="card-title" onClick={() => this.openPreviewMode(asset)}>{asset.name}</p>
2458
- </div>
2459
- <div className="more-icon-wrapper">
2460
- <Popover
2461
- placement="leftTop"
2462
- content={<div style={{ cursor: 'pointer'}}><p onClick={() => this.deleteAsset(asset)}>
2463
- <FormattedMessage {...messages.delete} />
2464
- </p></div>} trigger="click">
2465
- <i className="material-icons creative-icons">more_vert</i>
2466
- </Popover>
2467
- </div>
2468
- </div>
2469
- <p className="card-detail"><FormattedMessage {...messages.uploadedAt} />: {updateDateTime}</p>
2470
- </div>
2471
- );
2472
- data.push(tmpData);
2473
- });
2474
- return data;
2475
- }
2476
-
2477
- injectEvents = (schema) => {
2478
- const type = this.props.location.query.type;
2479
- console.log('now injecting events');
2480
- const temp = schema;
2481
- temp.standalone.sections = this.injectSections(temp.standalone.sections);
2482
- _.forEach(temp.containers, (container) => {
2483
- let tempContainer = container;
2484
- tempContainer = this.injectContainer(tempContainer);
2485
- return tempContainer;
2486
- });
2487
- console.log("Lang Test ", this.props.location.query.isLanguageSupport, (this.props.location.query.isLanguageSupport === false));
2488
- // if (type !== "embedded" || (type === "embedded" && (this.props.location.query.isLanguageSupport === "false" || (this.props.location.query.isLanguageSupport === undefined || this.props.location.query.isLanguageSupport === "true")))) {
2489
- const ifLangSupported = this.props.location.query.isLanguageSupport === "true" || type !== "embedded";
2490
- _.forEach(temp.containers, (container) => {
2491
- if (container.isActive) {
2492
- let hideLang = false;
2493
- _.forEach(container.tabContent.sections[0].inputFields[0].cols, (containerInputFieldCol) => {
2494
- const tempEl = containerInputFieldCol;
2495
- if (containerInputFieldCol.id === "tab-header") {
2496
- const baseLanguage = this.props.Global.currentOrgDetails && this.props.Global.currentOrgDetails.basic_details && this.props.Global.currentOrgDetails.basic_details.base_language && this.props.Global.currentOrgDetails.basic_details.base_language !== "" ? this.props.Global.currentOrgDetails.basic_details.base_language : 'en';
2497
- const supportedLanguages = this.props.Global.currentOrgDetails.basic_details.supported_languages;
2498
- if (!supportedLanguages) {
2499
- tempEl.value = 'English';
2500
- return;
2501
- }
2502
- const langObject = supportedLanguages.find( (lang) => lang.iso_code === baseLanguage);
2503
- if (langObject) {
2504
- tempEl.value = langObject.language;
2505
- } else {
2506
- tempEl.value = 'English';
2507
- }
2508
- }
2509
- });
2510
- _.forEach(container.tabBarExtraContent.sections[0].inputFields[0].cols, (containerInputFieldCol) => {
2511
- if (hideLang && !ifLangSupported) {
2512
- const newContainerInputFieldCol = containerInputFieldCol;
2513
- hideLang = false;
2514
- newContainerInputFieldCol.offset = 16;
2515
- } else if (hideLang) {
2516
- const newContainerInputFieldCol = containerInputFieldCol;
2517
- hideLang = false;
2518
- newContainerInputFieldCol.offset = 13;
2519
- }
2520
- if (containerInputFieldCol.id === 'add-language-button' && !ifLangSupported) {
2521
- const newContainerInputFieldCol = containerInputFieldCol;
2522
- newContainerInputFieldCol.colStyle.display = "none";
2523
- hideLang = true;
2524
- } else if (containerInputFieldCol.id === 'add-language-button') {
2525
- hideLang = true;
2526
- }
2527
- if (containerInputFieldCol.id === "mark-final-version-label") {
2528
- const newContainerInputFieldCol = containerInputFieldCol;
2529
- newContainerInputFieldCol.colStyle.display = "none";
2530
- }
2531
- // if (containerInputFieldCol.id === "tab-options-popover") {
2532
- // const newContainerInputFieldCol = containerInputFieldCol;
2533
- // newContainerInputFieldCol.colStyle.display = "none";
2534
- // }
2535
- });
2536
- }
2537
- });
2538
- _.forEach(temp.standalone.sections[1].inputFields[0].cols, (inputField) => {
2539
- if (inputField.id === "template-version") {
2540
- const iF = inputField;
2541
- iF.colStyle = {};
2542
- iF.colStyle.display = "none";
2543
- }
2544
- });
2545
- //}
2546
- console.log('final injected schema', schema);
2547
- this.setState({schema, isSchemaChanged: true}, () => {
2548
- if (type === 'embedded') {
2549
- this.removeStandAlone();
2550
- }
2551
- if (type === 'embedded' && (this.props.route.name === 'EmailView' || (this.props.location.query.module && (this.props.location.query.module.toLowerCase() === 'loyalty' || this.props.location.query.module.toLowerCase() === 'dvs' || this.props.location.query.module.toLowerCase() === 'coupon_expiry' || this.props.location.query.module.toLowerCase() === 'timeline')))) {
2552
- if ((this.props.route.name === "EmailEdit" || this.props.route.name === "EmailCreate") && (this.props.location.query.module === "dvs" || this.props.location.query.module.toLowerCase() === 'coupon_expiry')) {
2553
- return;
2554
- }
2555
- const response = {
2556
- action: 'startTemplateCreation',
2557
- };
2558
- parent.postMessage(JSON.stringify(response), '*');
2559
- }
2560
- });
2561
- return schema;
2562
- }
2563
-
2564
- handleOnTagsContextChange = (data) => {
2565
- console.log('parent tags context', data);
2566
- const query = {
2567
- layout: 'EMAIL',
2568
- type: 'TAG',
2569
- context: data.toLowerCase() === 'all' ? 'default' : data.toLowerCase(),
2570
- embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
2571
- };
2572
- this.props.globalActions.fetchSchemaForEntity(query);
2573
- }
2574
-
2575
- removeStandAlone() {
2576
- const schema = _.cloneDeep(this.state.schema);
2577
- delete schema.standalone;
2578
- schema.standalone = {};
2579
- schema.standalone.sections = [];
2580
- if (this.props.location.query.type === 'embedded' && (this.props.location.query.module === "loyalty" || this.props.location.query.module === "dvs" || this.props.location.query.module === "coupon_expiry" || this.props.location.query.module === "timeline" ||
2581
- this.props.location.query.module === "library")) {
2582
- schema.standalone.sections.push(_.cloneDeep(this.state.schema.standalone.sections[0]));
2583
- }
2584
-
2585
- _.forEach(schema.containers, (container) => {
2586
- const temp = container;
2587
- if (temp.type === 'tabs') {
2588
- // temp.tabBarExtraContent = {};
2589
- // temp.tabBarExtraContent.sections = [];
2590
- const basePane = _.cloneDeep(temp.panes[0]);
2591
- _.forEach(temp.tabContent.sections, (section) => {
2592
- _.forEach(section.inputFields, (inputField) => {
2593
- if (section.type === 'multicols') {
2594
- _.forEach(inputField.cols, (col, key) => {
2595
- if (col.id === 'tab-options-popover') {
2596
- inputField.cols.splice(key, 1);
2597
- } else if (col.id === 'tab-header') {
2598
- const tempCol = col;
2599
- tempCol.style = {padding: '8px 0'};
2600
- }
2601
- });
2602
- }
2603
- });
2604
- });
2605
- _.forEach(temp.tabBarExtraContent.sections, (section) => {
2606
- _.forEach(section.inputFields, (inputFields) => {
2607
- if (section.type === "multicols") {
2608
- _.forEach(inputFields.cols, (col) => {
2609
- if ((col.id === "tab-options-popover" || col.id === "add-language-button") && this.props.location.query.type === 'embedded' && (this.props.location.query.module === "library")) {
2610
- const colStyle = col.colStyle;
2611
- colStyle.display = "none";
2612
- }
2613
- });
2614
- }
2615
- });
2616
- });
2617
- temp.panes = [];
2618
- temp.panes.push(basePane);
2619
- }
2620
- });
2621
- this.setState({ schema, isSchemaChanged: true });
2622
- return schema;
2623
- }
2624
-
2625
- startTemplateCreation(data) {
2626
- console.log('startTemplatecreations', data);
2627
- if (_.isEmpty(data)) {
2628
- return;
2629
- }
2630
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
2631
-
2632
- //const data = {"base":{"subject":"deded","html_content":"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html> <head> \t<title>Scheduled Report</title> \t<meta http-equiv=\"Content-Type\" content=\"text/html charset=UTF-8\"/> \t<style type=\"text/css\">.container-main p{line-height: 1.6;}@media screen and (max-width: 480px){a.brand{font-size: 35px;}}@media screen and (max-width: 480px){.container-main a{text-align: center;}a.brand{text-align: center;}}a.brand img{vertical-align: middle; padding: 0 8px 0 0; width: 250px;}@media screen and (max-width: 480px){a.brand img{width: 220px !important;}}@media screen and (max-width: 480px){.container-content{padding: 15px 20px; font-size: 12px !important;} .email-footer{font-size: 12px !important;}}.container-content table{border-collapse: collapse;}.container-content table tr td p{margin: 5px;}.container-content table tr td p span{font-weight: bold; padding: 0 3px 0 0;}@media screen and (max-width: 480px){a.btn-view-reports{margin: 25px auto 10px;}}a.btn-view-reports:hover{background: grey; color: #fff;}.email-footer p{text-align: center; font-size: 12px; color: grey;}.email-footer p a{color: blue; cursor: pointer;}.email-footer p a:hover{color: grey;} \t</style> </head> <body><center>\n\t\t\t\t\t\t\t\t\t\tIf you have difficulties viewing this mail, click\n\t\t\t\t\t\t\t\t\t\t<a href=\"https://nightly.capillary.in/business_controller/campaigns/emails/links/view.php?utrack={{user_id_b64}}&mtrack={{outbox_id_b64}}\" style = \"text-decoration: underline;color: #369;\" target=\"_blank\">here</a><br/>\n\t\t\t\t\t\t\t\t\t</center> <table class=\"container-main\" style=\"background:#eeeeee; color:#000000; font-family:'Open Sans',sans-serif; font-size:16px; font-weight:400; margin:0 auto; max-width:978px; padding:15px; width:100%\"> \t<tbody> \t\t<tr> \t\t\t<td> \t\t\t<table class=\"email-header\" style=\"background:#ffffff; margin:0 0 5px; padding:17px 0; width:100%\"> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td style=\"width:100%\"><a class=\"brand\" href=\"#\" style=\"display: table; margin: 0 auto; text-decoration: none; font-size: 37px; color: grey;\"><img alt=\"Capillary Technologies\" src=\"https://s3.amazonaws.com/fileservice.in/intouch_creative_assets/60221e2020ba572f6787.png\" /> </a></td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<div class=\"container-content\" style=\"background:#ffffff; padding:20px 35px\"> \t\t\t<p>Hi Ashish Karan,</p> \t\t\t<p>You&#39;ve received a new scheduled report. {{unsubscribe}}</p> \t\t\t<table> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Org Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>autotest1</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Scheduled Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>Schedule Test</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Time Period: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>1st Jan, 2017 to 24th Sep, 2017</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Report Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>redDart Report</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<p style=\"font-size:15px; margin-top:25px\">By clicking &quot;View Report&quot; you will be redirected to Capillary Analytics to view the automated report.</p> \t\t\t<a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91?snapshot=59c8bce750f4e75ec8b0d24c\" style=\"background: #009e0f; text-align: center; color: #fff; font-size: 16px; padding: 10px 25px; cursor: pointer; text-decoration: none; display: block; width: 120px; margin: 25px auto 15px;\" target=\"_blank\">View Report</a></div> \t\t\t<div class=\"email-footer\"> \t\t\t<p style=\"color:grey; font-size:12px; text-align:center\">You&#39;ve received this mail because you subscribed to Schedule Test schedule of redDart Report. <a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91/schedule/59c8bce750f4e75ec8b0d24c/unsubscribeSchedule\" style=\"color: blue; cursor: pointer;\" target=\"_blank\">Unsubscribe</a></p> \t\t\t<p><a href=\"http://capillarytech.com/privacy-policy/\" target=\"_blank\">Privacy Policy</a> | <a href=\"http://capillarytech.com/about-us/\" target=\"_blank\">About Capillary</a></p> \t\t\t</div> \t\t\t</td> \t\t</tr> \t</tbody> </table> </body> </html> ","is_drag_drop":false,"drag_drop_id":null},"secondary_templates":[{"is_preview_generated":null,"preview_url":null,"is_favourite":null,"is_drag_drop":false,"drag_drop_id":null,"scope":null,"tag":null,"is_default":null,"html_content":"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html> <head> \t<title>Scheduled Report</title> \t<meta http-equiv=\"Content-Type\" content=\"text/html charset=UTF-8\"/> \t<style type=\"text/css\">.container-main p{line-height: 1.6;}@media screen and (max-width: 480px){a.brand{font-size: 35px;}}@media screen and (max-width: 480px){.container-main a{text-align: center;}a.brand{text-align: center;}}a.brand img{vertical-align: middle; padding: 0 8px 0 0; width: 250px;}@media screen and (max-width: 480px){a.brand img{width: 220px !important;}}@media screen and (max-width: 480px){.container-content{padding: 15px 20px; font-size: 12px !important;} .email-footer{font-size: 12px !important;}}.container-content table{border-collapse: collapse;}.container-content table tr td p{margin: 5px;}.container-content table tr td p span{font-weight: bold; padding: 0 3px 0 0;}@media screen and (max-width: 480px){a.btn-view-reports{margin: 25px auto 10px;}}a.btn-view-reports:hover{background: grey; color: #fff;}.email-footer p{text-align: center; font-size: 12px; color: grey;}.email-footer p a{color: blue; cursor: pointer;}.email-footer p a:hover{color: grey;} \t</style> </head> <body><center>\n\t\t\t\t\t\t\t\t\t\tIf you have difficulties viewing this mail, click\n\t\t\t\t\t\t\t\t\t\t<a href=\"https://nightly.capillary.in/business_controller/campaigns/emails/links/view.php?utrack={{user_id_b64}}&mtrack={{outbox_id_b64}}\" style = \"text-decoration: underline;color: #369;\" target=\"_blank\">here</a><br/>\n\t\t\t\t\t\t\t\t\t</center> <table class=\"container-main\" style=\"background:#eeeeee; color:#000000; font-family:'Open Sans',sans-serif; font-size:16px; font-weight:400; margin:0 auto; max-width:978px; padding:15px; width:100%\"> \t<tbody> \t\t<tr> \t\t\t<td> \t\t\t<table class=\"email-header\" style=\"background:#ffffff; margin:0 0 5px; padding:17px 0; width:100%\"> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td style=\"width:100%\"><a class=\"brand\" href=\"#\" style=\"display: table; margin: 0 auto; text-decoration: none; font-size: 37px; color: grey;\"><img alt=\"Capillary Technologies\" src=\"https://s3.amazonaws.com/fileservice.in/intouch_creative_assets/60221e2020ba572f6787.png\" /> </a></td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<div class=\"container-content\" style=\"background:#ffffff; padding:20px 35px\"> \t\t\t<p>Hi Ashish Karan,</p> \t\t\t<p>You&#39;ve received a new scheduled report. {{unsubscribe}}</p> \t\t\t<table> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Org Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>autotest1</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Scheduled Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>Schedule Test</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Time Period: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>1st Jan, 2017 to 24th Sep, 2017</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Report Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>redDart Report</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<p style=\"font-size:15px; margin-top:25px\">By clicking &quot;View Report&quot; you will be redirected to Capillary Analytics to view the automated report.</p> \t\t\t<a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91?snapshot=59c8bce750f4e75ec8b0d24c\" style=\"background: #009e0f; text-align: center; color: #fff; font-size: 16px; padding: 10px 25px; cursor: pointer; text-decoration: none; display: block; width: 120px; margin: 25px auto 15px;\" target=\"_blank\">View Report</a></div> \t\t\t<div class=\"email-footer\"> \t\t\t<p style=\"color:grey; font-size:12px; text-align:center\">You&#39;ve received this mail because you subscribed to Schedule Test schedule of redDart Report. <a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91/schedule/59c8bce750f4e75ec8b0d24c/unsubscribeSchedule\" style=\"color: blue; cursor: pointer;\" target=\"_blank\">Unsubscribe</a></p> \t\t\t<p><a href=\"http://capillarytech.com/privacy-policy/\" target=\"_blank\">Privacy Policy</a> | <a href=\"http://capillarytech.com/about-us/\" target=\"_blank\">About Capillary</a></p> \t\t\t</div> \t\t\t</td> \t\t</tr> \t</tbody> </table> </body> </html> ","secondary_template_id":"9500","is_base_template":1,"language_name":"English","language":"English","lang_id":"69"}],"edit":true,"tags":[]};
2633
- // const data = {edit: true, "base":{"subject":"testsubject","html_content":"<html> <head> \t<meta charset=\"utf-8\" /> \t<title>Aster Secure</title> \t<style type=\"text/css\">#outlook a { padding: 0; } body { width: 100% !important; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; margin: 0; padding: 0;} .ExternalClass { width: 100%; } .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: 100%; } #backgroundTable { margin: 0; padding: 0; width: 100% !important; line-height: 100% !important; } img { outline: none; text-decoration: none; border: none; -ms-interpolation-mode: bicubic; } a img { border: none; } .image_fix { display: block; } p { margin: 0px 0px !important; } table td { border-collapse: collapse; } table { border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; } table[class=full] { width: 100%; clear: both; } table[class=spacetable] { height: 176px; } table[class=spacetable1] { height: 431px; } table[class=spacetable2] { height: 50px; } table[class=spacetable3] { height: 55px; } \t @media only screen and (min-width: 320px) and (max-width: 540px) { a[href^=\"tel\"], a[href^=\"sms\"] { text-decoration: none; color: #ffffff; pointer-events: none; cursor: default; } .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] { text-decoration: default; color: #ffffff !important; pointer-events: auto; cursor: default; } img[class=logo] { width: 132px!important; } img[class=shop] { width:53px!important; text-align: center!important; } table[class=innerlayer] { width: 300px !important; text-align: center; } img[class=spot] { width: 65px!important; } img[class=banner] { width: 290px !important; text-align: center; } img[class=banner1] { width: 229px!important; } img[class=click] { width:55px!important; } img[class=border] { width: 290px!important; } td[class=txtfont] { font-size:11px!important; height:50px!important; line-height: 15px!important; } \t span[class=txtfont] { font-size:9px!important; height:98px!important; line-height:23px!important; } \t td[class=txtfont1] { font-size:11px!important; height:40px!important; line-height: 14px!important; } img[class=left] { width:195px!important; } img[class=right] { width:46px!important; } \t \t td[class=txtfont3] { font-size:8px!important;} \ttd[class=txtfont2] { font-size:6px!important; line-height:9px!important; } td[class=txtbold] { font-size: 21px!important; } img[class=gap] { width:92px!important; } img[class=gap1] { width: 20px!important; } table[class=social] { width: 99% !important; } img[class=fb] { width:20px!important; } img[class=in] { width:21px!important; } img[class=tw] { width:20px!important; } img[class=pin] { width:41px!important; } \t img[class=and] { width:81px!important; } img[class=my] { width: 44px!important; } \t img[class=you] { width:21px!important; } img[class=store] { width:65px!important; } \t \t img[class=snap] { width:24px!important; } td[class=textlen] { height:52px!important; } \ttd[class=tdlen] \t{ \theight:35px!important;font-size: 10px !important; \t} \t\t\timg[class=a] { width: 42px!important; } \t\t\timg[class=b] { width: 22px!important; } \t\t\timg[class=c] { width: 72px!important; } \t\t\timg[class=d] { width: 50px!important; } \t\t\timg[class=e] { width: 56px!important; } \t\t\timg[class=f] { width: 56px!important; } \t\t\t} \t</style> </head> <body><center>\n\t\t\t\t\t\t\t\t\t\tIf you have difficulties viewing this mail, click\n\t\t\t\t\t\t\t\t\t\t<a href=\"https://nightly.capillary.in/business_controller/campaigns/emails/links/view.php?utrack={{user_id_b64}}&mtrack={{outbox_id_b64}}\" style = \"text-decoration: underline;color: #369;\" target=\"_blank\">here</a><br/>\n\t\t\t\t\t\t\t\t\t</center> <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"outerlayer\" style=\"width:650px\"> \t<tbody> \t\t<tr> \t\t\t<td> \t\t\t<table align=\"center\" bgcolor=\"#fff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"outerlayer\" style=\"width:650px\"> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td class=\"txtfont2\" height=\"40\" style=\"font-family: Verdana, Geneva, sans-serif; text-align:center; font-size:11px; color:gray; line-height:13px;\" width=\"600\">Shop at Aster Pharmacy this month and You could be the next lucky winner!</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><a href=\"#\" style=\"pointer-events:none;\"><img class=\"banner\" src=\"https://s3-eu-west-1.amazonaws.com/fs.capillary.eu/intouch_creative_assets/890bdffee3b2322d8ec7.jpg\" style=\"border:none; display:block\" /></a></td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td class=\"txtfont2\" height=\"40\" style=\"font-family: Verdana, Geneva, sans-serif; text-align:center; font-size:11px; color:gray; line-height:13px;\" width=\"600\">To remove your email address from our mailing list , please click on {{unsubscribe}}</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t</td> \t\t</tr> \t</tbody> </table> </body> </html> ","is_drag_drop":0,"drag_drop_id":null},"secondary_templates":[{"is_preview_generated":null,"preview_url":null,"is_favourite":null,"is_drag_drop":false,"drag_drop_id":null,"scope":null,"tag":null,"is_default":null,"html_content":"<html>\r\n<head>\r\n\t<meta charset=\"utf-8\" />\r\n\t<title>Aster Secure</title>\r\n\t<style type=\"text/css\">#outlook a { padding: 0; } body { width: 100% !important; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; margin: 0; padding: 0;} .ExternalClass { width: 100%; } .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: 100%; } #backgroundTable { margin: 0; padding: 0; width: 100% !important; line-height: 100% !important; } img { outline: none; text-decoration: none; border: none; -ms-interpolation-mode: bicubic; } a img { border: none; } .image_fix { display: block; } p { margin: 0px 0px !important; } table td { border-collapse: collapse; } table { border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; } table[class=full] { width: 100%; clear: both; } table[class=spacetable] { height: 176px; } table[class=spacetable1] { height: 431px; } table[class=spacetable2] { height: 50px; } table[class=spacetable3] { height: 55px; } \t @media only screen and (min-width: 320px) and (max-width: 540px) { a[href^=\"tel\"], a[href^=\"sms\"] { text-decoration: none; color: #ffffff; pointer-events: none; cursor: default; } .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] { text-decoration: default; color: #ffffff !important; pointer-events: auto; cursor: default; } img[class=logo] { width: 132px!important; } img[class=shop] { width:53px!important; text-align: center!important; } table[class=innerlayer] { width: 300px !important; text-align: center; } img[class=spot] { width: 65px!important; } img[class=banner] { width: 290px !important; text-align: center; } img[class=banner1] { width: 229px!important; } img[class=click] { width:55px!important; } img[class=border] { width: 290px!important; } td[class=txtfont] { font-size:11px!important; height:50px!important; line-height: 15px!important; } \t span[class=txtfont] { font-size:9px!important; height:98px!important; line-height:23px!important; } \t td[class=txtfont1] { font-size:11px!important; height:40px!important; line-height: 14px!important; } img[class=left] { width:195px!important; } img[class=right] { width:46px!important; } \t \t td[class=txtfont3] { font-size:8px!important;} \ttd[class=txtfont2] { font-size:6px!important; line-height:9px!important; } td[class=txtbold] { font-size: 21px!important; } img[class=gap] { width:92px!important; } img[class=gap1] { width: 20px!important; } table[class=social] { width: 99% !important; } img[class=fb] { width:20px!important; } img[class=in] { width:21px!important; } img[class=tw] { width:20px!important; } img[class=pin] { width:41px!important; } \t img[class=and] { width:81px!important; } img[class=my] { width: 44px!important; } \t img[class=you] { width:21px!important; } img[class=store] { width:65px!important; } \t \t img[class=snap] { width:24px!important; } td[class=textlen] { height:52px!important; } \ttd[class=tdlen] \t{ \theight:35px!important;font-size: 10px !important; \t} \t\t\timg[class=a] { width: 42px!important; } \t\t\timg[class=b] { width: 22px!important; } \t\t\timg[class=c] { width: 72px!important; } \t\t\timg[class=d] { width: 50px!important; } \t\t\timg[class=e] { width: 56px!important; } \t\t\timg[class=f] { width: 56px!important; } \t\t\t}\r\n\t</style>\r\n</head>\r\n<body>\r\n<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"outerlayer\" style=\"width:650px\">\r\n\t<tbody>\r\n\t\t<tr>\r\n\t\t\t<td>\r\n\t\t\t<table align=\"center\" bgcolor=\"#fff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"outerlayer\" style=\"width:650px\">\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td class=\"txtfont2\" height=\"40\" style=\"font-family: Verdana, Geneva, sans-serif; text-align:center; font-size:11px; color:gray; line-height:13px;\" width=\"600\">Shop at Aster Pharmacy this month and You could be the next lucky winner!</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><a href=\"#\" style=\"pointer-events:none;\"><img class=\"banner\" src=\"https://s3-eu-west-1.amazonaws.com/fs.capillary.eu/intouch_creative_assets/890bdffee3b2322d8ec7.jpg\" style=\"border:none; display:block\" /></a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td class=\"txtfont2\" height=\"40\" style=\"font-family: Verdana, Geneva, sans-serif; text-align:center; font-size:11px; color:gray; line-height:13px;\" width=\"600\">To remove your email address from our mailing list , please click on {{unsubscribe}}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</tbody>\r\n</table>\r\n</body>\r\n</html>\r\n","secondary_template_id":"9584","is_base_template":1,"language_name":"English","language":"English","lang_id":"69"}, {"is_preview_generated":null,"preview_url":null,"is_favourite":null,"is_drag_drop":false,"drag_drop_id":null,"scope":null,"tag":null,"is_default":null,"html_content":"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html> <head> \t<title>Scheduled Report</title> \t<meta http-equiv=\"Content-Type\" content=\"text/html charset=UTF-8\"/> \t<style type=\"text/css\">.container-main p{line-height: 1.6;}@media screen and (max-width: 480px){a.brand{font-size: 35px;}}@media screen and (max-width: 480px){.container-main a{text-align: center;}a.brand{text-align: center;}}a.brand img{vertical-align: middle; padding: 0 8px 0 0; width: 250px;}@media screen and (max-width: 480px){a.brand img{width: 220px !important;}}@media screen and (max-width: 480px){.container-content{padding: 15px 20px; font-size: 12px !important;} .email-footer{font-size: 12px !important;}}.container-content table{border-collapse: collapse;}.container-content table tr td p{margin: 5px;}.container-content table tr td p span{font-weight: bold; padding: 0 3px 0 0;}@media screen and (max-width: 480px){a.btn-view-reports{margin: 25px auto 10px;}}a.btn-view-reports:hover{background: grey; color: #fff;}.email-footer p{text-align: center; font-size: 12px; color: grey;}.email-footer p a{color: blue; cursor: pointer;}.email-footer p a:hover{color: grey;} \t</style> </head> <body><center>\n\t\t\t\t\t\t\t\t\t\tIf you have difficulties viewing this mail, click\n\t\t\t\t\t\t\t\t\t\t<a href=\"https://nightly.capillary.in/business_controller/campaigns/emails/links/view.php?utrack={{user_id_b64}}&mtrack={{outbox_id_b64}}\" style = \"text-decoration: underline;color: #369;\" target=\"_blank\">here</a><br/>\n\t\t\t\t\t\t\t\t\t</center> <table class=\"container-main\" style=\"background:#eeeeee; color:#000000; font-family:'Open Sans',sans-serif; font-size:16px; font-weight:400; margin:0 auto; max-width:978px; padding:15px; width:100%\"> \t<tbody> \t\t<tr> \t\t\t<td> \t\t\t<table class=\"email-header\" style=\"background:#ffffff; margin:0 0 5px; padding:17px 0; width:100%\"> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td style=\"width:100%\"><a class=\"brand\" href=\"#\" style=\"display: table; margin: 0 auto; text-decoration: none; font-size: 37px; color: grey;\"><img alt=\"Capillary Technologies\" src=\"https://s3.amazonaws.com/fileservice.in/intouch_creative_assets/60221e2020ba572f6787.png\" /> </a></td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<div class=\"container-content\" style=\"background:#ffffff; padding:20px 35px\"> \t\t\t<p>Hi Ashish Karan,</p> \t\t\t<p>You&#39;ve received a new scheduled report. {{unsubscribe}}</p> \t\t\t<table> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Org Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>autotest1</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Scheduled Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>Schedule Test</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Time Period: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>1st Jan, 2017 to 24th Sep, 2017</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Report Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>redDart Report</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<p style=\"font-size:15px; margin-top:25px\">By clicking &quot;View Report&quot; you will be redirected to Capillary Analytics to view the automated report.</p> \t\t\t<a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91?snapshot=59c8bce750f4e75ec8b0d24c\" style=\"background: #009e0f; text-align: center; color: #fff; font-size: 16px; padding: 10px 25px; cursor: pointer; text-decoration: none; display: block; width: 120px; margin: 25px auto 15px;\" target=\"_blank\">View Report</a></div> \t\t\t<div class=\"email-footer\"> \t\t\t<p style=\"color:grey; font-size:12px; text-align:center\">You&#39;ve received this mail because you subscribed to Schedule Test schedule of redDart Report. <a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91/schedule/59c8bce750f4e75ec8b0d24c/unsubscribeSchedule\" style=\"color: blue; cursor: pointer;\" target=\"_blank\">Unsubscribe</a></p> \t\t\t<p><a href=\"http://capillarytech.com/privacy-policy/\" target=\"_blank\">Privacy Policy</a> | <a href=\"http://capillarytech.com/about-us/\" target=\"_blank\">About Capillary</a></p> \t\t\t</div> \t\t\t</td> \t\t</tr> \t</tbody> </table> </body> </html> ","secondary_template_id":"9500","is_base_template":false,"language_name":"Hindi","language":"Hindi","lang_id":"151"},{"is_preview_generated":null,"preview_url":null,"is_favourite":null,"is_drag_drop":1,"drag_drop_id":"55acf47048a85bbf7681a35a","scope":null,"tag":null,"is_default":null,"html_content":"","secondary_template_id":"9500","is_base_template":0,"language_name":"Japanese","language":"Japanese","lang_id":"100"}]};
2634
- console.log('Start template creation ', data, this.props.location.query.isLanguageSupport, this.props.location.query.type === 'embedded', this.props.location.query.type === 'embedded' && !this.props.location.query.isLanguageSupport);
2635
- if (data && data.edit) {
2636
- console.log('startTemplateCreation');
2637
- // const formData = {'0': {}};
2638
- const formData = _.cloneDeep(this.state.formData);
2639
- formData[0].selectedLanguages = [];
2640
- let tabKey;
2641
- if (this.props.location.query.type === 'embedded' && (this.props.location.query.isLanguageSupport === undefined || this.props.location.query.isLanguageSupport === 'false')) {
2642
- formData['template-subject'] = data.base.subject ? data.base.subject : '';
2643
- const baseLanguage = this.props.Global.currentOrgDetails.basic_details.base_language;
2644
- let languageIndex = _.findIndex(this.supportedLanguages, {iso_code: baseLanguage});
2645
- console.log("startTemplatecreation before index", languageIndex, this.supportedLanguages, baseLanguage, formData);
2646
- if (languageIndex === -1) {
2647
- languageIndex = 0;
2648
- }
2649
- const tempData = {
2650
- "is_drag_drop": data.base.is_drag_drop,
2651
- "lang_id": this.supportedLanguages[languageIndex].lang_id,
2652
- "iso_code": this.supportedLanguages[languageIndex].iso_code,
2653
- "language": this.supportedLanguages[languageIndex].language,
2654
- "template-content": !data.base.is_drag_drop && data.base.is_drag_drop !== 1 ? data.base.html_content : "",
2655
- };
2656
- formData[0].base = true;
2657
- formData[0].selectedLanguages.push(this.supportedLanguages[languageIndex].iso_code);
2658
- formData[0][this.supportedLanguages[languageIndex].iso_code] = tempData;
2659
- formData[0].activeTab = this.supportedLanguages[languageIndex].iso_code;
2660
- tabKey = "2";
2661
- console.log("start Template creation midway data", formData, languageIndex);
2662
- } else {
2663
- const additionalLanguages = [];
2664
- _.forEach(data.secondary_templates, (templates) => {
2665
- console.log('creating form data', templates);
2666
- const id = "1";
2667
- tabKey = id;
2668
- let languageIndex = _.findIndex(this.supportedLanguages, {language: templates.language});
2669
- if (languageIndex === -1) {
2670
- languageIndex = 0;
2671
- }
2672
- const tempData = {
2673
- "is_drag_drop": templates.is_drag_drop === "1" || false,
2674
- "lang_id": this.supportedLanguages[languageIndex].lang_id,
2675
- "iso_code": this.supportedLanguages[languageIndex].iso_code,
2676
- "language": this.supportedLanguages[languageIndex].language,
2677
- "template-content": templates.html_content,
2678
- };
2679
- if (templates.drag_drop_id) {
2680
- tempData.drag_drop_id = templates.drag_drop_id;
2681
- this.props.actions.getCmsSetting('edm', tempData.drag_drop_id, 'open', tempData.iso_code, isEdmSupport);
2682
- }
2683
- // formData.usingTabContainer = true;
2684
- // formData.tabCount = 1;
2685
- console.log('Language Index ', languageIndex, this.supportedLanguages);
2686
- // formData[0].tabkey = "1";
2687
- // formData[0] = {};
2688
- // formData[0].activeTab = this.props.Global.currentOrgDetails.basic_details.base_language;
2689
- formData[0].base = true;
2690
- formData[0].selectedLanguages.push(this.supportedLanguages[languageIndex].iso_code);
2691
- formData[0][this.supportedLanguages[languageIndex].iso_code] = tempData;
2692
- if (templates.is_base_template === 1) {
2693
- formData[0].activeTab = this.supportedLanguages[languageIndex].iso_code;
2694
- // formData.base = tempData;
2695
- } else {
2696
- additionalLanguages.push(this.supportedLanguages[languageIndex]);
2697
- }
2698
- });
2699
- this.addLanguage(false, formData, false, additionalLanguages);
2700
- }
2701
- formData.base = _.cloneDeep(formData[0]);
2702
- console.log('startTemplateCreation final ', formData);
2703
- this.setState({formData, loading: false, injectedTags: data.tags, tabKey, isDragDrop: (data.base.is_drag_drop !== 0 )}, () => {
2704
- // this.setState({tabKey: ''});
2705
- _.forEach(formData[0].selectedLanguages, (language) => {
2706
- if (formData[0][language].is_drag_drop) {
2707
- this.props.actions.getCmsSetting('edm', formData[0][language].drag_drop_id, 'open', language, isEdmSupport);
2708
- }
2709
- });
2710
- });
2711
- } else {
2712
- this.setState({injectedTags: data.tags});
2713
- }
2714
- }
2715
-
2716
- startLoading = (ifEdit) => {
2717
- console.log('startLoading', ifEdit);
2718
- if (ifEdit) {
2719
- this.setState({loading: true});
2720
- }
2721
- }
2722
-
2723
- injectContainer = (container) => {
2724
- const temp = container;
2725
- if (temp.type === 'tabs') {
2726
- temp.tabContent.sections = this.injectSections(temp.tabContent.sections);
2727
- temp.tabBarExtraContent.sections = this.injectSections(temp.tabBarExtraContent.sections);
2728
- temp.tabContent.sections = this.injectSections(temp.tabContent.sections);
2729
- temp.injectedEvents = {};
2730
- _.forEach(temp.supportedEvents, (event) => {
2731
- temp.injectedEvents[event] = this.getMappedEvent(temp.id, event);
2732
- });
2733
- _.forEach(temp.panes, (pane) => {
2734
- const tempPane = pane;
2735
- tempPane.sections = this.injectSections(tempPane.sections);
2736
- });
2737
- }
2738
- return temp;
2739
- }
2740
-
2741
- injectMultiColSection = (section) => {
2742
- _.forEach(section.inputFields, (inputField) => {
2743
- _.forEach(inputField.cols, (col) => {
2744
- const temp = col;
2745
- if (temp.type === 'popover') {
2746
- temp.content.sections = this.injectSections(temp.content.sections);
2747
- temp.value.sections = this.injectSections(temp.value.sections);
2748
- return true;
2749
- }
2750
- temp.injectedEvents = {};
2751
- _.forEach(col.supportedEvents, (event) => {
2752
- // console.log('injected event for ', col, event, this.getMappedEvent(col.id, event));
2753
- temp.injectedEvents[event] = this.getMappedEvent(col.id, event);
2754
- });
2755
- // console.log('should translate multicol', temp);
2756
- if (temp.type === 'icon') {
2757
- return true;
2758
- }
2759
- if (temp.value && messages[temp.value]) {
2760
- temp.value = this.props.intl.formatMessage(messages[temp.value]);
2761
- }
2762
- if (temp.label && messages[temp.label]) {
2763
- temp.label = this.props.intl.formatMessage(messages[temp.label]);
2764
- }
2765
- if (temp.errorMessage && messages[temp.errorMessage]) {
2766
- temp.errorMessage = this.props.intl.formatMessage(messages[temp.errorMessage]);
2767
- }
2768
- if (temp.placeholder && messages[temp.placeholder]) {
2769
- temp.placeholder = this.props.intl.formatMessage(messages[temp.placeholder]);
2770
- }
2771
- return true;
2772
- });
2773
- });
2774
- _.forEach(section.actionFields, (actionField) => {
2775
- _.forEach(actionField.cols, (col) => {
2776
- const temp = col;
2777
- if (temp.type === 'popover') {
2778
- temp.content.sections = this.injectSections(temp.content.sections);
2779
- temp.value.sections = this.injectSections(temp.value.sections);
2780
- return true;
2781
- }
2782
- temp.injectedEvents = {};
2783
- _.forEach(col.supportedEvents, (event) => {
2784
- temp.injectedEvents[event] = this.getMappedEvent(col.id, event);
2785
- });
2786
- // console.log('should translate multicol action', temp);
2787
- if (temp.type === 'icon') {
2788
- return true;
2789
- }
2790
- if (temp.value && messages[temp.value]) {
2791
- temp.value = this.props.intl.formatMessage(messages[temp.value]);
2792
- }
2793
- if (temp.label && messages[temp.label]) {
2794
- temp.label = this.props.intl.formatMessage(messages[temp.label]);
2795
- }
2796
- if (temp.errorMessage && messages[temp.errorMessage]) {
2797
- temp.errorMessage = this.props.intl.formatMessage(messages[temp.errorMessage]);
2798
- }
2799
- if (temp.placeholder && messages[temp.placeholder]) {
2800
- temp.placeholder = this.props.intl.formatMessage(messages[temp.placeholder]);
2801
- }
2802
- return true;
2803
- });
2804
- });
2805
- return section;
2806
- }
2807
-
2808
- injectColLabelSection = (section) => {
2809
- _.forEach(section.inputFields, (inputField) => {
2810
- const temp = inputField;
2811
- if (temp.type === 'popover') {
2812
- temp.content.sections = this.injectSections(temp.content.sections);
2813
- temp.value.sections = this.injectSections(temp.value.sections);
2814
- return true;
2815
- }
2816
- temp.injectedEvents = {};
2817
- _.forEach(inputField.supportedEvents, (event) => {
2818
- temp.injectedEvents[event] = this.getMappedEvent(inputField.id, event);
2819
- });
2820
- // console.log('should translate collabel', temp);
2821
- if (temp.type === 'icon') {
2822
- return true;
2823
- }
2824
- if (temp.value && messages[temp.value]) {
2825
- temp.value = this.props.intl.formatMessage(messages[temp.value]);
2826
- }
2827
- if (temp.label && messages[temp.label]) {
2828
- temp.label = this.props.intl.formatMessage(messages[temp.label]);
2829
- }
2830
- if (temp.errorMessage && messages[temp.errorMessage]) {
2831
- temp.errorMessage = this.props.intl.formatMessage(messages[temp.errorMessage]);
2832
- }
2833
- if (temp.placeholder && messages[temp.placeholder]) {
2834
- temp.placeholder = this.props.intl.formatMessage(messages[temp.placeholder]);
2835
- }
2836
- return true;
2837
- });
2838
- _.forEach(section.actionFields, (actionField) => {
2839
- const temp = actionField;
2840
- if (temp.type === 'popover') {
2841
- temp.content.sections = this.injectSections(temp.content.sections);
2842
- temp.value.sections = this.injectSections(temp.value.sections);
2843
- return true;
2844
- }
2845
- temp.injectedEvents = {};
2846
- _.forEach(actionField.supportedEvents, (event) => {
2847
- temp.injectedEvents[event] = this.getMappedEvent(actionField.id, event);
2848
- });
2849
- // console.log('should translate collabel action', temp);
2850
- if (temp.type === 'icon') {
2851
- return true;
2852
- }
2853
- if (temp.value && messages[temp.value]) {
2854
- temp.value = this.props.intl.formatMessage(messages[temp.value]);
2855
- }
2856
- if (temp.label && messages[temp.label]) {
2857
- temp.label = this.props.intl.formatMessage(messages[temp.label]);
2858
- }
2859
- if (temp.errorMessage && messages[temp.errorMessage]) {
2860
- temp.errorMessage = this.props.intl.formatMessage(messages[temp.errorMessage]);
2861
- }
2862
- if (temp.placeholder && messages[temp.placeholder]) {
2863
- temp.placeholder = this.props.intl.formatMessage(messages[temp.placeholder]);
2864
- }
2865
- return true;
2866
- });
2867
- return section;
2868
- }
2869
-
2870
- injectSections = (sections) => {
2871
- _.forEach(sections, (section) => {
2872
- let temp = section;
2873
- if (temp.type === 'col-label') {
2874
- temp = this.injectColLabelSection(temp);
2875
- } else if (section.type === 'multicols') {
2876
- temp = this.injectMultiColSection(temp);
2877
- } else if (section.type === 'parent') {
2878
- temp = this.injectSections(temp.childSections);
2879
- }
2880
- });
2881
- return sections;
2882
- }
2883
-
2884
- injectParentSection = (section) => {
2885
- _.forEach(section.childSections, (childSection) => {
2886
- let temp = childSection;
2887
- if (temp.type === 'col-label') {
2888
- temp = this.injectColLabelSection(temp);
2889
- } else if (section.type === 'multicols') {
2890
- temp = this.injectMultiColSection(temp);
2891
- } else if (section.type === 'parent') {
2892
- temp = this.injectParentSection(temp);
2893
- }
2894
- });
2895
- return section;
2896
- }
2897
-
2898
- saveFormData = (passedData) => {
2899
- //Logic to save in db etc
2900
- // const isValidated = this.validateFormData(formData);
2901
- // console.log('whyyyy');
2902
- // if (!isValidated) {
2903
- // return;
2904
- // }
2905
- //if (!this.state.startValidation) {
2906
- // this.saveValidationData();
2907
- // return;
2908
- //}
2909
- console.log('save form data', passedData, this.state.gettingFormData, this.state.startValidation, this.state);
2910
- if (this.state.gettingFormData) {
2911
- console.log('posting final result', passedData);
2912
- const response = {
2913
- action: "getFormData",
2914
- postAction: this.state.getFormDataValue || 'next',
2915
- value: this.transformFormData(passedData),
2916
- validity: this.state.isFormValid,
2917
- };
2918
- console.log('Get Data', response);
2919
- this.setState({checkValidation: true});
2920
- if (this.props.location.query.module === 'library' && this.props.isGetFormData) {
2921
- this.props.getFormSubscriptionData(response);
2922
- }
2923
- parent.postMessage(JSON.stringify(response), "*");
2924
- this.setState({gettingFormData: false, startValidation: false});
2925
- return;
2926
- }
2927
- const formData = _.cloneDeep(passedData);
2928
- console.log('Saving form data', JSON.stringify(formData), this.state.tabCount);
2929
- const obj = {};
2930
- obj.versions = {
2931
- base: {},
2932
- history: [],
2933
- };
2934
- if (this.state.isEdit) {
2935
- obj._id = this.props.Email.templateDetails._id;
2936
- }
2937
- obj.type = 'EMAIL';
2938
- const baseLanguage = this.props.Global.currentOrgDetails.basic_details.base_language;
2939
- let baseKey = -1;
2940
- //let saveCount = 0;
2941
- console.log('all data', this.state.currentTab);
2942
- _.forEach(formData, (data, index) => {
2943
- const newdata = data;
2944
- console.log('all data 2', newdata, index);
2945
- if (!isNaN(index) && newdata) {
2946
- const baseLangTabKey = newdata[baseLanguage].tabKey;
2947
- newdata.tabKey = baseLangTabKey;
2948
- newdata.activeTab = baseLanguage;
2949
- if (newdata.base) {
2950
- baseKey = baseLangTabKey;
2951
- }
2952
- _.forEach(newdata.selectedLanguages, (language) => {
2953
- // console.log('all data 3', newdata[language], language, this.state.currentTab, index, (index + 1), (index + 1) === this.state.currentTab, newdata[language].is_drag_drop);
2954
- // if (newdata[language].is_drag_drop && ((parseInt(index, 10) + 1) === this.state.currentTab)) {
2955
- // console.log('all data 4');
2956
- // saveCount += 1;
2957
- // }
2958
- if (newdata[language].is_drag_drop) {
2959
- delete newdata[language].edmeditorsrc;
2960
- }
2961
- });
2962
- obj.versions.history.push(newdata);
2963
- }
2964
- });
2965
- //const data = formData[`${this.state.currentTab - 1}`];
2966
- obj.name = formData['template-name'];
2967
- obj.versions.base = formData.base;
2968
- obj.versions.base.tabKey = baseKey;
2969
- obj.versions.base.activeTab = baseLanguage;
2970
- _.forEach(obj.versions.base.selectedLanguages, (language) => {
2971
- if (obj.versions.base[language].is_drag_drop) {
2972
- delete obj.versions.base[language].edmeditorsrc;
2973
- }
2974
- });
2975
- console.log('obj', obj);
2976
- // if (saveCount === 0) {
2977
- console.log('final save obj', obj);
2978
- this.props.actions.createTemplate(obj);
2979
- // } else {
2980
- // this.setState({saveObj: obj, targetSaveCount: saveCount, mode: "save", saveEdmDataMode: 'save'}, () => {
2981
- // _.forEach(data.selectedLanguages, (language, langIndex) => {
2982
- // if (data[language].is_drag_drop) {
2983
- // console.log('saving edm template', document.getElementById("edmeditor"), `edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`);
2984
- // const win = document.getElementById(`edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`).contentWindow;
2985
- // win.postMessage("saveProject", '*');
2986
- // }
2987
- // });
2988
- // });
2989
- // }
2990
- }
2991
-
2992
- handleOk = () => {
2993
- const formData = _.cloneDeep(this.state.formData);
2994
- const activeLangTab = formData[`${this.state.currentTab - 1}`].activeTab;
2995
- const langIndex = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(activeLangTab);
2996
- console.log('switching editor midway', activeLangTab, langIndex, formData);
2997
- this.setState({mode: "switchEditor"}, () => {
2998
- console.log('posting message for switching editor', `edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`);
2999
- const win = document.getElementById(`edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`).contentWindow;
3000
- win.postMessage("saveProject", '*');
3001
- });
3002
- }
3003
-
3004
- handleCancel = () => {
3005
- this.setState({ showConfirmationModal: false });
3006
- }
3007
-
3008
- handleCancelModal = () => {
3009
- this.setState({showModal: false});
3010
- }
3011
-
3012
- openFileDialog() {
3013
- document.getElementById("fileName").click();
3014
- }
3015
-
3016
- toggleEdmEmailTemplateSelection = () => {
3017
- console.log('toggle Selection ', this.state.showEdmEmailTemplates);
3018
- this.setState( (prevState) => ({
3019
- showEdmEmailTemplates: !prevState.showEdmEmailTemplates}), () => {
3020
- if (this.state.showEdmEmailTemplates) {
3021
- this.props.templatesActions.getEdmDefaultTemplates();
3022
- }
3023
- });
3024
- };
3025
-
3026
- handleEdmDefaultTemplateSelection = (isSelected, id) => {
3027
- if (isSelected) {
3028
- const data = _.find(this.props.Templates.cmsTemplates, {_id: id});
3029
- // const type = this.props.location.query.type;
3030
- // const module = this.props.location.query.module ? this.props.location.query.module : 'default';
3031
- // const isLanguageSupport = (this.props.location.query.isLanguageSupport) ? this.props.location.query.isLanguageSupport : true;
3032
- // const isEdmSupport = (this.props.location.query.isEdmSupport) ? this.props.location.query.isEdmSupport : true;
3033
- // let getQuery = '';
3034
- const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
3035
- console.log('Selected EDM Data ', data, this.state.formData[this.state.currentTab - 1].activeTab);
3036
- this.props.actions.getCmsSetting('edm', data.versions.base.drag_drop_id, 'create', this.state.formData[this.state.currentTab - 1].activeTab, isEdmSupport);
3037
- // this.props.templatesActions.setEdmTemplate(data);
3038
- this.toggleEdmEmailTemplateSelection();
3039
- // if (type && type.toLowerCase() === 'email') {
3040
- // getQuery = (type === 'embedded') ? {type: 'embedded', module, isLanguageSupport, isEdmSupport} : {module, isLanguageSupport, isEdmSupport};
3041
- // } else {
3042
- // getQuery = (type === 'embedded') ? {type: 'embedded', module} : {module};
3043
- // }
3044
- // this.props.router.push({
3045
- // pathname: `/${this.state.channel.toLowerCase()}/create`,
3046
- // query: getQuery,
3047
- // });
3048
- }
3049
- };
3050
-
3051
- renderConfirmationModal() {
3052
- const modal = (
3053
- <Modal
3054
- visible={this.state.showConfirmationModal}
3055
- title={this.props.intl.formatMessage(messages.switchEditor)}
3056
- onOk={this.handleOk}
3057
- onCancel={this.handleCancel}
3058
- footer={[
3059
- <CapButton key="back" onClick={this.handleCancel}>
3060
- {this.props.intl.formatMessage(messages.cancel)}
3061
- </CapButton>,
3062
- <CapButton key="submit" type="primary" onClick={this.handleOk}>
3063
- {this.props.intl.formatMessage(messages.yes)}
3064
- </CapButton>,
3065
- ]}
3066
- >
3067
- <p>{this.props.intl.formatMessage(messages.edmSwtichMessage)}</p>
3068
- <p>{this.props.intl.formatMessage(messages.edmSwitchAcceptText)}</p>
3069
- </Modal>);
3070
- return modal;
3071
- }
3072
-
3073
- render() {
3074
- // const pageHeading = (this.state.isEdit) ? this.props.intl.formatMessage(messages.editHeading) : this.props.intl.formatMessage(messages.createHeading);
3075
- // const actionComponents = '';
3076
- console.log('supported languages', this.supportedLanguages);
3077
- const filterContent = (
3078
- <div className="action-container" style={{ display: 'inline-flex', width: '100%'}}>
3079
- <div style={{ marginTop: '8px', width: '50%'}}>
3080
- <CapInput
3081
- className="search-text"
3082
- style={{width: '210px'}}
3083
- placeholder="Search"
3084
- prefix={<i className="material-icons" style={{color: '#707070', fontSize: '16px'}}>search</i>}
3085
- value={this.state.searchText}
3086
- onChange={(e) => this.searchAsset(e.target.value)}
3087
- />
3088
- </div>
3089
- <div style={{ textAlign: 'right', marginTop: '16px', width: '50%'}}>
3090
- <span className="select-font">
3091
- <FormattedMessage {...messages.sortby} />
3092
- </span>
3093
- <Select
3094
- style={{marginLeft: '8px', width: 120, borderLeft: 'none', borderRight: 'none', borderTop: 'none'}}
3095
- className="select-font"
3096
- defaultValue="Most Recent"
3097
- onChange={this.handleSortingChange}
3098
- >
3099
- <Option className="select-font" value="Most Recent">
3100
- <FormattedMessage {...messages.mostRecent} />
3101
- </Option>
3102
- <Option className="select-font" value="Alphabetically">
3103
- <FormattedMessage {...messages.alphabetically} />
3104
- </Option>
3105
- </Select>
3106
- </div>
3107
- </div>
3108
- );
3109
- const schema = this.state.schema;
3110
- const spinning = this.state.loading || (this.props.Email && "createTemplateInProgress" in this.props.Email && this.props.Email.createTemplateInProgress) || (this.props.Email.assetUploading !== undefined && this.props.Email.assetUploading);
3111
- const previewHeader = (<h3>Email Preview</h3>);
3112
- const imagePreviewHeader = (<h3>Image Selection</h3>);
3113
- const imagePreviewContent = (
3114
- <div>
3115
- <div>
3116
- <form encType="multipart/form-data" id="myForm">
3117
- <input style={{ display: 'none'}} id="fileName" type="file" onChange={(e) => this.uploadImages(e, {files: e.target.files})} accept="image/*" />
3118
- <CapButton type={'secondary'} onClick={(e) => this.openFileDialog(e)} style={{float: 'right', marginRight: '24px'}}>
3119
- <FormattedMessage {...messages.upload} />
3120
- </CapButton>
3121
- </form>
3122
- </div>
3123
- <Pagination onPageChange={() => { this.fetchAllAssets({getNextPage: true}); }} paginationSelector="pagination-container">
3124
- <CardGrid
3125
- listItem={this.prepareImageData()}
3126
- filterContent={filterContent}
3127
- onHoverItem={this.handleOnHoverItem}
3128
- onItemClick={this.handleOnItemClick}
3129
- colNumber={2}
3130
- enablePagination
3131
- />
3132
- </Pagination>
3133
- </div>
3134
- );
3135
- console.log('Render Form Data ', this.state.formData, this.supportedLanguages, this.state);
3136
- if (!this.props.Global.currentOrgDetails || !this.props.Global.currentOrgDetails.basic_details) {
3137
- return (<div>Loading...</div>);
3138
- }
3139
- console.log('CMS Data ', this.props.Email.CmsSettings, this.props.Global.currentOrgDetails.basic_details.supported_languages);
3140
- let loaderText = this.props.Email.createTemplateInProgress ? this.props.intl.formatMessage(messages.saveTemplateLoader) : this.props.intl.formatMessage(messages.templateLoader);
3141
- if (this.props.Email.assetUploading) {
3142
- loaderText = this.props.intl.formatMessage(messages.uploadingImage);
3143
- }
3144
- let tags = this.props.metaEntities && this.props.metaEntities.tags ? this.props.metaEntities.tags.standard : [];
3145
- if (this.props.location.query.type === 'embedded' && this.props.location.query.module === 'library' && !this.props.getDefaultTags) {
3146
- tags = this.props.supportedTags;
3147
- }
3148
- return (
3149
- <div className="email-container">
3150
- <Helmet
3151
- title="Email"
3152
- meta={[
3153
- { name: 'description', content: 'Description of Email' },
3154
- ]}
3155
- />
3156
- {/* <PageHeader pageHeading={pageHeading} /> */}
3157
- <Spin tip={loaderText} spinning={spinning}>
3158
- {this.props.location.query.type !== 'embedded' && <Row>
3159
- <Col span={24}>
3160
- <Breadcrumb>
3161
- <BreadcrumbItem>Campaigns</BreadcrumbItem>
3162
- <BreadcrumbItem>Creatives</BreadcrumbItem>
3163
- <BreadcrumbItem>Email</BreadcrumbItem>
3164
- </Breadcrumb>
3165
- </Col>
3166
- </Row>}
3167
- <Row>
3168
- <Col>
3169
- {/* <input type="file" id="filename" style={{ display: 'none'}} accept="text/html" onChange={(event) => this.openFile(event)} /><br/> */}
3170
- {/* <CKEditor
3171
- content={this.state.content}
3172
- config={{}}
3173
- events={this.state.events}
3174
- /> */}
3175
- {/* { (!this.props.Email.fetchingCmsSettings && !this.props.Email.fetchingCmsSettingsError &&
3176
- !_.isEmpty(this.props.Email.CmsSettings) && this.props.Email.CmsSettings.url) ?
3177
- <EDMEditor
3178
- content={'Hello World'}
3179
- getEditorInstanse={this.getEditorInstanse}
3180
- edmSrc={this.props.Email.CmsSettings.url}
3181
- /> : ''
3182
- } */}
3183
- { !_.isEmpty(schema) && (this.state.formData[0] || this.state.formData["0"]) ?
3184
- <FormBuilder
3185
- schema={schema}
3186
- onSubmit={this.saveFormData}
3187
- onChange={this.onFormDataChange}
3188
- currentTab={this.state.currentTab}
3189
- parent={this}
3190
- formData={_.cloneDeep(this.state.formData)}
3191
- location={this.props.location}
3192
- tabKey={this.state.tabKey}
3193
- tags={tags}
3194
- tagModule={this.props.getDefaultTags}
3195
- injectedTags={this.state.injectedTags ? this.state.injectedTags : {}}
3196
- onFormValidityChange={this.setFormValidity}
3197
- handleCancelModal={this.handleCancelModal}
3198
- usingTabContainer
3199
- checkValidation={this.state.checkValidation}
3200
- onContextChange={this.handleOnTagsContextChange}
3201
- tabCount={this.state.tabCount}
3202
- isNewVersionFlow
3203
- modal={this.state.modalContent}
3204
- showModal={this.state.showModal}
3205
- isEdit={this.state.isEdit}
3206
- iframeParent={parent}
3207
- router={this.props.router}
3208
- baseLanguage={this.props.Global.currentOrgDetails.basic_details.base_language}
3209
- supportedLanguages={this.props.Global.currentOrgDetails.basic_details.supported_languages}
3210
- isSchemaChanged={this.state.isSchemaChanged}
3211
- cmsTemplates={this.props.Templates.cmsTemplates}
3212
- getCmsTemplatesInProgress={this.props.Templates.getCmsTemplatesInProgress}
3213
- showEdmEmailTemplates={this.state.showEdmEmailTemplates}
3214
- toggleEdmEmailTemplateSelection={this.toggleEdmEmailTemplateSelection}
3215
- handleEdmDefaultTemplateSelection={this.handleEdmDefaultTemplateSelection}
3216
- setModalContent={this.setModalContent}
3217
- addLanguageType={this.state.addLanguageType}
3218
- startValidation={this.state.startValidation}
3219
- getValidationData={this.saveValidationData}
3220
- saveForm={this.state.saveForm}
3221
- stopValidation={this.stopValidation}
3222
- /> : ''}
3223
- </Col>
3224
- </Row>
3225
- </Spin>
3226
- {!_.isEmpty(this.state.formData[(this.state.currentTab - 1)]) && <EmailPreview
3227
- header={previewHeader}
3228
- content={this.state.formData[(this.state.currentTab - 1)][this.state.formData[(this.state.currentTab - 1)].activeTab] ? this.state.formData[(this.state.currentTab - 1)][this.state.formData[(this.state.currentTab - 1)].activeTab][`template-content`] : ''}
3229
- show={this.state.showEmailPreview}
3230
- device={this.state.device}
3231
- handleClose={this.toggleEmailPreview}
3232
- changePreviewDevice={this.changePreviewDevice}
3233
- />}
3234
- <ImagePreview
3235
- header={imagePreviewHeader}
3236
- content={imagePreviewContent}
3237
- show={this.state.showImageSelectionBox}
3238
- handleClose={this.handleImagePreviewClose}
3239
- isLoading={this.props.Email.fetchingAllAssets}
3240
- />
3241
- {this.state.showConfirmationModal && this.renderConfirmationModal()}
3242
- </div>
3243
- );
3244
- }
3245
- }
3246
-
3247
- Email.propTypes = {
3248
- actions: PropTypes.object.isRequired,
3249
- Email: PropTypes.object,
3250
- params: PropTypes.object,
3251
- router: PropTypes.object,
3252
- Templates: PropTypes.object,
3253
- globalActions: PropTypes.object,
3254
- location: PropTypes.object,
3255
- intl: intlShape.isRequired,
3256
- metaEntities: PropTypes.object,
3257
- Global: PropTypes.object,
3258
- templatesActions: PropTypes.object,
3259
- route: PropTypes.object,
3260
- templateData: PropTypes.object,
3261
- isGetFormData: PropTypes.bool,
3262
- getFormSubscriptionData: PropTypes.func,
3263
- supportedTags: PropTypes.array,
3264
- getDefaultTags: PropTypes.string,
3265
- };
3266
-
3267
- const mapStateToProps = createStructuredSelector({
3268
- Email: makeSelectEmail(),
3269
- Templates: makeSelectTemplates(),
3270
- metaEntities: makeSelectMetaEntities(),
3271
- Global: makeSelectAuthenticated(),
3272
- });
3273
-
3274
- function mapDispatchToProps(dispatch) {
3275
- return {
3276
- actions: bindActionCreators(actions, dispatch),
3277
- globalActions: bindActionCreators(globalActions, dispatch),
3278
- templatesActions: bindActionCreators(templatesActions, dispatch),
3279
- };
3280
- }
3281
-
3282
- export default UserIsAuthenticated(connect(mapStateToProps, mapDispatchToProps)(injectIntl(Email)));