@capillarytech/creatives-library 8.0.165 → 8.0.167

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 (295) hide show
  1. package/components/BreadCrumbs/index.js +65 -0
  2. package/components/BreadCrumbs/messages.js +13 -0
  3. package/components/CapTagList/index.js +235 -0
  4. package/components/CapTagList/messages.js +45 -0
  5. package/components/Card/_customCard.scss +40 -0
  6. package/components/Card/index.js +78 -0
  7. package/components/Card/tests/__snapshots__/index.test.js.snap +22 -0
  8. package/components/Card/tests/index.test.js +20 -0
  9. package/components/CardGrid/index.js +71 -0
  10. package/components/Ckeditor/index.js +238 -0
  11. package/components/Ckeditor/messages.js +13 -0
  12. package/components/Ckeditor/style.scss +3 -0
  13. package/components/Component/index.js +29 -0
  14. package/components/CustomPopOver/index.js +81 -0
  15. package/components/CustomPopOver/messages.js +17 -0
  16. package/components/DateFilter/index.js +349 -0
  17. package/components/DateFilter/messages.js +57 -0
  18. package/components/DateRange/index.js +114 -0
  19. package/components/DateRange/messages.js +25 -0
  20. package/components/Edmeditor/index.js +65 -0
  21. package/components/Edmeditor/messages.js +13 -0
  22. package/components/EmailPreview/_emailPreview.scss +119 -0
  23. package/components/EmailPreview/assets/images/iPad.svg +10 -0
  24. package/components/EmailPreview/assets/images/mobile.png +0 -0
  25. package/components/EmailPreview/index.js +107 -0
  26. package/components/EmailPreview/messages.js +33 -0
  27. package/components/Footer/index.js +27 -0
  28. package/components/Footer/messages.js +13 -0
  29. package/components/FormBuilder/_formBuilder.scss +83 -0
  30. package/components/FormBuilder/index.js +3279 -0
  31. package/components/FormBuilder/messages.js +61 -0
  32. package/components/Header/index.js +44 -0
  33. package/components/Header/messages.js +29 -0
  34. package/components/ImagePreview/_imagePreview.scss +63 -0
  35. package/components/ImagePreview/index.js +52 -0
  36. package/components/ImagePreview/messages.js +17 -0
  37. package/components/PageHeader/_pageHeader.scss +22 -0
  38. package/components/PageHeader/index.js +37 -0
  39. package/components/PageHeader/messages.js +13 -0
  40. package/components/Pagination/_pagination.scss +5 -0
  41. package/components/Pagination/index.js +49 -0
  42. package/components/PreviewSideBar/_previewsidebar.scss +28 -0
  43. package/components/PreviewSideBar/index.js +152 -0
  44. package/components/PreviewSideBar/messages.js +41 -0
  45. package/components/Sidebar/_sidebar.scss +115 -0
  46. package/components/Sidebar/index.js +214 -0
  47. package/components/Sidebar/messages.js +21 -0
  48. package/components/SlideBox/_slideBox.scss +63 -0
  49. package/components/SlideBox/index.js +47 -0
  50. package/components/SlideBox/tests/index.test.js +103 -0
  51. package/components/SmsEditor/index.js +55 -0
  52. package/components/SmsTest/index.js +117 -0
  53. package/components/SmsTest/messages.js +21 -0
  54. package/components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +42 -0
  55. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +141 -0
  56. package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +21 -0
  57. package/components/TemplatePreview/_templatePreview.scss +642 -0
  58. package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  59. package/components/TemplatePreview/assets/images/androidPushMessage.svg +45 -0
  60. package/components/TemplatePreview/assets/images/home-screen-android.svg +21 -0
  61. package/components/TemplatePreview/assets/images/home-screen-ios.svg +16 -0
  62. package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +135 -0
  63. package/components/TemplatePreview/assets/images/mobile.svg +24 -0
  64. package/components/TemplatePreview/assets/images/sms-body.png +0 -0
  65. package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
  66. package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
  67. package/components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -0
  68. package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +16 -0
  69. package/components/TemplatePreview/assets/images/user-icon.svg +19 -0
  70. package/components/TemplatePreview/assets/images/wechat-mobile.svg +78 -0
  71. package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -0
  72. package/components/TemplatePreview/index.js +617 -0
  73. package/components/TemplatePreview/messages.js +78 -0
  74. package/components/Toastr/index.js +60 -0
  75. package/components/Toastr/messages.js +13 -0
  76. package/components/ToastrMessage/index.js +113 -0
  77. package/components/ToastrMessage/messages.js +17 -0
  78. package/components/TopBar/_topbar.scss +46 -0
  79. package/components/TopBar/assets/images/capillary_logo.png +0 -0
  80. package/components/TopBar/assets/images/old_capillary_logo.png +0 -0
  81. package/components/TopBar/index.js +113 -0
  82. package/components/TopBar/messages.js +29 -0
  83. package/containers/App/actions.js +7 -0
  84. package/containers/App/constants.js +114 -0
  85. package/containers/App/index.js +52 -0
  86. package/containers/App/reducer.js +19 -0
  87. package/containers/App/sagas.js +31 -0
  88. package/containers/App/selectors.js +25 -0
  89. package/containers/App/test/saga.test.js +11 -0
  90. package/containers/Assets/Gallery/_gallery.scss +126 -0
  91. package/containers/Assets/Gallery/actions.js +37 -0
  92. package/containers/Assets/Gallery/constants.js +23 -0
  93. package/containers/Assets/Gallery/index.js +473 -0
  94. package/containers/Assets/Gallery/messages.js +93 -0
  95. package/containers/Assets/Gallery/reducer.js +81 -0
  96. package/containers/Assets/Gallery/sagas.js +80 -0
  97. package/containers/Assets/Gallery/selectors.js +25 -0
  98. package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +9 -0
  99. package/containers/Assets/Gallery/tests/actions.test.js +25 -0
  100. package/containers/Assets/Gallery/tests/reducer.test.js +96 -0
  101. package/containers/Assets/Gallery/tests/saga.test.js +157 -0
  102. package/containers/Cap/actions.js +66 -0
  103. package/containers/Cap/constants.js +25 -0
  104. package/containers/Cap/index.js +402 -0
  105. package/containers/Cap/messages.js +75 -0
  106. package/containers/Cap/reducer.js +113 -0
  107. package/containers/Cap/sagas.js +159 -0
  108. package/containers/Cap/selectors.js +75 -0
  109. package/containers/Cap/tests/__snapshots__/index.test.js.snap +2270 -0
  110. package/containers/Cap/tests/index.test.js +22 -0
  111. package/containers/Cap/tests/saga.test.js +284 -0
  112. package/containers/Dashboard/actions.js +15 -0
  113. package/containers/Dashboard/constants.js +7 -0
  114. package/containers/Dashboard/index.js +76 -0
  115. package/containers/Dashboard/messages.js +13 -0
  116. package/containers/Dashboard/reducer.js +21 -0
  117. package/containers/Dashboard/sagas.js +17 -0
  118. package/containers/Dashboard/selectors.js +25 -0
  119. package/containers/Dashboard/test/saga.test.js +9 -0
  120. package/containers/Ebill/_ebill.scss +5 -0
  121. package/containers/Ebill/actions.js +43 -0
  122. package/containers/Ebill/constants.js +20 -0
  123. package/containers/Ebill/index.js +1278 -0
  124. package/containers/Ebill/messages.js +77 -0
  125. package/containers/Ebill/reducer.js +72 -0
  126. package/containers/Ebill/sagas.js +74 -0
  127. package/containers/Ebill/selectors.js +25 -0
  128. package/containers/Ebill/test/saga.test.js +11 -0
  129. package/containers/Email/_email.scss +141 -0
  130. package/containers/Email/actions.js +81 -0
  131. package/containers/Email/constants.js +36 -0
  132. package/containers/Email/index.js +3325 -0
  133. package/containers/Email/messages.js +289 -0
  134. package/containers/Email/reducer.js +142 -0
  135. package/containers/Email/sagas.js +135 -0
  136. package/containers/Email/selectors.js +31 -0
  137. package/containers/Email/test/saga.test.js +671 -0
  138. package/containers/LanguageProvider/actions.js +17 -0
  139. package/containers/LanguageProvider/constants.js +8 -0
  140. package/containers/LanguageProvider/index.js +80 -0
  141. package/containers/LanguageProvider/reducer.js +30 -0
  142. package/containers/LanguageProvider/selectors.js +20 -0
  143. package/containers/LanguageProvider/tests/actions.test.js +19 -0
  144. package/containers/LanguageProvider/tests/index.test.js +78 -0
  145. package/containers/LanguageProvider/tests/reducer.test.js +20 -0
  146. package/containers/LanguageProvider/tests/selectors.test.js +15 -0
  147. package/containers/Line/Create/_lineCreate.scss +54 -0
  148. package/containers/Line/Create/actions.js +90 -0
  149. package/containers/Line/Create/constants.js +39 -0
  150. package/containers/Line/Create/index.js +836 -0
  151. package/containers/Line/Create/messages.js +189 -0
  152. package/containers/Line/Create/reducer.js +99 -0
  153. package/containers/Line/Create/sagas.js +121 -0
  154. package/containers/Line/Create/selectors.js +36 -0
  155. package/containers/Line/Create/tests/saga.test.js +202 -0
  156. package/containers/Line/Edit/_lineEdit.scss +35 -0
  157. package/containers/Line/Edit/actions.js +79 -0
  158. package/containers/Line/Edit/constants.js +27 -0
  159. package/containers/Line/Edit/index.js +1050 -0
  160. package/containers/Line/Edit/messages.js +177 -0
  161. package/containers/Line/Edit/reducer.js +83 -0
  162. package/containers/Line/Edit/sagas.js +80 -0
  163. package/containers/Line/Edit/selectors.js +29 -0
  164. package/containers/Line/Edit/test/saga.test.js +160 -0
  165. package/containers/Login/assets/images/capillary_logo.png +0 -0
  166. package/containers/Login/components/LoginForm/index.js +62 -0
  167. package/containers/Login/components/LoginForm/messages.js +33 -0
  168. package/containers/Login/index.js +130 -0
  169. package/containers/Login/messages.js +25 -0
  170. package/containers/Login/selectors.js +25 -0
  171. package/containers/MobilePush/Create/_mobilePushCreate.scss +39 -0
  172. package/containers/MobilePush/Create/actions.js +46 -0
  173. package/containers/MobilePush/Create/constants.js +23 -0
  174. package/containers/MobilePush/Create/index.js +2303 -0
  175. package/containers/MobilePush/Create/messages.js +269 -0
  176. package/containers/MobilePush/Create/reducer.js +70 -0
  177. package/containers/MobilePush/Create/sagas.js +74 -0
  178. package/containers/MobilePush/Create/selectors.js +28 -0
  179. package/containers/MobilePush/Create/test/saga.test.js +19 -0
  180. package/containers/MobilePush/Edit/_mobilePushCreate.scss +39 -0
  181. package/containers/MobilePush/Edit/actions.js +91 -0
  182. package/containers/MobilePush/Edit/constants.js +35 -0
  183. package/containers/MobilePush/Edit/index.js +2601 -0
  184. package/containers/MobilePush/Edit/messages.js +266 -0
  185. package/containers/MobilePush/Edit/reducer.js +112 -0
  186. package/containers/MobilePush/Edit/sagas.js +126 -0
  187. package/containers/MobilePush/Edit/selectors.js +29 -0
  188. package/containers/MobilePush/Edit/tests/saga.test.js +255 -0
  189. package/containers/NotFoundPage/index.js +25 -0
  190. package/containers/NotFoundPage/messages.js +13 -0
  191. package/containers/NotFoundPage/tests/index.test.js +17 -0
  192. package/containers/Sms/Create/_smsCreate.scss +42 -0
  193. package/containers/Sms/Create/actions.js +27 -0
  194. package/containers/Sms/Create/constants.js +16 -0
  195. package/containers/Sms/Create/index.js +1488 -0
  196. package/containers/Sms/Create/messages.js +109 -0
  197. package/containers/Sms/Create/reducer.js +41 -0
  198. package/containers/Sms/Create/sagas.js +40 -0
  199. package/containers/Sms/Create/selectors.js +28 -0
  200. package/containers/Sms/Create/test/saga.test.js +11 -0
  201. package/containers/Sms/Edit/actions.js +40 -0
  202. package/containers/Sms/Edit/constants.js +17 -0
  203. package/containers/Sms/Edit/index.js +1472 -0
  204. package/containers/Sms/Edit/messages.js +105 -0
  205. package/containers/Sms/Edit/reducer.js +50 -0
  206. package/containers/Sms/Edit/sagas.js +60 -0
  207. package/containers/Sms/Edit/selectors.js +32 -0
  208. package/containers/Sms/Edit/test/saga.test.js +13 -0
  209. package/containers/TagList/_tagList.scss +8 -0
  210. package/containers/TagList/actions.js +15 -0
  211. package/containers/TagList/constants.js +32 -0
  212. package/containers/TagList/index.js +236 -0
  213. package/containers/TagList/messages.js +13 -0
  214. package/containers/TagList/reducer.js +23 -0
  215. package/containers/TagList/sagas.js +11 -0
  216. package/containers/TagList/selectors.js +25 -0
  217. package/containers/Templates/_templates.scss +333 -0
  218. package/containers/Templates/actions.js +103 -0
  219. package/containers/Templates/constants.js +60 -0
  220. package/containers/Templates/index.js +1756 -0
  221. package/containers/Templates/messages.js +337 -0
  222. package/containers/Templates/reducer.js +142 -0
  223. package/containers/Templates/sagas.js +163 -0
  224. package/containers/Templates/selectors.js +28 -0
  225. package/containers/Templates/test/saga.test.js +241 -0
  226. package/containers/WeChat/MapTemplates/_mapTemplates.scss +8 -0
  227. package/containers/WeChat/MapTemplates/actions.js +52 -0
  228. package/containers/WeChat/MapTemplates/constants.js +28 -0
  229. package/containers/WeChat/MapTemplates/index.js +1610 -0
  230. package/containers/WeChat/MapTemplates/messages.js +157 -0
  231. package/containers/WeChat/MapTemplates/reducer.js +74 -0
  232. package/containers/WeChat/MapTemplates/sagas.js +84 -0
  233. package/containers/WeChat/MapTemplates/selectors.js +25 -0
  234. package/containers/WeChat/MapTemplates/test/saga.test.js +155 -0
  235. package/containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +57 -0
  236. package/containers/WeChat/RichmediaTemplates/Create/actions.js +36 -0
  237. package/containers/WeChat/RichmediaTemplates/Create/constants.js +15 -0
  238. package/containers/WeChat/RichmediaTemplates/Create/index.js +1071 -0
  239. package/containers/WeChat/RichmediaTemplates/Create/messages.js +165 -0
  240. package/containers/WeChat/RichmediaTemplates/Create/reducer.js +60 -0
  241. package/containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +497 -0
  242. package/containers/WeChat/RichmediaTemplates/Create/sagas.js +51 -0
  243. package/containers/WeChat/RichmediaTemplates/Create/selectors.js +37 -0
  244. package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +13 -0
  245. package/containers/WeChat/RichmediaTemplates/Edit/actions.js +20 -0
  246. package/containers/WeChat/RichmediaTemplates/Edit/constants.js +10 -0
  247. package/containers/WeChat/RichmediaTemplates/Edit/index.js +136 -0
  248. package/containers/WeChat/RichmediaTemplates/Edit/messages.js +13 -0
  249. package/containers/WeChat/RichmediaTemplates/Edit/reducer.js +28 -0
  250. package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +36 -0
  251. package/containers/WeChat/RichmediaTemplates/Edit/selectors.js +30 -0
  252. package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +12 -0
  253. package/containers/WeChat/RichmediaTemplates/View/actions.js +15 -0
  254. package/containers/WeChat/RichmediaTemplates/View/constants.js +7 -0
  255. package/containers/WeChat/RichmediaTemplates/View/index.js +47 -0
  256. package/containers/WeChat/RichmediaTemplates/View/messages.js +21 -0
  257. package/containers/WeChat/RichmediaTemplates/View/reducer.js +23 -0
  258. package/containers/WeChat/RichmediaTemplates/View/sagas.js +11 -0
  259. package/containers/WeChat/RichmediaTemplates/View/selectors.js +25 -0
  260. package/index.js +2 -4
  261. package/package.json +1 -1
  262. package/routes.js +202 -136
  263. package/services/getSchema.js +1 -1
  264. package/services/localStorageApi.js +0 -1
  265. package/tests/i18n.test.js +1 -1
  266. package/utils/asyncInjectors.js +78 -0
  267. package/utils/authWrapper.js +1 -1
  268. package/utils/callNativeEvent.js +16 -0
  269. package/utils/checkStore.js +21 -0
  270. package/utils/common.js +2 -2
  271. package/utils/customAuthWrapper.js +62 -0
  272. package/utils/customConnectedAuthWrapper.js +26 -0
  273. package/utils/tagValidations.js +1 -1
  274. package/utils/tests/authWrapper.test.js +1 -1
  275. package/utils/tests/checkStore.test.js +1 -1
  276. package/utils/tests/customAuth.test.js +1 -1
  277. package/utils/transformerUtils.js +1 -1
  278. package/v2Components/CapTagList/index.js +14 -9
  279. package/v2Components/Carousel/style.scss +1 -1
  280. package/v2Components/EmailMobilePreview/index.js +2 -2
  281. package/v2Components/FormBuilder/index.js +2 -2
  282. package/v2Components/NavigationBar/saga.js +4 -2
  283. package/v2Components/NavigationBar/tests/saga.test.js +59 -20
  284. package/v2Components/TemplatePreview/index.js +1 -2
  285. package/v2Containers/Cap/tests/saga.test.js +1 -1
  286. package/v2Containers/Email/index.js +4 -16
  287. package/v2Containers/FTP/index.js +1 -1
  288. package/v2Containers/Line/Container/Text/index.js +1 -1
  289. package/v2Containers/Sms/Create/index.js +1 -1
  290. package/v2Containers/Sms/Edit/index.js +1 -1
  291. package/v2Containers/TagList/index.js +1 -1
  292. package/v2Containers/TagList/utils.js +1 -1
  293. package/v2Containers/Templates/index.js +1 -1
  294. package/v2Containers/Templates/sagas.js +1 -1
  295. package/constants/unified.js +0 -189
@@ -30,8 +30,15 @@ import { FormattedMessage, injectIntl, intlShape } from 'react-intl';
30
30
  import { createStructuredSelector } from 'reselect';
31
31
  import messages from './messages';
32
32
  import { makeSelectLoyaltyPromotionDisplay } from '../../v2Containers/Cap/selectors';
33
- import { CARD_RELATED_TAGS, HOSPITALITY_RELATED_TAGS, CUSTOMER_BARCODE_TAG, GET_TRANSLATION_MAPPED ,JAPANESE_HELP_TEXT, TAG_TRANSLATION_DOC} from '../../constants/unified';
33
+ import { CARD_RELATED_TAGS, HOSPITALITY_RELATED_TAGS, CUSTOMER_BARCODE_TAG } from '../../containers/App/constants';
34
34
  import { hasCardBasedScope, hasCustomerBarcodeFeatureEnabled, hasHospitalityBasedScope } from '../../utils/common';
35
+
36
+ import {
37
+ GET_TRANSLATION_MAPPED,
38
+ JAPANESE_HELP_TEXT,
39
+ TAG_TRANSLATION_DOC,
40
+ STRING,
41
+ } from "../../containers/TagList/constants";
35
42
  import { EMAIL, JP_LOCALE_HIDE_FEATURE, LOYALTY } from '../../v2Containers/App/constants';
36
43
  import { hidingDateTagsForJpLocale } from '../../v2Containers/TagList/utils';
37
44
 
@@ -125,10 +132,9 @@ class CapTagList extends React.Component { // eslint-disable-line react/prefer-s
125
132
  getSearchedExpandedKeys(tags, value = '') {
126
133
  let list = [];
127
134
  _.forEach(tags, (val = {}, key) => {
128
- const tagName =
129
- typeof val?.name === 'string'
130
- ? _.toLower(_.get(val, "name", ""))
131
- : _.toLower(_.get(val, "name.props.defaultMessage", ""));
135
+ const tagName = typeof val?.name === STRING
136
+ ? _.toLower(_.get(val, "name", ""))
137
+ : _.toLower(_.get(val, "name.props.defaultMessage", ""));
132
138
  const tagNameWithoutUnderscore = tagName.replace(/_/g, " ");
133
139
  const searchStringLower = _.toLower(value);
134
140
  if (_.has(val, "subtags")) {
@@ -261,10 +267,9 @@ class CapTagList extends React.Component { // eslint-disable-line react/prefer-s
261
267
  supportedTagsString += `${supportedTag} ,`;
262
268
  });
263
269
  supportedTagsString = supportedTagsString.replace(/,\s*$/, "");
264
- const tagName =
265
- typeof val?.name === 'string'
266
- ? _.toLower(_.get(val, "name", ""))
267
- : _.toLower(_.get(val, "name.props.defaultMessage", ""));
270
+ const tagName = typeof val?.name === STRING
271
+ ? _.toLower(_.get(val, "name", ""))
272
+ : _.toLower(_.get(val, "name.props.defaultMessage", ""));
268
273
  const tagNameWithoutUnderscore = tagName.replace(/_/g, " ");
269
274
  const searchStringLower = _.toLower(searchString);
270
275
  const tagContainsSearchedString = searchStringLower
@@ -26,7 +26,7 @@
26
26
  text-align: center;
27
27
  width: 120px !important;
28
28
  border-radius: 12px;
29
- background-color: $CAP_G09;
29
+ background-color: $CAP_G09,
30
30
  }
31
31
 
32
32
  .ant-carousel .slick-slide {
@@ -19,8 +19,8 @@ import messages from '../EmailPreviewV2/messages';
19
19
  import './index.scss';
20
20
  import mobileBody from '../../assets/DeviceForEmail.png';
21
21
  import { iframePreviewAdjustWidth, removeLinksFromHtmlContent } from './../../utils/common';
22
- import {selectTemplateContent} from '../../v2Containers/Templates/selectors';
23
- import * as templateActions from '../../v2Containers/Templates/actions';
22
+ import {selectTemplateContent} from '../../containers/Templates/selectors';
23
+ import * as templateActions from '../../containers/Templates/actions';
24
24
 
25
25
  const deviceAspectRatio = {
26
26
  mobile: {
@@ -54,9 +54,9 @@ import { SMS, MOBILE_PUSH, LINE, ENABLE_AI_SUGGESTIONS,AI_CONTENT_BOT_DISABLED,
54
54
  import globalMessages from '../../v2Containers/Cap/messages';
55
55
  import { convert } from 'html-to-text';
56
56
  import { OUTBOUND } from './constants';
57
- import { GET_TRANSLATION_MAPPED } from '../../constants/unified';
57
+ import { GET_TRANSLATION_MAPPED } from '../../containers/TagList/constants';
58
58
  import moment from 'moment';
59
- import { CUSTOMER_BARCODE_TAG , COPY_OF, ENTRY_TRIGGER_TAG_REGEX} from '../../constants/unified';
59
+ import { CUSTOMER_BARCODE_TAG , COPY_OF, ENTRY_TRIGGER_TAG_REGEX} from '../../containers/App/constants';
60
60
  import { REQUEST } from '../../v2Containers/Cap/constants'
61
61
  import { hasLiquidSupportFeature, isEmailUnsubscribeTagMandatory } from '../../utils/common';
62
62
  import { isUrl } from '../../v2Containers/Line/Container/Wrapper/utils';
@@ -6,13 +6,15 @@ export default [
6
6
  {
7
7
  key: 'navigation',
8
8
  saga: function* navigationConfigSaga() {
9
- yield all(CapCollapsibleLeftNavigationSagas.map(saga => saga.call()));
9
+ yield all(CapCollapsibleLeftNavigationSagas.map((saga) => saga.call()));
10
10
  },
11
11
  },
12
12
  {
13
13
  key: 'analyticsBotSaga',
14
14
  saga: function* analyticsBotSagaFn() {
15
- yield all(analyticsBotSaga.map(saga => saga.call()));
15
+ if (analyticsBotSaga && Array.isArray(analyticsBotSaga)) {
16
+ yield all(analyticsBotSaga.map((saga) => saga.call()));
17
+ }
16
18
  },
17
19
  },
18
20
  ];
@@ -1,34 +1,73 @@
1
1
  import { expectSaga } from "redux-saga-test-plan";
2
- import rootSagas from "../saga";
3
2
  import * as matchers from "redux-saga-test-plan/matchers";
4
3
  import CapCollapsibleLeftNavigationSagas from '@capillarytech/cap-ui-library/CapCollapsibleLeftNavigation/saga';
5
- import { analyticsBotSaga } from "@capillarytech/cap-ui-library/CapAskAira";
4
+ import * as CapAskAira from '@capillarytech/cap-ui-library/CapAskAira';
5
+ import rootSagas from "../saga";
6
6
 
7
7
  describe("analyticsBotSagaFn", () => {
8
- test.concurrent("should call all analytics bot sagas", () => {
9
- const { saga: analyticsBotSagaFn } = rootSagas.find(
10
- s => s.key === "analyticsBotSaga"
11
- );
8
+ const { saga: analyticsBotSagaFn } = rootSagas.find(
9
+ (s) => s.key === "analyticsBotSaga"
10
+ );
11
+
12
+ beforeEach(() => {
13
+ // Reset all mocks before each test
14
+ jest.resetModules();
15
+ jest.clearAllMocks();
16
+ });
17
+
18
+ test("should handle when analyticsBotSaga is valid array", () => {
19
+ // Setup valid array case
20
+ const mockSagas = [
21
+ { call: jest.fn() },
22
+ { call: jest.fn() },
23
+ ];
24
+ Object.defineProperty(CapAskAira, 'analyticsBotSaga', {
25
+ value: mockSagas,
26
+ configurable: true,
27
+ });
28
+
12
29
  return expectSaga(analyticsBotSagaFn)
13
30
  .provide([
14
- [matchers.call.fn(analyticsBotSaga[0]), undefined],
15
- [matchers.call.fn(analyticsBotSaga[1]), undefined]
31
+ [matchers.call.fn(mockSagas[0].call), undefined],
32
+ [matchers.call.fn(mockSagas[1].call), undefined],
16
33
  ])
17
34
  .run();
18
35
  });
36
+
37
+ test("should handle when analyticsBotSaga is undefined", () => {
38
+ // Setup undefined case
39
+ Object.defineProperty(CapAskAira, 'analyticsBotSaga', {
40
+ value: undefined,
41
+ configurable: true,
42
+ });
43
+
44
+ return expectSaga(analyticsBotSagaFn)
45
+ .run();
46
+ });
47
+
48
+ test("should handle when analyticsBotSaga is not an array", () => {
49
+ // Setup non-array case
50
+ Object.defineProperty(CapAskAira, 'analyticsBotSaga', {
51
+ value: {},
52
+ configurable: true,
53
+ });
54
+
55
+ return expectSaga(analyticsBotSagaFn)
56
+ .run();
57
+ });
19
58
  });
20
59
 
21
60
  describe("navigationConfigSaga", () => {
22
- it.concurrent("should call all analytics bot sagas", () => {
23
- const { saga: navigationConfigSaga } = rootSagas.find(
24
- s => s.key === "navigation"
25
- );
26
-
27
- return expectSaga(navigationConfigSaga)
28
- .provide([
29
- [matchers.call.fn(CapCollapsibleLeftNavigationSagas[0]), undefined],
30
- [matchers.call.fn(CapCollapsibleLeftNavigationSagas[1]), undefined]
31
- ])
32
- .run();
33
- });
61
+ it.concurrent("should call all analytics bot sagas", () => {
62
+ const { saga: navigationConfigSaga } = rootSagas.find(
63
+ (s) => s.key === "navigation"
64
+ );
65
+
66
+ return expectSaga(navigationConfigSaga)
67
+ .provide([
68
+ [matchers.call.fn(CapCollapsibleLeftNavigationSagas[0]), undefined],
69
+ [matchers.call.fn(CapCollapsibleLeftNavigationSagas[1]), undefined],
70
+ ])
71
+ .run();
34
72
  });
73
+ });
@@ -32,11 +32,10 @@ import {
32
32
  RCS,
33
33
  ZALO,
34
34
  INAPP,
35
- VIBER,
36
- FACEBOOK,
37
35
  MOBILE_PUSH
38
36
  } from '../../v2Containers/CreativesContainer/constants';
39
37
  import Carousel from '../Carousel';
38
+ import { VIBER, FACEBOOK } from '../../v2Containers/App/constants';
40
39
  import whatsappMobileAndroid from './assets/images/whatsapp_mobile_android.svg';
41
40
  import inAppMobileAndroidModal from './assets/images/inapp_mobile_android_modal.svg';
42
41
  import inAppMobileAndroidTop from './assets/images/inapp_mobile_android_top.svg';
@@ -36,7 +36,7 @@ import {
36
36
  CREATE_CENTRAL_COMMS_META_ID_REQUEST,
37
37
  } from '../constants';
38
38
  import { callback, error, error2, videoConfigData } from '../../mockdata';
39
- import { LOGOUT_FAILURE, LOGOUT_SUCCESS } from '../../../constants/unified';
39
+ import { LOGOUT_FAILURE, LOGOUT_REQUEST, LOGOUT_SUCCESS } from '../../../containers/Cap/constants';
40
40
 
41
41
 
42
42
 
@@ -37,9 +37,9 @@ import { FONT_COLOR_05 } from '@capillarytech/cap-ui-library/styled/variables';
37
37
  import { gtmPush } from '../../utils/gtmTrackers';
38
38
  const {CapCustomCardList} = CapCustomCard;
39
39
  import {storeS3FileSizeDetails, CREATIVES_S3_ASSET_FILESIZES} from '../../utils/cdnTransformation';
40
- import { CUSTOMER_BARCODE_TAG } from '../../constants/unified';
41
40
 
42
41
  import { containsBase64Images } from '../../utils/content';
42
+ import { CUSTOMER_BARCODE_TAG } from '../../containers/App/constants';
43
43
  import injectReducer from '../../utils/injectReducer';
44
44
  import v2EmailReducer from './reducer';
45
45
  import { v2EmailSagas } from './sagas';
@@ -2696,19 +2696,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
2696
2696
  const previewSubject = formData['template-subject'];
2697
2697
  const testOrPreviewProps = {channel: EMAIL, content: previewContent, subject: previewSubject};
2698
2698
 
2699
- // Call our handler instead of the props methods to set the flag
2700
- const handleClick = () => {
2701
- if (action === 'TEST') {
2702
- // For test action, open our Test & Preview slidebox
2703
- this.handleTestAndPreview();
2704
- } else {
2705
- // For preview action, call the original method
2706
- const { onPreviewContentClicked } = this.props;
2707
- if (onPreviewContentClicked) {
2708
- onPreviewContentClicked(testOrPreviewProps);
2709
- }
2710
- }
2711
- };
2699
+ const { onPreviewContentClicked, onTestContentClicked } = this.props;
2712
2700
 
2713
2701
  return (
2714
2702
  <CapButton
@@ -2718,7 +2706,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
2718
2706
  padding: '0 6px',
2719
2707
  }}
2720
2708
  type="flat"
2721
- onClick={handleClick}
2709
+ onClick={() => action === 'PREVIEW' ? onPreviewContentClicked(testOrPreviewProps) : onTestContentClicked(testOrPreviewProps)}
2722
2710
  >
2723
2711
  <CapIcon type={action === 'PREVIEW' ? "eye" : "lab"}/>
2724
2712
  {action === 'PREVIEW' ? <FormattedMessage {...messages.preview} /> : <FormattedMessage {...messages.testMessage} />}
@@ -2773,7 +2761,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
2773
2761
  tags = this.props.supportedTags;
2774
2762
  }
2775
2763
  const { showImageSelectionBox = false } = this.state;
2776
- const showTestAndPreview = !showImageSelectionBox && getDefaultTags === 'outbound';
2764
+ const showTestAndPreview = !showImageSelectionBox && getDefaultTags === 'outbound' && !this.props.showTestAndPreviewSlidebox;
2777
2765
  return (
2778
2766
  <div className="email-container">
2779
2767
  <CapSpin spinning={isLoading}>
@@ -29,7 +29,7 @@ import { makeSelectLoyaltyPromotionDisplay, setInjectedTags } from '../Cap/selec
29
29
  import withCreatives from '../../hoc/withCreatives';
30
30
  import messages from './messages';
31
31
  import './_FTP.scss';
32
- import * as globalActions from '../Cap/actions';
32
+ import * as globalActions from '../../containers/Cap/actions';
33
33
  import { TagList } from '../TagList';
34
34
  import { NO_COMMUNICATION, CREATE, EDIT, PREVIEW } from '../App/constants';
35
35
  import { getTreeStructuredTags } from '../../utils/common';
@@ -17,7 +17,7 @@ import withStyles from '../../../../hoc/withStyles';
17
17
  import globalMessages from '../../../Cap/messages';
18
18
  import { validateTags } from '../../../../utils/tagValidations';
19
19
  import moment from 'moment';
20
- import { GET_TRANSLATION_MAPPED } from '../../../../constants/unified';
20
+ import { GET_TRANSLATION_MAPPED } from '../../../../containers/TagList/constants';
21
21
 
22
22
  const { TextArea } = CapInput;
23
23
  const {CapCustomCardList} = CapCustomCard;
@@ -24,7 +24,7 @@ import {getMessageObject} from '../../../utils/messageUtils';
24
24
  import { gtmPush } from '../../../utils/gtmTrackers';
25
25
  import * as creativesContainerActions from '../../CreativesContainer/actions';
26
26
  import {SMS} from '../../CreativesContainer/constants';
27
- // import callNativeEvent from '../../../legacy/callNativeEvent';
27
+ // import callNativeEvent from '../../../utils/callNativeEvent';
28
28
  import {showError} from '../commonMethods';
29
29
  import withCreatives from '../../../hoc/withCreatives';
30
30
  import { GA } from '@capillarytech/cap-ui-utils';
@@ -24,7 +24,7 @@ import messages from './messages';
24
24
  import {getMessageObject} from '../../../utils/messageUtils';
25
25
  import { gtmPush } from '../../../utils/gtmTrackers';
26
26
  import * as creativesContainerActions from '../../CreativesContainer/actions';
27
- // import callNativeEvent from '../../../legacy/callNativeEvent';
27
+ // import callNativeEvent from '../../../utils/callNativeEvent';
28
28
  import {showError} from '../commonMethods';
29
29
  import withCreatives from '../../../hoc/withCreatives';
30
30
  import { EDIT, TRACK_EDIT_SMS } from '../../App/constants';
@@ -28,7 +28,7 @@ import {
28
28
  } from '../../utils/common';
29
29
  import {
30
30
  GIFT_VOUCHER_RELATED_TAGS, PROMO_ENGINE_RELATED_TAGS, BADGES_RELATED_TAGS, BADGES_ENROLL, BADGES_ISSUE,
31
- } from '../../constants/unified';
31
+ } from '../../containers/App/constants';
32
32
 
33
33
  const {TreeNode} = Tree;
34
34
 
@@ -1,4 +1,4 @@
1
- import { JAPANESE_HIDE_DATE_TAGS } from "../../constants/unified";
1
+ import { JAPANESE_HIDE_DATE_TAGS } from "../../containers/TagList/constants";
2
2
 
3
3
 
4
4
  export const hidingDateTagsForJpLocale = (hideDateTagsForJpLocale, val, list, value) => {
@@ -105,7 +105,7 @@ import {
105
105
  CREATE,
106
106
  } from '../App/constants';
107
107
  import {MAX_WHATSAPP_TEMPLATES, WARNING_WHATSAPP_TEMPLATES , ACCOUNT_MAPPING_ON_CHANNEL} from './constants';
108
- import { COPY_OF } from '../../constants/unified';
108
+ import { COPY_OF } from '../../containers/App/constants';
109
109
  import {
110
110
  STATUS_OPTIONS,
111
111
  CATEGORY,
@@ -6,7 +6,7 @@ import get from 'lodash/get';
6
6
  import * as Api from '../../services/api';
7
7
  import * as types from './constants';
8
8
  import { saveCdnConfigs, removeAllCdnLocalStorageItems } from '../../utils/cdnTransformation';
9
- import { COPY_OF } from '../../constants/unified';
9
+ import { COPY_OF } from '../../containers/App/constants';
10
10
  import { ZALO_TEMPLATE_INFO_REQUEST } from '../Zalo/constants';
11
11
  import { getTemplateInfoById } from '../Zalo/saga';
12
12
  import { watchCreateTemplate } from '../MobilePushNew/sagas';
@@ -1,189 +0,0 @@
1
- // Unified constants for cap-creatives-ui
2
- // Consolidated from legacy and v2 constants files
3
-
4
- // --- Channel Constants ---
5
- export const EMAIL = 'email';
6
- export const SMS = 'sms';
7
- export const MOBILE_PUSH = 'mobilepush';
8
- export const WECHAT = 'wechat';
9
- export const LINE = 'line';
10
- export const WHATSAPP = 'whatsapp';
11
- export const VIBER = 'viber';
12
- export const FACEBOOK = 'facebook';
13
- export const RCS = 'rcs';
14
- export const ZALO = 'zalo';
15
- export const INAPP = 'inapp';
16
- export const ASSETS = 'assets';
17
- export const TRANSACTION = 'transaction';
18
- export const PUSH = 'push';
19
- export const EMF = 'emf';
20
- export const VENENO = 'veneno';
21
- export const TEXT = 'text';
22
- export const IOS = 'ios';
23
- export const ANDROID = 'android';
24
- export const EXTERNAL_URL = 'external_url';
25
- export const BIG_TEXT = 'big_text';
26
-
27
- // --- App State Constants ---
28
- export const CREATE = 'create';
29
- export const EDIT = 'edit';
30
- export const PREVIEW = 'preview';
31
- export const CREATIVES = 'creatives';
32
- export const LOYALTY = 'loyalty';
33
- export const CREATIVES_UI_VIEW = 'CREATIVES_UI_VIEW';
34
- export const DEFAULT = 'default';
35
- export const DEFAULT_MODULE = 'creatives';
36
- export const DEFAULT_LOCALE = 'en';
37
-
38
- // --- Feature Flags & Validation ---
39
- export const STORE2DOOR_PLUS_ENABLED = 'STORE2DOOR_PLUS_ENABLED';
40
- export const TRAI_DLT = 'TRAI_DLT';
41
- export const CARD_BASED_SCOPE = 'CARD_BASED_SCOPE';
42
- export const HOSPITALITY_BASED_SCOPE = 'HOSPITALITY_BASED_SCOPE';
43
- export const REGISTRATION_CUSTOM_FIELD = 'Registration custom fields';
44
- export const GIFT_CARDS = 'GIFT_CARDS';
45
- export const PROMO_ENGINE = 'PROMO_ENGINE';
46
- export const LIQUID_SUPPORT = 'ENABLE_LIQUID_SUPPORT';
47
- export const ENABLE_NEW_MPUSH = 'ENABLE_NEW_MPUSH';
48
- export const CUSTOM_TAG = 'CustomTagMessage';
49
- export const CUSTOMER_EXTENDED_FIELD = 'Customer extended fields';
50
- export const EXTENDED_TAG = 'ExtendedTagMessage';
51
- export const BADGES_UI_ENABLED = 'BADGES_UI_ENABLED';
52
- export const JP_LOCALE_HIDE_FEATURE = 'JP_LOCALE_HIDE_FEATURE';
53
- export const ENABLE_WECHAT = 'ENABLE_WECHAT';
54
- export const ENABLE_CUSTOMER_BARCODE_TAG = 'ENABLE_CUSTOMER_BARCODE_TAG';
55
- export const EMAIL_UNSUBSCRIBE_TAG_MANDATORY = 'EMAIL_UNSUBSCRIBE_TAG_MANDATORY';
56
- export const ENABLE_AI_SUGGESTIONS = 'ENABLE_AI_SUGGESTIONS';
57
- export const AI_CONTENT_BOT_DISABLED = 'AI_CONTENT_BOT_DISABLED';
58
- export const AI_DOCUMENTATION_BOT_ENABLED = 'AI_DOCUMENTATION_BOT_ENABLED';
59
- export const ENABLE_NEW_LEFT_NAVIGATION = 'ENABLE_NEW_LEFT_NAVIGATION';
60
- export const ENABLE_PRODUCT_SUPPORT_VIDEOS = 'ENABLE_PRODUCT_SUPPORT_VIDEOS';
61
- export const EMBEDDED = 'embedded';
62
- // --- Tag/Validation Constants ---
63
- export const CARD_RELATED_TAGS = [
64
- 'card_series',
65
- 'card_number',
66
- 'card_issue_date',
67
- 'card_status',
68
- 'card_series_name',
69
- 'card_name',
70
- ];
71
- export const HOSPITALITY_RELATED_TAGS = [
72
- 'hospitality_series',
73
- 'tax_Code',
74
- 'roomTypeCode',
75
- 'bookingChannel',
76
- 'hotelReservationID_ResID_Type',
77
- 'lastModifyDateTime',
78
- 'guestCounts_IsPerRoom',
79
- 'ratePlan_RatePlanCode',
80
- 'resID_Value',
81
- 'numberOfUnits',
82
- 'rateTimeUnit',
83
- 'resStatus',
84
- 'timeSpan_End',
85
- 'roomStay_MarketCode',
86
- 'createDateTime',
87
- 'amount',
88
- 'timeSpan_Start',
89
- 'email',
90
- 'resID_Source',
91
- ];
92
- export const GIFT_VOUCHER_RELATED_TAGS = [
93
- 'gift_voucher',
94
- 'gift_voucher_expiry_date.FORMAT_1',
95
- 'gift_voucher_expiry_date.FORMAT_2',
96
- 'gift_voucher_expiry_date.FORMAT_3',
97
- 'gift_voucher_expiry_date.FORMAT_4',
98
- 'gift_voucher_expiry_date.FORMAT_5',
99
- 'gift_voucher_expiry_date.FORMAT_6',
100
- 'gift_voucher_expiry_date.FORMAT_7',
101
- 'gift_voucher_expiry_date.FORMAT_8',
102
- 'gift_voucher_expiry_date',
103
- ];
104
- export const PROMO_ENGINE_RELATED_TAGS = [
105
- 'promotion',
106
- 'promotion_expiry_date.FORMAT_1',
107
- 'promotion_expiry_date.FORMAT_2',
108
- 'promotion_expiry_date.FORMAT_3',
109
- 'promotion_expiry_date.FORMAT_4',
110
- 'promotion_expiry_date.FORMAT_5',
111
- 'promotion_expiry_date.FORMAT_6',
112
- 'promotion_expiry_date.FORMAT_7',
113
- 'promotion_expiry_date.FORMAT_8',
114
- 'promotion_expiry_date',
115
- ];
116
- export const BADGES_RELATED_TAGS = [
117
- 'Badge_expiry_date',
118
- 'badges_issue_expiry_date',
119
- 'badge_expiry_mm_slash_dd_slash_yyyy',
120
- 'badge_expiry_dd_slash_mm_slash_yyyy',
121
- 'badge_expiry_yyyy_hyphen_mm_hyphen_dd',
122
- 'badge_expiry_mm_slash_dd_slash_yy',
123
- 'badge_expiry_dd_space_Mon_space_yyyy',
124
- 'badge_expiry_Day_comma_space_Mon_space_dd_comma_space_yy',
125
- 'badge_expiry_Dd_dot_mm_dot_yy',
126
- 'badge_expiry_dd_space_Mon',
127
- 'Days_until_expiry',
128
- 'badges_enroll_expiry_date.FORMAT_1',
129
- 'badges_enroll_expiry_date.FORMAT_2',
130
- 'badges_enroll_expiry_date.FORMAT_3',
131
- 'badges_enroll_expiry_date.FORMAT_4',
132
- 'badges_enroll_expiry_date.FORMAT_5',
133
- 'badges_enroll_expiry_date.FORMAT_6',
134
- 'badges_enroll_expiry_date.FORMAT_7',
135
- 'badges_enroll_expiry_date.FORMAT_8',
136
- 'badges_enroll_expiring_in_days',
137
- 'badges_issue_expiry_date.FORMAT_1',
138
- 'badges_issue_expiry_date.FORMAT_2',
139
- 'badges_issue_expiry_date.FORMAT_3',
140
- 'badges_issue_expiry_date.FORMAT_4',
141
- 'badges_issue_expiry_date.FORMAT_5',
142
- 'badges_issue_expiry_date.FORMAT_6',
143
- 'badges_issue_expiry_date.FORMAT_7',
144
- 'badges_issue_expiry_date.FORMAT_8',
145
- 'badges_issue_expiring_in_days',
146
- ];
147
- export const BADGES_ENROLL = 'BADGES_ENROLL';
148
- export const BADGES_ISSUE = 'BADGES_ISSUE';
149
- export const CUSTOMER_BARCODE_TAG = 'customer_barcode';
150
- export const COPY_OF = 'Copy of';
151
- export const ENTRY_TRIGGER_TAG_REGEX = /\bentryTrigger\.\w+(?:\.\w+)?(?:\(\w+\))?/g;
152
-
153
- export const GET_TRANSLATION_MAPPED = {
154
- 'en': 'en-US',
155
- 'zh-cn': 'zh',
156
- 'zh': 'zh',
157
- 'en-US': 'en-US',
158
- 'ja-JP': 'ja-JP',
159
- };
160
-
161
- export const JAPANESE_HIDE_DATE_TAGS = [
162
- "mm/dd/yyyy",
163
- "dd/mm/yyyy",
164
- "mm/dd/yy",
165
- "dd Mon yyyy",
166
- "Day, Mon dd, yy",
167
- "dd.mm.yy",
168
- "dd Mon",
169
- "dd/m/yyyy",
170
- ];
171
-
172
- export const LIQUID_SUPPORTED_CHANNELS = [EMAIL, SMS, MOBILE_PUSH, INAPP];
173
-
174
- // --- Line Constants ---
175
- export const STICKER = 'sticker';
176
- export const IMAGE = 'image';
177
- export const IMAGE_MAP = 'imagemap';
178
- export const IMAGE_CAROUSEL = 'image_carousel';
179
- export const TEMPLATE = 'flex';
180
- export const VIDEO = 'video';
181
-
182
-
183
- export const LOGOUT_REQUEST = 'cap/LOGOUT_REQUEST';
184
- export const LOGOUT_SUCCESS = 'cap/LOGOUT_SUCCESS';
185
- export const LOGOUT_FAILURE = 'cap/LOGOUT_FAILURE';
186
-
187
- export const JAPANESE_HELP_TEXT = 'ヘルプ :トークンの定義';
188
-
189
- export const TAG_TRANSLATION_DOC = 'https://docs.capillarytech.com/docs/tags-translation';