awing-library 2.1.135-beta → 2.1.135

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 (216) hide show
  1. package/lib/ACM-AXN/Campaign/Container.js +52 -54
  2. package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
  3. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +8 -1
  4. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +27 -3
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +17 -0
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +121 -0
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +1 -0
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +219 -0
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.d.ts +2 -0
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.js +306 -0
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.d.ts +1 -0
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.js +230 -0
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +1 -0
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +123 -0
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.d.ts +1 -0
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +253 -0
  17. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +2 -2
  18. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.d.ts +1 -1
  19. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.js +47 -78
  20. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +6 -1
  21. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +3 -22
  22. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +2 -1
  23. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +2 -3
  24. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +22 -42
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +317 -104
  26. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +1 -1
  27. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
  28. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +119 -54
  29. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
  30. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
  31. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +8 -6
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +1 -1
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +4 -7
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +1 -1
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +5 -2
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +2 -2
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts +8 -0
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js +47 -0
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +52 -6
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.d.ts +1 -0
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.js +3 -1
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.d.ts +4 -3
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +13 -7
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +69 -124
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +8 -3
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  64. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  65. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  66. package/lib/ACM-AXN/Campaign/Enum.d.ts +23 -4
  67. package/lib/ACM-AXN/Campaign/Enum.js +30 -10
  68. package/lib/ACM-AXN/Campaign/Types.d.ts +52 -6
  69. package/lib/ACM-AXN/Campaign/Utils.d.ts +5 -0
  70. package/lib/ACM-AXN/Campaign/Utils.js +29 -2
  71. package/lib/ACM-AXN/Campaign/index.js +2 -2
  72. package/lib/ACM-AXN/CampaignPlan/Container.js +21 -10
  73. package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
  74. package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
  75. package/lib/ACM-AXN/CampaignPlan/Detail.js +5 -7
  76. package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
  77. package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
  78. package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
  79. package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
  80. package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
  81. package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
  82. package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
  83. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  84. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  85. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +7 -5
  86. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  87. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  88. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  89. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  90. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  91. package/lib/ACM-AXN/Common/Constant.js +2 -0
  92. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  93. package/lib/ACM-AXN/Common/Enum.js +19 -4
  94. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  95. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  96. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  97. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  98. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  99. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  100. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  101. package/lib/ACM-AXN/Page/Constant.js +2 -0
  102. package/lib/ACM-AXN/Page/Container.js +3 -3
  103. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  104. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  105. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  106. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  107. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  108. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  109. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  110. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  111. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -44
  112. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  113. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  114. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  115. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +10 -9
  116. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +19 -4
  117. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  118. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  119. package/lib/ACM-AXN/Page/enums.js +7 -1
  120. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  121. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  122. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  123. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  124. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  125. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  126. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  127. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  131. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  132. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  133. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  134. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  135. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  136. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +13 -10
  137. package/lib/ACM-AXN/Statistics/ControlPanel.js +16 -4
  138. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  139. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  140. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  141. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +3 -3
  142. package/lib/ACM-AXN/Template/Container.js +1 -1
  143. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  146. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  147. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  148. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  149. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  150. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  151. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  152. package/lib/ACM-AXN/Template/Import.js +2 -2
  153. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  154. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  155. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  156. package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +23 -11
  157. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  158. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  159. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +46 -160
  160. package/lib/ACM-AXN/ViewTemplate/common.js +2 -3
  161. package/lib/ACM-AXN/ViewTemplate/container.js +23 -24
  162. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  163. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  164. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  165. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  166. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  167. package/lib/ACM-AXN/index.d.ts +1 -0
  168. package/lib/ACM-AXN/index.js +1 -0
  169. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  170. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  171. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  172. package/lib/AWING/Chart/BarLineComponent.js +20 -25
  173. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  174. package/lib/AWING/Chart/PieComponent.js +16 -16
  175. package/lib/AWING/Chart/Styles.js +51 -16
  176. package/lib/AWING/DataForm/DataInput.js +63 -20
  177. package/lib/AWING/DataForm/interface.d.ts +1 -0
  178. package/lib/AWING/DataGrid/index.js +8 -13
  179. package/lib/AWING/DateRangePicker/component.js +55 -30
  180. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  181. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  182. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  183. package/lib/AWING/Form/useForm.js +3 -2
  184. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  185. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  186. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  187. package/lib/AWING/GoogleMap/index.js +41 -0
  188. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  189. package/lib/AWING/GoogleMap/interface.js +2 -0
  190. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  191. package/lib/AWING/GoogleMap/utils.js +135 -0
  192. package/lib/AWING/GroupTable/GroupTable.js +4 -5
  193. package/lib/AWING/GroupTable/component.d.ts +1 -0
  194. package/lib/AWING/GroupTable/component.js +2 -2
  195. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  196. package/lib/AWING/NumberFormat/index.js +2 -2
  197. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  198. package/lib/AWING/Pagination/index.js +11 -3
  199. package/lib/AWING/index.d.ts +1 -0
  200. package/lib/AWING/index.js +1 -0
  201. package/lib/AWING/ultis/validation.d.ts +1 -0
  202. package/lib/AWING/ultis/validation.js +21 -5
  203. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  204. package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
  205. package/lib/Commons/Hooks/usePath.js +3 -3
  206. package/lib/Utils/Helpers.d.ts +3 -2
  207. package/lib/Utils/Helpers.js +48 -8
  208. package/lib/i18n.js +14 -2
  209. package/lib/translate/en/translation.json +112 -71
  210. package/lib/translate/id/translation.json +870 -0
  211. package/lib/translate/ja/translation.json +870 -0
  212. package/lib/translate/th/translation.json +870 -0
  213. package/lib/translate/vi/translation.json +71 -30
  214. package/package.json +131 -126
  215. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  216. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("react/jsx-runtime");
18
+ var recoil_1 = require("recoil");
19
+ var Recoils_1 = require("../Recoils");
20
+ var react_1 = require("react");
21
+ var Hooks_1 = __importDefault(require("../../../../ACM-AXN/Campaign/Hooks"));
22
+ var Constant_1 = require("../../../../ACM-AXN/Common/Constant");
23
+ var lodash_1 = __importDefault(require("lodash"));
24
+ var Helpers_1 = require("../../../../Utils/Helpers");
25
+ var Router_1 = require("../../../../AWING/Router");
26
+ var atoms_1 = require("../TabSubCampaign/atoms");
27
+ var RunInBackground = function () {
28
+ var campaignId = (0, Router_1.useParams)().campaignId;
29
+ var subCampaigns = (0, recoil_1.useRecoilValue)(Recoils_1.campaignGroupsState);
30
+ var subCampaignDetailValid = (0, recoil_1.useRecoilValue)(atoms_1.subCampaignDetailValidState);
31
+ var subCampaignAdsValid = (0, recoil_1.useRecoilValue)(atoms_1.subCampaignAdsValidState);
32
+ var _a = (0, Hooks_1.default)(), service = _a.service, defaultDomainId = _a.domainId;
33
+ var _b = (0, recoil_1.useRecoilState)(Recoils_1.campaignApprovalState), campaignApproval = _b[0], setCampaignApproval = _b[1];
34
+ var _c = (0, recoil_1.useRecoilState)(Recoils_1.campaignApprovalTableState), campaignApprovalTable = _c[0], setCampaignApprovalTable = _c[1];
35
+ var _d = (0, react_1.useState)([]), domains = _d[0], setDomains = _d[1];
36
+ var _e = (0, react_1.useState)(true), isInit = _e[0], setIsInit = _e[1];
37
+ var oldCampaignApproval = (0, react_1.useRef)([]);
38
+ var prevDomainIds = (0, react_1.useRef)([]);
39
+ var domainIds = (0, react_1.useMemo)(function () {
40
+ var ads = subCampaigns.flatMap(function (sub) { return sub.ads; });
41
+ return lodash_1.default.uniq(ads
42
+ .filter(function (ad) { return ad.places; })
43
+ .map(function (ad) { return ad.places.map(function (x) { return x.domainId; }); })
44
+ .flat()
45
+ .filter(Boolean));
46
+ }, [subCampaigns]);
47
+ var areAllTrue = function (data) {
48
+ return Object.values(data).every(function (value) { return value === true; });
49
+ };
50
+ var renderLinkPreview = function (ad, domainId) {
51
+ if (domainId === void 0) { domainId = defaultDomainId; }
52
+ var url = "".concat(Constant_1.Constants.CAPTIVE_DOMAIN, "/").concat(Constant_1.Constants.PAGE_LOGIN_PREVIEW, "?loginId=").concat(ad.loginId);
53
+ if (ad.welcomeId)
54
+ url += "&welcomeId=".concat(ad.welcomeId, "&isNetworkCampaign=").concat(Boolean(service.domainsGetAll).toString());
55
+ if (domainId)
56
+ url += "&domainId=".concat(domainId);
57
+ return url;
58
+ };
59
+ var mergedData = function (data) {
60
+ return data.reduce(function (acc, detail) {
61
+ var existingLink = acc.find(function (l) { return l.linkPreview === detail.linkPreview; });
62
+ if (existingLink) {
63
+ var existingCampaign = existingLink.campaign.find(function (item) {
64
+ return item.subCampaigns.find(function (subCampaign) {
65
+ return subCampaign.id ===
66
+ detail.campaign[0].subCampaigns[0].id;
67
+ });
68
+ });
69
+ if (existingCampaign) {
70
+ existingCampaign.ads.push({
71
+ id: detail.campaign[0].ads[0].id,
72
+ name: detail.campaign[0].ads[0].name,
73
+ });
74
+ }
75
+ else {
76
+ detail.campaign.forEach(function (item) {
77
+ existingLink.campaign.push(item);
78
+ });
79
+ }
80
+ }
81
+ else {
82
+ acc.push({
83
+ id: (0, Helpers_1.generateUUID)(),
84
+ linkPreview: detail.linkPreview,
85
+ campaign: detail.campaign,
86
+ status: detail.status,
87
+ description: detail.description,
88
+ loginId: detail.loginId,
89
+ welcomeId: detail.welcomeId,
90
+ });
91
+ }
92
+ return acc;
93
+ }, []);
94
+ };
95
+ var renderDataDetail = function (domainId) {
96
+ return mergedData(subCampaigns
97
+ .map(function (subCampaign) {
98
+ return subCampaign.ads
99
+ .map(function (ad) {
100
+ var _a;
101
+ var isDomain = (_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.find(function (place) {
102
+ return place.domainId === domainId;
103
+ });
104
+ if (isDomain) {
105
+ return {
106
+ linkPreview: renderLinkPreview(ad, domainId),
107
+ campaign: [
108
+ {
109
+ subCampaigns: [
110
+ {
111
+ id: subCampaign
112
+ .campaignGroup.id,
113
+ name: subCampaign
114
+ .campaignGroup.name,
115
+ status: subCampaign.campaignGroup.status
116
+ },
117
+ ],
118
+ ads: [
119
+ {
120
+ id: ad.id,
121
+ name: ad.name,
122
+ },
123
+ ],
124
+ },
125
+ ],
126
+ loginId: ad.loginId,
127
+ welcomeId: ad.welcomeId,
128
+ description: '',
129
+ status: 0,
130
+ };
131
+ }
132
+ })
133
+ .filter(Boolean);
134
+ })
135
+ .flat()
136
+ .filter(Boolean));
137
+ };
138
+ var flattenData = function (data) {
139
+ var flattened = [];
140
+ var index = 0;
141
+ data.forEach(function (item) {
142
+ item.detail.forEach(function (detail) {
143
+ detail.campaign.forEach(function (campaign) {
144
+ campaign.ads.forEach(function (ad) {
145
+ var _a;
146
+ flattened.push({
147
+ id: index++,
148
+ campaignId: campaignId,
149
+ domainId: item.domain.domainId,
150
+ status: detail.status,
151
+ loginId: detail.loginId,
152
+ welcomeId: detail.welcomeId,
153
+ description: detail.description,
154
+ campaignGroupId: (_a = campaign.subCampaigns[0]) === null || _a === void 0 ? void 0 : _a.id,
155
+ campaignAdId: ad === null || ad === void 0 ? void 0 : ad.id,
156
+ });
157
+ });
158
+ });
159
+ });
160
+ });
161
+ return flattened;
162
+ };
163
+ var unflattenData = function (inputData) {
164
+ var subCampaignsFlat = subCampaigns.flatMap(function (item) {
165
+ var subCampaignId = item.campaignGroup.id;
166
+ var subCampaignName = item.campaignGroup.name;
167
+ return item.ads.map(function (ad) { return ({
168
+ subCampaignId: subCampaignId,
169
+ subCampaignName: subCampaignName,
170
+ adId: ad.id,
171
+ adName: ad.name,
172
+ loginId: ad.loginId,
173
+ welcomeId: ad.welcomeId,
174
+ }); });
175
+ });
176
+ var findAd = function (subId, adId) {
177
+ var ad = subCampaignsFlat.find(function (item) { return item.adId === adId && item.subCampaignId === subId; });
178
+ return ad;
179
+ };
180
+ var groupedData = inputData.reduce(function (acc, item) {
181
+ var _a, _b, _c;
182
+ var domainId = item.domainId;
183
+ if (!acc[domainId]) {
184
+ var domain = domains.find(function (d) { return d.domainId === domainId; });
185
+ acc[domainId] = {
186
+ id: domainId,
187
+ domain: {
188
+ domainName: domain === null || domain === void 0 ? void 0 : domain.name,
189
+ domainId: domain === null || domain === void 0 ? void 0 : domain.domainId,
190
+ },
191
+ detail: [],
192
+ };
193
+ }
194
+ // Tạo linkPreview chỉ nếu chưa tồn tại
195
+ var existingDetail = acc[domainId].detail.find(function (detail) {
196
+ return detail.loginId === item.loginId &&
197
+ detail.welcomeId === item.welcomeId;
198
+ });
199
+ if (!existingDetail) {
200
+ acc[domainId].detail.push({
201
+ id: (0, Helpers_1.generateUUID)(),
202
+ linkPreview: renderLinkPreview({
203
+ loginId: item.loginId,
204
+ welcomeId: item.welcomeId,
205
+ }, domainId),
206
+ campaign: [],
207
+ status: item.status,
208
+ description: item.description,
209
+ loginId: item.loginId,
210
+ welcomeId: item.welcomeId,
211
+ });
212
+ }
213
+ var campaign = (_a = acc[domainId].detail.find(function (detail) {
214
+ return detail.loginId === item.loginId &&
215
+ detail.welcomeId === item.welcomeId;
216
+ })) === null || _a === void 0 ? void 0 : _a.campaign;
217
+ var subCampaign = campaign.find(function (c) { return c.subCampaigns[0].id === item.campaignGroupId; });
218
+ if (!subCampaign) {
219
+ var sub = subCampaigns.find(function (subCampaign) {
220
+ return subCampaign.campaignGroup.id ===
221
+ item.campaignGroupId;
222
+ });
223
+ subCampaign = {
224
+ subCampaigns: [
225
+ {
226
+ id: sub === null || sub === void 0 ? void 0 : sub.campaignGroup.id,
227
+ name: sub === null || sub === void 0 ? void 0 : sub.campaignGroup.name,
228
+ status: sub === null || sub === void 0 ? void 0 : sub.campaignGroup.status
229
+ },
230
+ ],
231
+ ads: [],
232
+ };
233
+ campaign.push(subCampaign);
234
+ }
235
+ subCampaign.ads.push({
236
+ id: item.campaignAdId,
237
+ name: (_c = (_b = findAd(subCampaign.subCampaigns[0].id, item.campaignAdId)) === null || _b === void 0 ? void 0 : _b.adName) !== null && _c !== void 0 ? _c : '',
238
+ });
239
+ return acc;
240
+ }, {});
241
+ return Object.values(groupedData);
242
+ };
243
+ var fetchDomains = (0, react_1.useCallback)(function (ids) {
244
+ if (ids.length > 0 && service.domainsGetByIds) {
245
+ service.domainsGetByIds(ids).then(setDomains);
246
+ }
247
+ }, [service.domainsGetByIds, setDomains]);
248
+ var campaignApprovalMerged = function (oldData, newData) {
249
+ return newData.map(function (newItem) {
250
+ var newDomainId = newItem.domain.domainId;
251
+ newItem.detail = newItem.detail.map(function (newDetail) {
252
+ var oldItem = oldData.find(function (item) { return item.domain.domainId === newDomainId; });
253
+ if (oldItem) {
254
+ var oldDetail = oldItem.detail.find(function (detail) {
255
+ return detail.welcomeId === newDetail.welcomeId &&
256
+ detail.loginId === newDetail.loginId;
257
+ });
258
+ if (oldDetail) {
259
+ return __assign(__assign({}, newDetail), { status: oldDetail.status, description: oldDetail.description });
260
+ }
261
+ }
262
+ return newDetail;
263
+ });
264
+ return newItem;
265
+ });
266
+ };
267
+ (0, react_1.useEffect)(function () {
268
+ if (!Boolean(service.attributesGetByObjectTypeCode))
269
+ return undefined;
270
+ if (!domains.length)
271
+ return setCampaignApprovalTable([]);
272
+ if (areAllTrue(subCampaignDetailValid) &&
273
+ areAllTrue(subCampaignAdsValid)) {
274
+ var data = domains.map(function (domain) {
275
+ return {
276
+ id: domain.domainId,
277
+ domain: {
278
+ domainName: domain.name,
279
+ domainId: domain.domainId,
280
+ },
281
+ detail: renderDataDetail(domain.domainId),
282
+ };
283
+ });
284
+ return setCampaignApprovalTable(campaignApprovalMerged(unflattenData(oldCampaignApproval.current), data));
285
+ }
286
+ }, [domains, subCampaigns]);
287
+ (0, react_1.useEffect)(function () {
288
+ if (!lodash_1.default.isEqual(prevDomainIds.current, domainIds)) {
289
+ fetchDomains(domainIds);
290
+ prevDomainIds.current = domainIds;
291
+ }
292
+ }, [domainIds]);
293
+ (0, react_1.useEffect)(function () {
294
+ if (campaignApprovalTable.length > 0) {
295
+ setCampaignApproval(flattenData(campaignApprovalTable));
296
+ }
297
+ }, [campaignApprovalTable]);
298
+ (0, react_1.useEffect)(function () {
299
+ if (!oldCampaignApproval.current.length && isInit) {
300
+ oldCampaignApproval.current = campaignApproval !== null && campaignApproval !== void 0 ? campaignApproval : [];
301
+ setIsInit(true);
302
+ }
303
+ }, [campaignApproval]);
304
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
305
+ };
306
+ exports.default = RunInBackground;
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var jsx_runtime_1 = require("react/jsx-runtime");
43
+ var react_1 = require("@testing-library/react");
44
+ var RunInBackground_1 = __importDefault(require("./RunInBackground"));
45
+ var recoil_1 = require("recoil");
46
+ var Router_1 = require("../../../../AWING/Router");
47
+ var Recoils_1 = require("../Recoils");
48
+ var mockSetCampaign = {
49
+ campaign: {
50
+ id: '5651975304736390227',
51
+ directoryId: '5',
52
+ directoryPath: '.0.5.5651975304736390227.',
53
+ name: 'Tester',
54
+ createdDate: {
55
+ seconds: '1728880372',
56
+ nanos: 0,
57
+ },
58
+ },
59
+ campaignGroups: [
60
+ {
61
+ campaignGroup: {
62
+ numberHasRun: 0,
63
+ id: 1,
64
+ campaignId: '5651975304736390227',
65
+ name: 'Sub-Campaign 1',
66
+ status: 2,
67
+ priority: 1,
68
+ bookingAmount: 10,
69
+ bonusAmount: 0,
70
+ billingUnit: 1,
71
+ },
72
+ ads: [
73
+ {
74
+ loginPage: {
75
+ pageId: '5122170857262705548',
76
+ directoryId: '12',
77
+ pageCode: 'lgn',
78
+ title: 'THACO_KIA_T7/24',
79
+ layoutId: '0',
80
+ transitionId: 0,
81
+ commonHtml: '',
82
+ directoryPath: '.0.6.12.5122170857262705548.',
83
+ createdDate: {
84
+ seconds: '1721031117',
85
+ nanos: 0,
86
+ },
87
+ },
88
+ welcomePage: {
89
+ pageId: '4841207366749869113',
90
+ directoryId: '11',
91
+ pageCode: 'wlc',
92
+ title: 'THACO_KIA_T7/24',
93
+ layoutId: '0',
94
+ transitionId: 0,
95
+ commonHtml: '',
96
+ directoryPath: '.0.6.11.4841207366749869113.',
97
+ createdDate: {
98
+ seconds: '1721031168',
99
+ nanos: 0,
100
+ },
101
+ },
102
+ places: [
103
+ {
104
+ placeId: '4719552610781237542',
105
+ domainId: '4657799247747765382',
106
+ name: 'VINBUS_PQ_68F-011.35',
107
+ address: 'Khu bãi dài, xã Gành dầu, TP. Phú Quốc, T. Kiên Giang',
108
+ description: '',
109
+ longitude: 103.84858,
110
+ latitude: 10.3380303,
111
+ communeCode: '31087',
112
+ districtCode: '911',
113
+ provinceCode: '91',
114
+ status: 0,
115
+ joinedDate: {
116
+ seconds: '1687167517',
117
+ nanos: 0,
118
+ },
119
+ },
120
+ ],
121
+ id: 1,
122
+ campaignId: '5651975304736390227',
123
+ campaignGroupId: 1,
124
+ name: 'Tester',
125
+ status: true,
126
+ type: 1,
127
+ loginId: '5122170857262705548',
128
+ welcomeId: '4841207366749869113',
129
+ startDate: {
130
+ seconds: '1728838800',
131
+ nanos: 0,
132
+ },
133
+ endDate: {
134
+ seconds: '1728838800',
135
+ nanos: 0,
136
+ },
137
+ placeFilter: {
138
+ operandGroups: [
139
+ {
140
+ operands: [
141
+ {
142
+ type: 2,
143
+ operator: 7,
144
+ value: '["4657799247747765382"]',
145
+ },
146
+ {
147
+ type: 0,
148
+ operator: 7,
149
+ value: '["4719552610781237542"]',
150
+ },
151
+ ],
152
+ },
153
+ ],
154
+ },
155
+ weights: [],
156
+ },
157
+ ],
158
+ },
159
+ ],
160
+ campaignAttributes: [
161
+ {
162
+ campaignId: '5651975304736390227',
163
+ attributeId: 1,
164
+ },
165
+ ],
166
+ campaignApprovals: [
167
+ {
168
+ id: 248,
169
+ campaignId: '5651975304736390227',
170
+ domainId: '4657799247747765382',
171
+ campaignGroupId: 1,
172
+ campaignAdId: 1,
173
+ status: 0,
174
+ loginId: '5122170857262705548',
175
+ welcomeId: '4841207366749869113',
176
+ description: '',
177
+ },
178
+ ],
179
+ };
180
+ var campaignId = '5651975304736390227';
181
+ var mockDomain = [
182
+ {
183
+ domainId: '4657799247747765382',
184
+ name: 'Vinbus',
185
+ rateSharing: 100,
186
+ description: 'Vinbus',
187
+ shareType: 0,
188
+ type: null,
189
+ },
190
+ ];
191
+ var mockCLientMethod = {
192
+ domainsGetByIds: function (_id) { return Promise.resolve(mockDomain); },
193
+ attributesGetByObjectTypeCode: function (_objectTypeCode) { return Promise.resolve([]); },
194
+ };
195
+ // Mock Hooks
196
+ jest.mock('ACM-AXN/Campaign/Hooks', function () { return ({
197
+ __esModule: true,
198
+ default: function () { return ({
199
+ service: {
200
+ domainsGetByIds: jest.fn(mockCLientMethod.domainsGetByIds),
201
+ attributesGetByObjectTypeCode: jest.fn(mockCLientMethod.attributesGetByObjectTypeCode),
202
+ },
203
+ }); },
204
+ }); });
205
+ var renderUi = function () {
206
+ var initializeState = function (_a) {
207
+ var set = _a.set;
208
+ set(Recoils_1.campaignModelState, mockSetCampaign);
209
+ };
210
+ return (0, react_1.render)((0, jsx_runtime_1.jsx)(recoil_1.RecoilRoot, { initializeState: initializeState, children: (0, jsx_runtime_1.jsx)(Router_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(RunInBackground_1.default, {}) }) }));
211
+ };
212
+ describe('RunInBackground Component', function () {
213
+ it('should render without crashing', function () { return __awaiter(void 0, void 0, void 0, function () {
214
+ var spy;
215
+ return __generator(this, function (_a) {
216
+ switch (_a.label) {
217
+ case 0:
218
+ spy = jest.spyOn(mockCLientMethod, 'domainsGetByIds');
219
+ return [4 /*yield*/, (0, react_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
220
+ return [2 /*return*/, renderUi()];
221
+ }); }); })];
222
+ case 1:
223
+ _a.sent();
224
+ expect(spy).toBeCalledTimes(1);
225
+ expect(spy).toBeCalledWith(['4657799247747765382']);
226
+ return [2 /*return*/];
227
+ }
228
+ });
229
+ }); });
230
+ });
@@ -0,0 +1 @@
1
+ export default function TabApprove(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ var jsx_runtime_1 = require("react/jsx-runtime");
27
+ var material_1 = require("@mui/material");
28
+ var react_1 = require("react");
29
+ var react_i18next_1 = require("react-i18next");
30
+ var recoil_1 = require("recoil");
31
+ var Recoils_1 = require("../Recoils");
32
+ var RowTable_1 = __importDefault(require("./RowTable"));
33
+ var Router_1 = require("../../../../AWING/Router");
34
+ var Hooks_1 = __importDefault(require("../../../../ACM-AXN/Campaign/Hooks"));
35
+ var Context_1 = require("../../../../Context");
36
+ function TabApprove() {
37
+ var campaignId = (0, Router_1.useParams)().campaignId;
38
+ var t = (0, react_i18next_1.useTranslation)().t;
39
+ var service = (0, Hooks_1.default)().service;
40
+ var snackbar = (0, Context_1.useAwing)().appHelper.snackbar;
41
+ var setConfirmExit = (0, recoil_1.useSetRecoilState)(Recoils_1.confirmExitState);
42
+ var _a = (0, react_1.useState)([]), rowSelected = _a[0], setRowSelected = _a[1];
43
+ var _b = (0, recoil_1.useRecoilState)(Recoils_1.campaignApprovalTableState), campaignApprovalTable = _b[0], setCampaignApprovalTable = _b[1];
44
+ var handleRowSelect = (0, react_1.useCallback)(function (id) {
45
+ setRowSelected(function (pre) {
46
+ return pre.includes(id) ? pre.filter(function (x) { return x !== id; }) : __spreadArray(__spreadArray([], pre, true), [id], false);
47
+ });
48
+ }, []);
49
+ var updateRow = (0, react_1.useCallback)(function (dataUpdate, rowId, linkId) {
50
+ setCampaignApprovalTable(function (pre) {
51
+ return pre.map(function (item) {
52
+ if (item.id === rowId) {
53
+ return __assign(__assign({}, item), { detail: item.detail.map(function (detail) {
54
+ if (detail.id === linkId) {
55
+ return __assign(__assign({}, detail), { status: dataUpdate.status, description: dataUpdate.description });
56
+ }
57
+ return detail;
58
+ }) });
59
+ }
60
+ return item;
61
+ });
62
+ });
63
+ setConfirmExit(true);
64
+ }, [campaignApprovalTable]);
65
+ var flattenData = (0, react_1.useCallback)(function (data) {
66
+ var flattened = [];
67
+ var index = 0;
68
+ data.forEach(function (item) {
69
+ item.detail.forEach(function (detail) {
70
+ detail.campaign.forEach(function (campaign) {
71
+ campaign.ads.forEach(function (ad) {
72
+ var _a;
73
+ flattened.push({
74
+ id: index++,
75
+ campaignId: campaignId,
76
+ domainId: item.domain.domainId,
77
+ status: detail.status,
78
+ loginId: detail.loginId,
79
+ welcomeId: detail.welcomeId,
80
+ description: detail.description,
81
+ campaignGroupId: (_a = campaign.subCampaigns[0]) === null || _a === void 0 ? void 0 : _a.id,
82
+ campaignAdId: ad === null || ad === void 0 ? void 0 : ad.id,
83
+ });
84
+ });
85
+ });
86
+ });
87
+ });
88
+ return flattened;
89
+ }, []);
90
+ var handleSelectAll = (0, react_1.useCallback)(function () {
91
+ setRowSelected(function (pre) {
92
+ return pre.length < campaignApprovalTable.length
93
+ ? campaignApprovalTable.map(function (item) { return item.id; })
94
+ : [];
95
+ });
96
+ }, [campaignApprovalTable]);
97
+ var handleSendMail = (0, react_1.useCallback)(function () {
98
+ var data = campaignApprovalTable.filter(function (item) {
99
+ return rowSelected.includes(item.id);
100
+ });
101
+ service.campaignsManualSendMail && service.campaignsManualSendMail(campaignId, flattenData(data)).then(function () {
102
+ setRowSelected([]);
103
+ snackbar('success');
104
+ });
105
+ }, [campaignApprovalTable, rowSelected]);
106
+ return ((0, jsx_runtime_1.jsxs)(material_1.TableContainer, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { variant: "outlined", color: "primary", disabled: !rowSelected.length, sx: {
107
+ margin: '1rem',
108
+ }, onClick: handleSendMail, children: t('Campaign.Approval.SendEmail') }), (0, jsx_runtime_1.jsxs)(material_1.Table, { sx: {
109
+ boxShadow: 'none',
110
+ '.MuiOutlinedInput-notchedOutline': {
111
+ border: 'none !important',
112
+ },
113
+ }, children: [(0, jsx_runtime_1.jsx)(material_1.TableHead, { children: (0, jsx_runtime_1.jsxs)(material_1.TableRow, { style: { height: 57 }, children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { style: { width: 60, padding: '0 0 0 4px' }, children: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { indeterminate: rowSelected.length > 0 &&
114
+ rowSelected.length <
115
+ campaignApprovalTable.length, checked: rowSelected.length > 0 &&
116
+ rowSelected.length ===
117
+ campaignApprovalTable.length, onChange: handleSelectAll, inputProps: { 'aria-label': 'select all ad' }, color: "primary" }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: t('Campaign.Approval.Domain') }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { style: { maxWidth: 400 }, children: t('Campaign.Approval.LinkPreview') }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: t('Campaign.Approval.SubCampaign') }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: t('Campaign.Approval.Advertisement') }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: t('Campaign.Approval.Status') }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: t('Campaign.Approval.Note') })] }) }), (0, jsx_runtime_1.jsx)(material_1.TableBody, { children: campaignApprovalTable.map(function (row) {
118
+ return row.detail.map(function (link, linkIndex) {
119
+ return link.campaign.map(function (sub, subIndex) { return ((0, jsx_runtime_1.jsx)(RowTable_1.default, { row: row, link: link, sub: sub, linkIndex: linkIndex, subIndex: subIndex, rowSelected: rowSelected, handleRowSelect: handleRowSelect, updateRow: updateRow }, "".concat(row.id, "-").concat(linkIndex, "-").concat(subIndex))); });
120
+ });
121
+ }) })] })] }));
122
+ }
123
+ exports.default = TabApprove;