awing-library 2.1.129-beta → 2.1.129

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 (217) 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 -43
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +321 -103
  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 +122 -58
  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 +11 -8
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +13 -19
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +7 -0
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +98 -0
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +35 -70
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +26 -8
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -32
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +5 -2
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +2 -2
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts +8 -0
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js +47 -0
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +52 -6
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.d.ts +1 -0
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.js +3 -1
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.d.ts +4 -3
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +13 -7
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.d.ts +1 -1
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +75 -123
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +8 -3
  64. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  65. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  66. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  67. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  68. package/lib/ACM-AXN/Campaign/Enum.d.ts +23 -4
  69. package/lib/ACM-AXN/Campaign/Enum.js +30 -10
  70. package/lib/ACM-AXN/Campaign/Types.d.ts +52 -6
  71. package/lib/ACM-AXN/Campaign/Utils.d.ts +5 -0
  72. package/lib/ACM-AXN/Campaign/Utils.js +29 -2
  73. package/lib/ACM-AXN/Campaign/index.js +2 -2
  74. package/lib/ACM-AXN/CampaignPlan/Container.js +21 -10
  75. package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
  76. package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
  77. package/lib/ACM-AXN/CampaignPlan/Detail.js +5 -7
  78. package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
  79. package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
  80. package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
  81. package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
  82. package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
  83. package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
  84. package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
  85. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  86. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +7 -5
  87. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  88. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  89. package/lib/ACM-AXN/CampaignSchedule/Enum.d.ts +1 -1
  90. package/lib/ACM-AXN/CampaignSchedule/Enum.js +1 -1
  91. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  92. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  93. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  94. package/lib/ACM-AXN/Common/Constant.js +2 -0
  95. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  96. package/lib/ACM-AXN/Common/Enum.js +19 -4
  97. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  98. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  99. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  100. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  101. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  102. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  103. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  104. package/lib/ACM-AXN/Page/Container.js +3 -3
  105. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  106. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  107. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -1
  108. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -1
  109. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  110. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  111. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  112. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  113. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +6 -9
  114. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  115. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +40 -61
  116. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +26 -30
  117. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +6 -8
  118. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +5 -3
  119. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  120. package/lib/ACM-AXN/Page/enums.js +7 -1
  121. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  122. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  123. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  124. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  125. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  126. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  127. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  131. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  132. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  133. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  134. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  135. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  136. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  137. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +14 -11
  138. package/lib/ACM-AXN/Statistics/ControlPanel.js +16 -4
  139. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  140. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  141. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  142. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +3 -3
  143. package/lib/ACM-AXN/Template/Container.js +1 -1
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  146. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  147. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  148. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  149. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  150. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  151. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  152. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  153. package/lib/ACM-AXN/Template/Import.js +6 -3
  154. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  155. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  156. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  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 +29 -11
  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 +42 -23
  180. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  181. package/lib/AWING/Form/useForm.js +3 -2
  182. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  183. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  184. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  185. package/lib/AWING/GoogleMap/index.js +41 -0
  186. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  187. package/lib/AWING/GoogleMap/interface.js +2 -0
  188. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  189. package/lib/AWING/GoogleMap/utils.js +135 -0
  190. package/lib/AWING/GroupTable/GroupTable.js +4 -5
  191. package/lib/AWING/GroupTable/component.d.ts +1 -0
  192. package/lib/AWING/GroupTable/component.js +2 -2
  193. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  194. package/lib/AWING/NumberFormat/index.js +2 -2
  195. package/lib/AWING/PageManagement/PageManagement.js +2 -2
  196. package/lib/AWING/Pagination/index.js +10 -3
  197. package/lib/AWING/index.d.ts +1 -0
  198. package/lib/AWING/index.js +1 -0
  199. package/lib/AWING/ultis/validation.d.ts +1 -0
  200. package/lib/AWING/ultis/validation.js +21 -5
  201. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  202. package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
  203. package/lib/Commons/Hooks/usePath.js +3 -3
  204. package/lib/Utils/Helpers.d.ts +4 -2
  205. package/lib/Utils/Helpers.js +56 -7
  206. package/lib/i18n.js +14 -2
  207. package/lib/translate/en/translation.json +114 -71
  208. package/lib/translate/id/translation.json +870 -0
  209. package/lib/translate/ja/translation.json +870 -0
  210. package/lib/translate/th/translation.json +870 -0
  211. package/lib/translate/vi/translation.json +78 -35
  212. package/package.json +131 -126
  213. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/fakeCampaignData.json +0 -397
  214. package/lib/ACM-AXN/ScheduleCompletionRate/json.d.ts +0 -61
  215. package/lib/ACM-AXN/ScheduleCompletionRate/json.js +0 -268
  216. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  217. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -46,21 +46,31 @@ function CompletionRate() {
46
46
  var scheduleCompletionRate = (0, recoil_1.useRecoilValue)(Recoils_1.scheduleCompletionRateAtom);
47
47
  var _b = (0, react_1.useState)(true), loading = _b[0], setLoading = _b[1];
48
48
  var _c = (0, react_1.useState)(Utils_1.QueryInputDetail), queryInput = _c[0], setQueryInput = _c[1];
49
- var _d = (0, react_1.useState)(), scheduleGroupBy = _d[0], setScheduleGroupBy = _d[1];
49
+ var _d = (0, react_1.useState)([]), scheduleGroupBy = _d[0], setScheduleGroupBy = _d[1];
50
50
  (0, react_1.useEffect)(function () {
51
51
  var _a, _b, _c, _d;
52
52
  service
53
- .scheduleCompletionRatesPaging((_b = (_a = scheduleCompletionRate === null || scheduleCompletionRate === void 0 ? void 0 : scheduleCompletionRate.filter) === null || _a === void 0 ? void 0 : _a.startDate) === null || _b === void 0 ? void 0 : _b.format('YYYY-MM-DD'), (_d = (_c = scheduleCompletionRate === null || scheduleCompletionRate === void 0 ? void 0 : scheduleCompletionRate.filter) === null || _c === void 0 ? void 0 : _c.endDate) === null || _d === void 0 ? void 0 : _d.format('YYYY-MM-DD'), campaignId, Number(groupId), 'date', queryInput.pageIndex, queryInput.pageSize)
53
+ .scheduleCompletionRatesGet({
54
+ fromDate: (_b = (_a = scheduleCompletionRate === null || scheduleCompletionRate === void 0 ? void 0 : scheduleCompletionRate.filter) === null || _a === void 0 ? void 0 : _a.startDate) === null || _b === void 0 ? void 0 : _b.format('YYYY-MM-DD'),
55
+ toDate: (_d = (_c = scheduleCompletionRate === null || scheduleCompletionRate === void 0 ? void 0 : scheduleCompletionRate.filter) === null || _c === void 0 ? void 0 : _c.endDate) === null || _d === void 0 ? void 0 : _d.format('YYYY-MM-DD'),
56
+ level: 1,
57
+ campaignAdGroups: [
58
+ {
59
+ campaignId: campaignId,
60
+ campaignGroupId: Number(groupId),
61
+ },
62
+ ],
63
+ })
54
64
  .then(function (res) {
55
- var valueNew = (0, Utils_1.converData)((res === null || res === void 0 ? void 0 : res.items) || [], type, completionRateInfo === null || completionRateInfo === void 0 ? void 0 : completionRateInfo.billingUnit);
56
- setScheduleGroupBy(__assign(__assign({}, res), { items: valueNew.length ? valueNew : [] }));
65
+ var valueNew = (0, Utils_1.converData)(res, type);
66
+ setScheduleGroupBy(valueNew);
57
67
  setScheduleCompletionRate(function (oldState) { return (__assign(__assign({}, oldState), { detailCompletionRateDate: valueNew.length ? valueNew : [] })); });
58
68
  })
59
69
  .finally(function () {
60
70
  setLoading(false);
61
71
  });
62
72
  // eslint-disable-next-line react-hooks/exhaustive-deps
63
- }, [queryInput]);
73
+ }, []);
64
74
  var handleRowClick = function (itemRow) {
65
75
  navigate("".concat((0, moment_1.default)(itemRow.date).format('DD-MM-YYYY')));
66
76
  };
@@ -127,7 +137,7 @@ function CompletionRate() {
127
137
  };
128
138
  },
129
139
  },
130
- ], onRowClick: handleRowClick, rows: (scheduleGroupBy === null || scheduleGroupBy === void 0 ? void 0 : scheduleGroupBy.items) || [], getRowId: function (row) { return row; }, pageSize: queryInput.pageSize, pageIndex: queryInput.pageIndex, totalOfRows: (scheduleGroupBy === null || scheduleGroupBy === void 0 ? void 0 : scheduleGroupBy.totalItemCount) || 0, onPageIndexChange: function (pageIndex) {
140
+ ], onRowClick: handleRowClick, rows: (0, Helpers_1.offlinePaginate)(scheduleGroupBy, queryInput.pageIndex, queryInput.pageSize), getRowId: function (row) { return row; }, pageSize: queryInput.pageSize, pageIndex: queryInput.pageIndex, totalOfRows: scheduleGroupBy.length || 0, onPageIndexChange: function (pageIndex) {
131
141
  setQueryInput(function (prev) { return (__assign(__assign({}, prev), { pageIndex: pageIndex })); });
132
142
  }, onPageSizeChange: function (pageSize) {
133
143
  setQueryInput(function (prev) { return (__assign(__assign({}, prev), { pageSize: pageSize, pageIndex: 0 })); });
@@ -24,12 +24,12 @@ var react_1 = require("react");
24
24
  var moment_1 = __importDefault(require("moment"));
25
25
  var recoil_1 = require("recoil");
26
26
  var Router_1 = require("../../../AWING/Router");
27
- var Helpers_1 = require("../../../Utils/Helpers");
28
27
  var react_i18next_1 = require("react-i18next");
29
28
  var Hooks_1 = __importDefault(require("../Hooks"));
30
29
  var material_1 = require("@mui/material");
31
30
  var ClassicDrawer_1 = __importDefault(require("../../../Commons/Components/ClassicDrawer"));
32
31
  var Utils_1 = require("../Utils");
32
+ var Helpers_1 = require("../../../Utils/Helpers");
33
33
  var AWING_1 = require("../../../AWING");
34
34
  var Recoils_1 = require("../Recoils");
35
35
  function CompletionRateDate() {
@@ -37,25 +37,32 @@ function CompletionRateDate() {
37
37
  var _a = (0, Router_1.useParams)(), campaignId = _a.campaignId, groupId = _a.groupId, date = _a.date;
38
38
  var service = (0, Hooks_1.default)().service;
39
39
  var completionRateDateInfo = (0, recoil_1.useRecoilValue)((0, Recoils_1.detailCompletionRateDateItem)(date));
40
- console.log('completionRateDateInfo =================>', completionRateDateInfo);
41
40
  var type = (0, recoil_1.useRecoilValue)(Recoils_1.ScheduleCompletionRateTypeViewState).type;
42
41
  var schedule = (0, recoil_1.useRecoilValue)(Recoils_1.scheduleCompletionRateAtom);
43
42
  var _b = (0, react_1.useState)(true), loading = _b[0], setLoading = _b[1];
44
43
  var _c = (0, react_1.useState)(Utils_1.QueryInputDetail), queryInput = _c[0], setQueryInput = _c[1];
45
- var _d = (0, react_1.useState)(), scheduleGroupByDate = _d[0], setScheduleGroupByDate = _d[1];
44
+ var _d = (0, react_1.useState)([]), scheduleGroupByDate = _d[0], setScheduleGroupByDate = _d[1];
46
45
  (0, react_1.useEffect)(function () {
47
46
  service
48
- .scheduleCompletionRatesPaging((0, moment_1.default)(date, 'DD-MM-YYYY').format('YYYY-MM-DD'), (0, moment_1.default)(date, 'DD-MM-YYYY').format('YYYY-MM-DD'), campaignId, Number(groupId), 'placeId', queryInput.pageIndex, queryInput.pageSize)
47
+ .scheduleCompletionRatesGet({
48
+ fromDate: (0, moment_1.default)(date, 'DD-MM-YYYY').format('YYYY-MM-DD'),
49
+ toDate: (0, moment_1.default)(date, 'DD-MM-YYYY').format('YYYY-MM-DD'),
50
+ level: 2,
51
+ campaignAdGroups: [
52
+ {
53
+ campaignId: campaignId,
54
+ campaignGroupId: Number(groupId),
55
+ },
56
+ ],
57
+ })
49
58
  .then(function (res) {
50
- console.log('res =================>', res);
51
- var valueNew = (0, Utils_1.converData)((res === null || res === void 0 ? void 0 : res.items) || [], type, completionRateDateInfo === null || completionRateDateInfo === void 0 ? void 0 : completionRateDateInfo.billingUnit);
52
- setScheduleGroupByDate(__assign(__assign({}, res), { items: valueNew.length ? valueNew : [] }));
59
+ setScheduleGroupByDate((0, Utils_1.converData)(res || [], type));
53
60
  })
54
61
  .finally(function () {
55
62
  setLoading(false);
56
63
  });
57
64
  // eslint-disable-next-line react-hooks/exhaustive-deps
58
- }, [queryInput]);
65
+ }, []);
59
66
  return ((0, jsx_runtime_1.jsx)(ClassicDrawer_1.default, { title: "".concat(t('ScheduleCompletionRate.Date'), ": ").concat(loading && !date ? 'loading...' : date || '', " "), childrenWrapperStyle: { p: 3 }, children: loading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(AWING_1.DataGrid, { spanningRows: (0, jsx_runtime_1.jsxs)(material_1.TableRow, { sx: {
60
67
  flex: 1,
61
68
  background: 'lightgrey',
@@ -77,7 +84,7 @@ function CompletionRateDate() {
77
84
  return item.placeId === row.placeId;
78
85
  });
79
86
  return (itemPlace === null || itemPlace === void 0 ? void 0 : itemPlace.name)
80
- ? itemPlace === null || itemPlace === void 0 ? void 0 : itemPlace.name
87
+ ? itemPlace.name
81
88
  : "ID: ".concat(row.placeId);
82
89
  },
83
90
  width: 350,
@@ -122,7 +129,7 @@ function CompletionRateDate() {
122
129
  };
123
130
  },
124
131
  },
125
- ], rows: (scheduleGroupByDate === null || scheduleGroupByDate === void 0 ? void 0 : scheduleGroupByDate.items) || [], pageSize: queryInput.pageSize, pageIndex: queryInput.pageIndex, totalOfRows: (scheduleGroupByDate === null || scheduleGroupByDate === void 0 ? void 0 : scheduleGroupByDate.totalItemCount) || 0, onPageIndexChange: function (pageIndex) {
132
+ ], rows: (0, Helpers_1.offlinePaginate)(scheduleGroupByDate, queryInput.pageIndex, queryInput.pageSize), pageSize: queryInput.pageSize, pageIndex: queryInput.pageIndex, totalOfRows: scheduleGroupByDate.length || 0, onPageIndexChange: function (pageIndex) {
126
133
  setQueryInput(function (prev) { return (__assign(__assign({}, prev), { pageIndex: pageIndex })); });
127
134
  }, onPageSizeChange: function (pageSize) {
128
135
  setQueryInput(function (prev) { return (__assign(__assign({}, prev), { pageSize: pageSize, pageIndex: 0 })); });
@@ -3,10 +3,11 @@
3
3
  * @author dauquan1108@gmail.com on 03/13/2024.
4
4
  *
5
5
  **/
6
- import { FilterType } from './Types';
6
+ import { FilterType, ScheduleCompletionRate } from './Types';
7
7
  interface PropsFilter {
8
8
  filter: FilterType;
9
9
  onUpdateFilter: (valueNew: FilterType) => void;
10
+ scheduleCompletionRate: ScheduleCompletionRate[];
10
11
  }
11
12
  declare function Filter(props: PropsFilter): import("react/jsx-runtime").JSX.Element;
12
13
  export default Filter;
@@ -10,15 +10,6 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
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
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
15
  };
@@ -45,6 +36,7 @@ var Utils_1 = require("./Utils");
45
36
  var recoil_1 = require("recoil");
46
37
  var Recoils_1 = require("./Recoils");
47
38
  var exportFile_1 = require("../../ACM-AXN/CampaignSchedule/exportFile");
39
+ var lodash_1 = require("lodash");
48
40
  var useStyles = (0, styles_1.makeStyles)(function () { return ({
49
41
  outlinedInput: {
50
42
  '& .MuiOutlinedInput-input': {
@@ -68,7 +60,7 @@ var useStyles = (0, styles_1.makeStyles)(function () { return ({
68
60
  },
69
61
  }); });
70
62
  function Filter(props) {
71
- var filter = props.filter, onUpdateFilter = props.onUpdateFilter;
63
+ var filter = props.filter, scheduleCompletionRate = props.scheduleCompletionRate, onUpdateFilter = props.onUpdateFilter;
72
64
  var t = (0, react_i18next_1.useTranslation)().t;
73
65
  var classes = useStyles();
74
66
  var snackbar = (0, Context_1.useAwing)().appHelper.snackbar;
@@ -78,13 +70,7 @@ function Filter(props) {
78
70
  var _a = (0, recoil_1.useRecoilState)(Recoils_1.ScheduleCompletionRateTypeViewState), filterType = _a[0], setFilterType = _a[1];
79
71
  var _b = (0, react_1.useState)(false), isLoadings = _b[0], setIsLoadings = _b[1];
80
72
  var _c = (0, react_1.useState)(), dateRangeInput = _c[0], setDateRangeInput = _c[1];
81
- var _d = (0, react_1.useState)([
82
- {
83
- id: Utils_1.DefaultValueFilter.campaignId,
84
- isNetwork: false,
85
- name: t('Common.SelectAll'),
86
- },
87
- ]), campaigns = _d[0], setCampaigns = _d[1];
73
+ var _d = (0, react_1.useState)([]), campaigns = _d[0], setCampaigns = _d[1];
88
74
  (0, react_1.useEffect)(function () {
89
75
  var _a;
90
76
  if (!((_a = schedule === null || schedule === void 0 ? void 0 : schedule.places) === null || _a === void 0 ? void 0 : _a.length)) {
@@ -93,32 +79,15 @@ function Filter(props) {
93
79
  });
94
80
  }
95
81
  // eslint-disable-next-line react-hooks/exhaustive-deps
96
- }, [schedule]);
97
- (0, react_1.useEffect)(function () {
98
- var _a, _b;
99
- service
100
- .scheduleCompletionRatesQuery((_a = filter === null || filter === void 0 ? void 0 : filter.startDate) === null || _a === void 0 ? void 0 : _a.format('YYYY-MM-DD'), (_b = filter === null || filter === void 0 ? void 0 : filter.endDate) === null || _b === void 0 ? void 0 : _b.format('YYYY-MM-DD'))
101
- .then(function (data) {
102
- var listCampaign = data.map(function (item) { return (__assign(__assign({}, item.campaign), { isNetwork: item.isNetworkCampaign })); });
103
- var campaign = campaigns.find(function (item) {
104
- return item.id === (filter === null || filter === void 0 ? void 0 : filter.campaignId) &&
105
- item.id !== (Utils_1.DefaultValueFilter === null || Utils_1.DefaultValueFilter === void 0 ? void 0 : Utils_1.DefaultValueFilter.campaignId);
106
- });
107
- var isCampaign = listCampaign === null || listCampaign === void 0 ? void 0 : listCampaign.some(function (item) { return item.id === (filter === null || filter === void 0 ? void 0 : filter.campaignId); });
108
- var tempCampaignList = __spreadArray([
109
- {
110
- id: Utils_1.DefaultValueFilter.campaignId,
111
- name: t('Common.SelectAll'),
112
- }
113
- ], listCampaign, true);
114
- var options = isCampaign
115
- ? tempCampaignList
116
- : campaign
117
- ? __spreadArray(__spreadArray([], tempCampaignList, true), [campaign], false) : tempCampaignList;
118
- setCampaigns(options);
119
- });
120
- // eslint-disable-next-line react-hooks/exhaustive-deps
121
- }, [filter.startDate, filter.endDate]);
82
+ }, [schedule === null || schedule === void 0 ? void 0 : schedule.places.length]);
83
+ (0, react_1.useLayoutEffect)(function () {
84
+ setCampaigns((0, lodash_1.uniqBy)([
85
+ {
86
+ campaignId: Utils_1.DefaultValueFilter.campaignId,
87
+ campaignName: t('Common.SelectAll'),
88
+ },
89
+ ].concat(scheduleCompletionRate), 'campaignId'));
90
+ }, [scheduleCompletionRate, t]);
122
91
  var handleChangeQueryInput = function (queryParams) {
123
92
  onUpdateFilter(__assign(__assign({}, queryParams), { campaignId: filter.campaignId }));
124
93
  };
@@ -126,12 +95,17 @@ function Filter(props) {
126
95
  var _a, _b;
127
96
  setIsLoadings(true);
128
97
  service
129
- .scheduleCompletionRatesExport((_a = filter === null || filter === void 0 ? void 0 : filter.startDate) === null || _a === void 0 ? void 0 : _a.format('YYYY-MM-DD'), (_b = filter === null || filter === void 0 ? void 0 : filter.endDate) === null || _b === void 0 ? void 0 : _b.format('YYYY-MM-DD'), filter.campaignId, undefined)
98
+ .scheduleCompletionRatesGet({
99
+ fromDate: (_a = filter === null || filter === void 0 ? void 0 : filter.startDate) === null || _a === void 0 ? void 0 : _a.format('YYYY-MM-DD'),
100
+ toDate: (_b = filter === null || filter === void 0 ? void 0 : filter.endDate) === null || _b === void 0 ? void 0 : _b.format('YYYY-MM-DD'),
101
+ level: 1,
102
+ })
130
103
  .then(function (res) {
131
- var _a, _b, _c, _d;
132
- var dataByCampaign = (_a = (0, DataSetConfig_1.DataSetConfigs)((0, Utils_1.convertExcelData)(res, campaigns, schedule.places, t, filterType.type), t, filter === null || filter === void 0 ? void 0 : filter.startDate, filter === null || filter === void 0 ? void 0 : filter.endDate)) === null || _a === void 0 ? void 0 : _a.sheetByCampaign;
133
- var dataByCampaignDetail = (_b = (0, DataSetConfig_1.DataSetConfigs)((0, Utils_1.convertExcelData)(res, campaigns, schedule.places, t, filterType.type), t, filter === null || filter === void 0 ? void 0 : filter.startDate, filter === null || filter === void 0 ? void 0 : filter.endDate)) === null || _b === void 0 ? void 0 : _b.sheetCampaignDetail;
134
- var fileName = "AWING_DELIVERY_STATUS_BY_DAY_".concat((_c = filter === null || filter === void 0 ? void 0 : filter.startDate) === null || _c === void 0 ? void 0 : _c.format('DD-MM-YYYY'), " to ").concat((_d = filter === null || filter === void 0 ? void 0 : filter.endDate) === null || _d === void 0 ? void 0 : _d.format('YYYYMMDD'));
104
+ var _a, _b;
105
+ var Data = (0, DataSetConfig_1.DataSetConfigs)((0, Utils_1.convertExcelData)(res, campaigns, schedule.places, filterType.type), filter === null || filter === void 0 ? void 0 : filter.startDate, filter === null || filter === void 0 ? void 0 : filter.endDate);
106
+ var dataByCampaign = Data === null || Data === void 0 ? void 0 : Data.sheetByCampaign;
107
+ var dataByCampaignDetail = Data === null || Data === void 0 ? void 0 : Data.sheetCampaignDetail;
108
+ var fileName = "AWING_DELIVERY_STATUS_BY_DAY_".concat((_a = filter === null || filter === void 0 ? void 0 : filter.startDate) === null || _a === void 0 ? void 0 : _a.format('DD-MM-YYYY'), " to ").concat((_b = filter === null || filter === void 0 ? void 0 : filter.endDate) === null || _b === void 0 ? void 0 : _b.format('YYYYMMDD'));
135
109
  var dataExport = [
136
110
  {
137
111
  dataSet: dataByCampaign,
@@ -172,7 +146,7 @@ function Filter(props) {
172
146
  setFilterType({
173
147
  type: e.target.value,
174
148
  });
175
- }, children: [(0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: Constant_1.TypeView.billingUnit, children: t('Common.BillingUnit') }), (0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: Constant_1.TypeView.impression, children: t('Common.Impression') })] })] }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
149
+ }, children: [(0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: Constant_1.TypeView.billingUnit, children: t('Campaign.BillingUnit.Title') }), (0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: Constant_1.TypeView.impression, children: t('Common.Impression') })] })] }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
176
150
  width: '260px',
177
151
  minWidth: '260px',
178
152
  marginRight: '16px',
@@ -184,10 +158,15 @@ function Filter(props) {
184
158
  className: classes.outlinedInput,
185
159
  }, callback: handleChangeDateRange, isDayBlocked: function (day) {
186
160
  var now = (0, moment_1.default)().endOf('day').valueOf();
187
- return now < day.valueOf();
161
+ if (now < day.valueOf()) {
162
+ return true;
163
+ }
164
+ else {
165
+ return false;
166
+ }
188
167
  } }) }), (0, jsx_runtime_1.jsx)(SearchCampaign_1.default, { filter: filter, campaigns: campaigns, onUpdateFilter: onUpdateFilter }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "primary", onClick: function () {
189
168
  handleChangeQueryInput(dateRangeInput);
190
- }, style: { height: '40px' }, children: t('Common.View') }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", title: t('Common.Download'), onClick: function () { return handleChangeExportInput(); }, color: "inherit", disabled: isLoadings, style: {
169
+ }, style: { height: '40px' }, children: t('Common.View') }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", title: t('Common.Download'), onClick: handleChangeExportInput, color: "inherit", disabled: isLoadings, style: {
191
170
  marginLeft: '16px',
192
171
  height: '40px',
193
172
  }, children: isLoadings ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, { styleWrap: {
@@ -207,7 +207,7 @@ jest.mock('../../ACM-AXN/Statistics/ControlPanel', function () { return function
207
207
  }; });
208
208
  var renderUi = function () {
209
209
  var mockOnUpdateFilter = jest.fn();
210
- return (0, react_1.render)((0, jsx_runtime_1.jsx)(Filter_1.default, { filter: Utils_1.DefaultValueFilter, onUpdateFilter: mockOnUpdateFilter }));
210
+ return (0, react_1.render)((0, jsx_runtime_1.jsx)(Filter_1.default, { scheduleCompletionRate: [], filter: Utils_1.DefaultValueFilter, onUpdateFilter: mockOnUpdateFilter }));
211
211
  };
212
212
  describe('Filter component', function () {
213
213
  it('Check render component', function () {
@@ -3,10 +3,10 @@
3
3
  * @author dauquan1108@gmail.com on 03/27/2024.
4
4
  *
5
5
  **/
6
- import { FilterType, Campaign } from './Types';
6
+ import { FilterType, ScheduleCompletionRate } from './Types';
7
7
  interface PropsSearchCampaign {
8
8
  filter: FilterType;
9
- campaigns: Campaign[];
9
+ campaigns: ScheduleCompletionRate[];
10
10
  onUpdateFilter: (valueNew: FilterType) => void;
11
11
  }
12
12
  declare function SearchCampaign(props: PropsSearchCampaign): import("react/jsx-runtime").JSX.Element;
@@ -11,6 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
+ var react_1 = require("react");
14
15
  var jsx_runtime_1 = require("react/jsx-runtime");
15
16
  /**
16
17
  *
@@ -27,15 +28,8 @@ function SearchCampaign(props) {
27
28
  onUpdateFilter({
28
29
  campaignId: reason === 'clear'
29
30
  ? Utils_1.DefaultValueFilter.campaignId
30
- : campaignItem === null || campaignItem === void 0 ? void 0 : campaignItem.id,
31
+ : campaignItem === null || campaignItem === void 0 ? void 0 : campaignItem.campaignId,
31
32
  });
32
- }, sx: { marginRight: function (theme) { return theme.spacing(2); } }, getOptionLabel: function (option) { return (option === null || option === void 0 ? void 0 : option.name) || ''; }, value: campaigns.find(function (item) { return item.id === filter.campaignId; }), renderInput: function (params) { return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({}, params, { label: t('CampaignPlan.CampaignName') }))); }, renderOption: function (props, option) { return ((0, jsx_runtime_1.jsxs)("li", __assign({}, props, { children: [option.name, (option === null || option === void 0 ? void 0 : option.isNetwork) && ((0, jsx_runtime_1.jsx)("span", { style: {
33
- backgroundColor: '#c49f47',
34
- color: '#ffffff',
35
- fontSize: '13px',
36
- marginLeft: '4px',
37
- padding: '1px 4px !important',
38
- borderRadius: '2px',
39
- }, children: "Network" }))] }))); } }));
33
+ }, sx: { marginRight: function (theme) { return theme.spacing(2); } }, getOptionLabel: function (option) { return (option === null || option === void 0 ? void 0 : option.campaignName) || ''; }, value: campaigns.find(function (item) { return item.campaignId === filter.campaignId; }), renderInput: function (params) { return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({}, params, { label: t('CampaignPlan.CampaignName') }))); }, renderOption: function (props, option) { return ((0, react_1.createElement)("li", __assign({}, props, { key: option.campaignId }), option.campaignName || option.campaignId)); } }));
40
34
  }
41
35
  exports.default = SearchCampaign;
@@ -33,11 +33,22 @@ export interface ScheduleCompletionRatePropsContext {
33
33
  service: ScheduleCompletionRateService;
34
34
  }
35
35
  export interface ScheduleCompletionRateService {
36
- scheduleCompletionRatesGet: (fromDate: string | undefined, toDate: string | undefined, cancelToken?: CancelToken) => Promise<ScheduleCompletionRate[]>;
37
- scheduleCompletionRatesQuery: (fromDate: string | undefined, toDate: string | undefined, cancelToken?: CancelToken) => Promise<CampaignPlanModel[]>;
38
- scheduleCompletionRatesExport: (fromDate: string | undefined, toDate: string | undefined, campaignId: string | undefined, groupId: number | undefined, cancelToken?: CancelToken) => Promise<ScheduleCompletionRateExport[]>;
36
+ scheduleCompletionRatesGet: (body: ScheduleCompletionRateDTO | undefined, cancelToken?: CancelToken) => Promise<ScheduleCompletionRate[]>;
39
37
  placesGetAllByPlaceGroupHasPermission: (cancelToken?: CancelToken) => Promise<Place[]>;
40
- scheduleCompletionRatesPaging: (fromDate: string | undefined, toDate: string | undefined, campaignId: string | undefined, groupId: number | undefined, groupBy: string | undefined, pageIndex: number | undefined, pageSize: number | undefined, cancelToken?: CancelToken) => Promise<PagedList_1OfScheduleCompletionRatePaging>;
38
+ }
39
+ export interface CampaignAdGroup {
40
+ campaignId?: string;
41
+ campaignGroupId?: number | undefined;
42
+ campaignAdId?: number | undefined;
43
+ }
44
+ export interface ScheduleCompletionRateDTO {
45
+ fromDate?: string;
46
+ toDate?: string;
47
+ campaignAdGroups?: CampaignAdGroup[] | undefined;
48
+ placeIds?: string[] | undefined;
49
+ domainIds?: string[] | undefined;
50
+ /** Cấp độ truy vấn. O = lấy tất cả theo campaign group, 1 = lấy theo campaign group date, 2 = lấy theo campaign, group, date và place */
51
+ level?: number;
41
52
  }
42
53
  export interface Place {
43
54
  placeId?: string;
@@ -101,41 +112,10 @@ export interface IScheduleCompletionRatePaging {
101
112
  totalQuantity?: number;
102
113
  totalRun?: number;
103
114
  }
104
- export interface PagedList_1OfScheduleCompletionRatePaging {
105
- items?: ScheduleCompletionRatePaging[] | undefined;
106
- pageCount?: number;
107
- totalItemCount?: number;
108
- pageNumber?: number;
109
- pageSize?: number;
110
- hasPreviousPage?: boolean;
111
- hasNextPage?: boolean;
112
- }
113
- export interface ScheduleCompletionRateExport {
114
- campaignId?: string;
115
- placeId?: string;
116
- groupId?: number;
117
- groupName?: string | undefined;
118
- billingUnit?: AnalyticType;
119
- runs?: AnalyticEventSummary[] | undefined;
120
- expecteds?: AnalyticEventSummary[] | undefined;
121
- date?: string;
122
- }
123
115
  export interface Timestamp {
124
116
  seconds?: string;
125
117
  nanos?: number;
126
118
  }
127
- export interface Campaign {
128
- id?: string;
129
- directoryId?: string;
130
- directoryPath?: string | undefined;
131
- name?: string | undefined;
132
- createdDate?: Timestamp;
133
- isNetwork?: boolean;
134
- }
135
- export interface CampaignPlanModel {
136
- campaign?: Campaign;
137
- isNetworkCampaign?: boolean;
138
- }
139
119
  export declare enum AnalyticType {
140
120
  View = 0,
141
121
  Authentication = 1,
@@ -150,12 +130,12 @@ export interface ScheduleCompletionRate {
150
130
  campaignId?: string;
151
131
  campaignName?: string | undefined;
152
132
  billingUnit?: AnalyticType;
153
- isNetWork?: boolean;
154
133
  placeId?: string;
155
134
  groupId?: number;
156
135
  groupName?: string | undefined;
157
136
  runs?: AnalyticEventSummary[] | undefined;
158
137
  expecteds?: AnalyticEventSummary[] | undefined;
138
+ date?: string;
159
139
  fromDate?: string;
160
140
  toDate?: string;
161
141
  }
@@ -4,7 +4,7 @@
4
4
  *
5
5
  **/
6
6
  import moment from 'moment';
7
- import { AnalyticEventSummary, Campaign, Place, ScheduleCompletionRate, ScheduleCompletionRateExport } from './Types';
7
+ import { AnalyticEventSummary, Place, ScheduleCompletionRate } from './Types';
8
8
  export declare const QueryInputDetail: {
9
9
  pageIndex: number;
10
10
  pageSize: number;
@@ -14,24 +14,24 @@ export declare const DefaultValueFilter: {
14
14
  endDate: moment.Moment;
15
15
  campaignId: string;
16
16
  };
17
- export declare const convertExcelData: (resData: ScheduleCompletionRateExport[], campaigns: Campaign[], places: Place[], t: any, typeView: number) => any;
17
+ export declare const convertExcelData: (resData: ScheduleCompletionRate[], campaigns: ScheduleCompletionRate[], places: Place[], typeView: number) => any;
18
18
  export interface IScheduleCompletionRateTypeView {
19
19
  type: number;
20
20
  }
21
21
  export declare const getValue: (itemType: AnalyticEventSummary[], billingUnit: number, type: number) => number;
22
- export declare const converData: (data: ScheduleCompletionRate[], typeView: number, billingUnit?: number) => {
22
+ export declare const converData: (data: ScheduleCompletionRate[], typeView: number) => {
23
23
  totalRun: number;
24
- billingUnit: number | undefined;
24
+ billingUnit: import("./Types").AnalyticType | undefined;
25
25
  totalQuantity: number;
26
26
  rate: number;
27
27
  campaignId?: string | undefined;
28
28
  campaignName?: string | undefined;
29
- isNetWork?: boolean | undefined;
30
29
  placeId?: string | undefined;
31
30
  groupId?: number | undefined;
32
31
  groupName?: string | undefined;
33
32
  runs?: AnalyticEventSummary[] | undefined;
34
33
  expecteds?: AnalyticEventSummary[] | undefined;
34
+ date?: string | undefined;
35
35
  fromDate?: string | undefined;
36
36
  toDate?: string | undefined;
37
37
  }[];
@@ -30,6 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.converData = exports.getValue = exports.convertExcelData = exports.DefaultValueFilter = exports.QueryInputDetail = void 0;
32
32
  var lodash_1 = __importDefault(require("lodash"));
33
+ var i18n_1 = __importDefault(require("../../i18n"));
33
34
  var moment_1 = __importDefault(require("moment"));
34
35
  var Enum_1 = require("../../ACM-AXN/Common/Enum");
35
36
  var Constant_1 = require("../../ACM-AXN/Common/Constant");
@@ -39,22 +40,24 @@ exports.QueryInputDetail = {
39
40
  };
40
41
  exports.DefaultValueFilter = {
41
42
  startDate: (0, moment_1.default)().subtract(7, 'days'),
42
- endDate: (0, moment_1.default)(),
43
+ endDate: (0, moment_1.default)().add(-1, 'days'),
43
44
  campaignId: '0',
44
45
  };
45
- var convertExcelData = function (resData, campaigns, places, t, typeView) {
46
+ var convertExcelData = function (resData, campaigns, places, typeView) {
46
47
  var excelData = __spreadArray([], resData.map(function (data) {
47
48
  var _a, _b, _c;
48
- var filterCampaignName = (_a = campaigns.find(function (item) { return item.id === data.campaignId; })) === null || _a === void 0 ? void 0 : _a.name;
49
+ var filterCampaignName = (_a = campaigns.find(function (item) {
50
+ return item.campaignId === data.campaignId;
51
+ })) === null || _a === void 0 ? void 0 : _a.campaignName;
49
52
  var campaignName = Number(data === null || data === void 0 ? void 0 : data.campaignId) !== -1
50
53
  ? filterCampaignName
51
- : t('ScheduleCompletionRate.CampaignDefault');
54
+ : i18n_1.default.t('ScheduleCompletionRate.CampaignDefault');
52
55
  var placeName = (_c = (_b = places.find(function (item) { return item.placeId === (data === null || data === void 0 ? void 0 : data.placeId); })) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';
53
56
  var totalQuantity = getEventTotal(data === null || data === void 0 ? void 0 : data.expecteds, typeView === Constant_1.TypeView.impression
54
57
  ? Constant_1.ValueAnalyticType.VIEW
55
58
  : Constant_1.ValueAnalyticType.AUTHENTICATION) || 0;
56
59
  var totalRun = (0, exports.getValue)(data === null || data === void 0 ? void 0 : data.runs, data === null || data === void 0 ? void 0 : data.billingUnit, typeView);
57
- var rate = totalQuantity !== 0 ? (totalRun / totalQuantity) * 100 : 0;
60
+ var rate = totalQuantity > 0 ? (totalRun / totalQuantity) * 100 : 0;
58
61
  return {
59
62
  campaignName: campaignName,
60
63
  groupName: !data.groupName ? 'IS-NULL' : data.groupName,
@@ -77,12 +80,12 @@ var getEventTotal = function (itemType, label) {
77
80
  };
78
81
  var getValue = function (itemType, billingUnit, type) {
79
82
  var value = 0;
80
- if (type === Constant_1.TypeView.impression || billingUnit === Enum_1.AnalyticType.VIEW) {
83
+ if (type === Constant_1.TypeView.impression || billingUnit === Enum_1.AnalyticType.View) {
81
84
  value = getEventTotal(itemType, Constant_1.ValueAnalyticType.VIEW) || 0;
82
85
  }
83
86
  else {
84
87
  switch (billingUnit) {
85
- case Enum_1.AnalyticType.AUTHENTICATION:
88
+ case Enum_1.AnalyticType.Authentication:
86
89
  value =
87
90
  getEventTotal(itemType, Constant_1.ValueAnalyticType.AUTHENTICATION) ||
88
91
  0;
@@ -95,14 +98,14 @@ var getValue = function (itemType, billingUnit, type) {
95
98
  return value;
96
99
  };
97
100
  exports.getValue = getValue;
98
- var converData = function (data, typeView, billingUnit) {
101
+ var converData = function (data, typeView) {
99
102
  return data.map(function (item) {
100
103
  var totalQuantity = getEventTotal(item === null || item === void 0 ? void 0 : item.expecteds, typeView === Constant_1.TypeView.impression
101
104
  ? Constant_1.ValueAnalyticType.VIEW
102
105
  : Constant_1.ValueAnalyticType.AUTHENTICATION) || 0;
103
- var totalRun = (0, exports.getValue)(item === null || item === void 0 ? void 0 : item.runs, Number((item === null || item === void 0 ? void 0 : item.billingUnit) || billingUnit), typeView);
104
- var rate = (totalRun / totalQuantity) * 100;
105
- return __assign(__assign({}, item), { totalRun: totalRun, billingUnit: (item === null || item === void 0 ? void 0 : item.billingUnit) || billingUnit, totalQuantity: totalQuantity, rate: !isNaN(rate) && Number.isFinite(rate) ? rate : 0 });
106
+ var totalRun = (0, exports.getValue)(item === null || item === void 0 ? void 0 : item.runs, Number(item === null || item === void 0 ? void 0 : item.billingUnit), typeView);
107
+ var rate = totalQuantity > 0 ? (totalRun / totalQuantity) * 100 : 0;
108
+ return __assign(__assign({}, item), { totalRun: totalRun, billingUnit: item === null || item === void 0 ? void 0 : item.billingUnit, totalQuantity: totalQuantity, rate: rate });
106
109
  });
107
110
  };
108
111
  exports.converData = converData;
@@ -93,7 +93,7 @@ function ControlPanel(_a) {
93
93
  var handleElementInput = function (initialFilters) {
94
94
  var updatedElementInputs = [];
95
95
  initialFilters.map(function (item, idx) {
96
- var _a, _b, _c, _d, _e, _f;
96
+ var _a, _b, _c, _d, _e, _f, _g;
97
97
  switch (item === null || item === void 0 ? void 0 : item.type) {
98
98
  case Enums_1.TYPE_FILTERS.VIEW_BY: {
99
99
  var element = __assign({ component: ((0, jsx_runtime_1.jsx)(material_1.TextField, { select: true, fullWidth: true, label: t('Common.ViewBy'), size: "small", onChange: function (e) {
@@ -123,8 +123,20 @@ function ControlPanel(_a) {
123
123
  updatedElementInputs.push(element);
124
124
  break;
125
125
  }
126
+ case Enums_1.TYPE_FILTERS.SEARCH_BY_PLACE: {
127
+ var element = __assign({ component: ((0, jsx_runtime_1.jsx)(material_1.TextField, { select: true, fullWidth: true, label: t('Common.TitleTypeView'), size: "small", onChange: function (e) {
128
+ return handleChangeQueryInput &&
129
+ handleChangeQueryInput(item === null || item === void 0 ? void 0 : item.name, e.target.value);
130
+ }, SelectProps: {
131
+ native: true,
132
+ }, variant: "outlined", style: { minWidth: 150 }, disabled: false, children: (_a = item === null || item === void 0 ? void 0 : item.initialData) === null || _a === void 0 ? void 0 : _a.map(function (data, index) {
133
+ return ((0, jsx_runtime_1.jsx)("option", { value: data.value, children: data.label }, item.value));
134
+ }) }, idx)), isEnhanced: (item === null || item === void 0 ? void 0 : item.isEnhanced) ? item === null || item === void 0 ? void 0 : item.isEnhanced : false, name: 'SearchByPlace' }, item);
135
+ updatedElementInputs.push(element);
136
+ break;
137
+ }
126
138
  case Enums_1.TYPE_FILTERS.DATE_RANGE_PICKER: {
127
- var element = __assign({ component: ((0, jsx_runtime_1.jsx)(AWING_1.DateRangePicker, __assign({ isShowCalendarInfo: (_a = item === null || item === void 0 ? void 0 : item.isShowCalendarInfo) !== null && _a !== void 0 ? _a : true, isFutureDate: (_b = item === null || item === void 0 ? void 0 : item.isFutureDate) !== null && _b !== void 0 ? _b : false, label: "".concat(t('Common.StartDate'), " - ").concat(t('Common.EndDate')), initialStartDate: (_c = item === null || item === void 0 ? void 0 : item.defaultValue) === null || _c === void 0 ? void 0 : _c.startDate, initialEndDate: (_d = item === null || item === void 0 ? void 0 : item.defaultValue) === null || _d === void 0 ? void 0 : _d.endDate, variant: "outlined", textFieldProps: {
139
+ var element = __assign({ component: ((0, jsx_runtime_1.jsx)(AWING_1.DateRangePicker, __assign({ isShowCalendarInfo: (_b = item === null || item === void 0 ? void 0 : item.isShowCalendarInfo) !== null && _b !== void 0 ? _b : true, isFutureDate: (_c = item === null || item === void 0 ? void 0 : item.isFutureDate) !== null && _c !== void 0 ? _c : false, label: "".concat(t('Common.StartDate'), " - ").concat(t('Common.EndDate')), initialStartDate: (_d = item === null || item === void 0 ? void 0 : item.defaultValue) === null || _d === void 0 ? void 0 : _d.startDate, initialEndDate: (_e = item === null || item === void 0 ? void 0 : item.defaultValue) === null || _e === void 0 ? void 0 : _e.endDate, variant: "outlined", textFieldProps: {
128
140
  fullWidth: true,
129
141
  className: classes.outlinedInput,
130
142
  }, callback: handleChangeDateRange }, ((item === null || item === void 0 ? void 0 : item.isDayBlocked) && {
@@ -167,7 +179,7 @@ function ControlPanel(_a) {
167
179
  break;
168
180
  }
169
181
  case Enums_1.TYPE_FILTERS.NETWORK: {
170
- var element = __assign({ component: ((0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { color: "primary", defaultChecked: (_e = queryInput === null || queryInput === void 0 ? void 0 : queryInput.isCampaignNetwork) !== null && _e !== void 0 ? _e : true }), label: t('Statistic.Network.Title'), labelPlacement: "start", onChange: function (e) {
182
+ var element = __assign({ component: ((0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { color: "primary", defaultChecked: (_f = queryInput === null || queryInput === void 0 ? void 0 : queryInput.isCampaignNetwork) !== null && _f !== void 0 ? _f : true }), label: t('Statistic.Network.Title'), labelPlacement: "start", onChange: function (e) {
171
183
  handleChangeQueryInput(item === null || item === void 0 ? void 0 : item.name, e.target.checked);
172
184
  } }, idx)), isEnhanced: (item === null || item === void 0 ? void 0 : item.isEnhanced) ? item === null || item === void 0 ? void 0 : item.isEnhanced : false, name: 'isCampaignNetwork' }, item);
173
185
  updatedElementInputs.push(element);
@@ -181,7 +193,7 @@ function ControlPanel(_a) {
181
193
  break;
182
194
  }
183
195
  case Enums_1.TYPE_FILTERS.INCLUDE_RESERVED: {
184
- var element = __assign({ component: ((0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { color: "primary", defaultChecked: (_f = queryInput === null || queryInput === void 0 ? void 0 : queryInput.includeReserved) !== null && _f !== void 0 ? _f : true }), label: t('StatisticSchedulePlan.IncludeCampaignReserved'), labelPlacement: "start", onChange: function (e) {
196
+ var element = __assign({ component: ((0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { color: "primary", defaultChecked: (_g = queryInput === null || queryInput === void 0 ? void 0 : queryInput.includeReserved) !== null && _g !== void 0 ? _g : true }), label: t('StatisticSchedulePlan.IncludeCampaignReserved'), labelPlacement: "start", onChange: function (e) {
185
197
  handleChangeQueryInput(item === null || item === void 0 ? void 0 : item.name, e.target.checked);
186
198
  } }, idx)), isEnhanced: (item === null || item === void 0 ? void 0 : item.isEnhanced) ? item === null || item === void 0 ? void 0 : item.isEnhanced : false, name: 'includeReserved' }, item);
187
199
  updatedElementInputs.push(element);
@@ -9,7 +9,8 @@ export declare enum TYPE_FILTERS {
9
9
  NETWORK = "NetWork",
10
10
  CAMPAIGN_DEFAULT = "CampaignDefault",
11
11
  INCLUDE_RESERVED = "IncludeReserved",
12
- DATE_RANGE_PICKER = "DateRangePicker"
12
+ DATE_RANGE_PICKER = "DateRangePicker",
13
+ SEARCH_BY_PLACE = "SearchByPlace"
13
14
  }
14
15
  export declare enum TYPE_CHART {
15
16
  PIE = "Pie",
@@ -14,6 +14,7 @@ var TYPE_FILTERS;
14
14
  TYPE_FILTERS["CAMPAIGN_DEFAULT"] = "CampaignDefault";
15
15
  TYPE_FILTERS["INCLUDE_RESERVED"] = "IncludeReserved";
16
16
  TYPE_FILTERS["DATE_RANGE_PICKER"] = "DateRangePicker";
17
+ TYPE_FILTERS["SEARCH_BY_PLACE"] = "SearchByPlace";
17
18
  })(TYPE_FILTERS || (exports.TYPE_FILTERS = TYPE_FILTERS = {}));
18
19
  var TYPE_CHART;
19
20
  (function (TYPE_CHART) {
@@ -62,6 +62,7 @@ var AgeRangeTabs = function (_a) {
62
62
  fill: true,
63
63
  borderWidth: 2,
64
64
  yAxisID: 'y',
65
+ variant: '3',
65
66
  },
66
67
  ];
67
68
  };
@@ -41,7 +41,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
41
41
  var jsx_runtime_1 = require("react/jsx-runtime");
42
42
  var icons_material_1 = require("@mui/icons-material");
43
43
  var material_1 = require("@mui/material");
44
- var immer_1 = __importDefault(require("immer"));
44
+ var immer_1 = require("immer");
45
45
  var react_1 = __importDefault(require("react"));
46
46
  var react_i18next_1 = require("react-i18next");
47
47
  var react_router_dom_1 = require("react-router-dom");
@@ -119,13 +119,13 @@ var CreateOrEdit = function () {
119
119
  var handleInputParamChange = function (path, value) {
120
120
  setConfirmExit(true);
121
121
  var keys = path.split('.');
122
- setJobModel((0, immer_1.default)(function (draft) {
122
+ setJobModel((0, immer_1.produce)(function (draft) {
123
123
  (0, Helpers_1.setObject)(draft, keys, value);
124
124
  // draft.inputParameters[index] = item
125
125
  }));
126
126
  };
127
127
  var handleJobActionChange = function (jobAction) {
128
- setJobModel((0, immer_1.default)(function (draf) {
128
+ setJobModel((0, immer_1.produce)(function (draf) {
129
129
  draf.inputParameters = jobAction.parameters.map(function (x) { return ({
130
130
  key: x.name,
131
131
  operator: x.operators[0],