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
@@ -10,26 +10,36 @@ 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
+ };
13
22
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
23
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
24
  };
16
25
  Object.defineProperty(exports, "__esModule", { value: true });
17
26
  var jsx_runtime_1 = require("react/jsx-runtime");
27
+ var Enum_1 = require("../../../../../ACM-AXN/Campaign/Enum");
28
+ var exportFile_1 = require("../../../../../ACM-AXN/CampaignSchedule/exportFile");
29
+ var Enum_2 = require("../../../../../ACM-AXN/Common/Enum");
30
+ var Helpers_1 = require("../../../../../Utils/Helpers");
31
+ var lodash_1 = require("lodash");
32
+ var moment_1 = __importDefault(require("moment"));
18
33
  var react_1 = require("react");
34
+ var Context_1 = __importDefault(require("../Context"));
19
35
  var common_1 = require("../common");
20
36
  var Utils_1 = require("./Utils");
21
37
  var component_1 = __importDefault(require("./component"));
22
- var moment_1 = __importDefault(require("moment"));
23
- var Enum_1 = require("../../../../../ACM-AXN/Campaign/Enum");
24
- var lodash_1 = require("lodash");
25
- var Context_1 = __importDefault(require("../Context"));
26
- var exportFile_1 = require("../../../../../ACM-AXN/CampaignSchedule/exportFile");
27
38
  var AnalyticContainer = function (props) {
28
- var campaignId = props.campaignId, startDate = props.startDate, endDate = props.endDate, subCampaigns = props.subCampaigns, domains = props.domains;
39
+ var campaignId = props.campaignId, startDate = props.startDate, endDate = props.endDate, subCampaigns = props.subCampaigns, domains = props.domains, campaignName = props.campaignName, fullPlaces = props.fullPlaces;
29
40
  var client = (0, Context_1.default)().services;
30
41
  var _a = (0, react_1.useState)(true), isLoading = _a[0], setIsLoading = _a[1];
31
42
  var _b = (0, react_1.useState)([]), statisticalChartData = _b[0], setStatisticalChartData = _b[1];
32
- var _c = (0, react_1.useState)([]), statisticalData = _c[0], setStatisticalData = _c[1];
33
43
  var placesOfCampaign = (0, react_1.useMemo)(function () {
34
44
  var result = [];
35
45
  subCampaigns.forEach(function (sub) {
@@ -51,7 +61,11 @@ var AnalyticContainer = function (props) {
51
61
  var _a;
52
62
  (_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
53
63
  var _a;
54
- if (ids.find(function (id) { var _a; return id.campaignGroupId == ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) && (!id.campaignAdId || id.campaignAdId == (ad === null || ad === void 0 ? void 0 : ad.id)); })) {
64
+ if (ids.find(function (id) {
65
+ var _a;
66
+ return id.campaignGroupId == ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
67
+ (!id.campaignAdId || id.campaignAdId == (ad === null || ad === void 0 ? void 0 : ad.id));
68
+ })) {
55
69
  (_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.forEach(function (place) {
56
70
  if (!result.find(function (r) { return r.placeId == place.placeId; })) {
57
71
  result.push(place);
@@ -70,65 +84,116 @@ var AnalyticContainer = function (props) {
70
84
  : selectedPlaces;
71
85
  var selectedDomains = (0, Utils_1.placesToDomains)(selectedPlaces, domains);
72
86
  setIsLoading(true);
73
- client.campaignStatisticGet({
87
+ client
88
+ .campaignStatisticGet({
74
89
  startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
75
90
  endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
76
91
  timelineType: timelineType,
77
- campaignAdGroups: ids.length ? ids.map(function (id) { return (__assign(__assign({}, id), { campaignId: campaignId })); }) : [{ campaignId: campaignId }],
92
+ campaignAdGroups: ids.length
93
+ ? ids.map(function (id) { return (__assign(__assign({}, id), { campaignId: campaignId })); })
94
+ : [{ campaignId: campaignId }],
95
+ analyticGroupBies: __spreadArray([
96
+ Enum_2.AnalyticGroupBy.GbEventLabel,
97
+ Enum_2.AnalyticGroupBy.GbTimeline,
98
+ Enum_2.AnalyticGroupBy.GbCampaignGroupId,
99
+ Enum_2.AnalyticGroupBy.GbCampaignAdId
100
+ ], statisticType ? [Enum_2.AnalyticGroupBy.GbPlaceId] : [], true),
78
101
  placeIds: placeIds,
79
- includedEventLabels: Object.values(Enum_1.BaseEvent)
80
- }).then(function (res) {
81
- setStatisticalData((0, Utils_1.markBillingType)(subCampaigns, res));
82
- setStatisticalChartData(statisticType ? (0, Utils_1.convertToShowDetail)(subCampaigns, res, selectedDomains, selectedPlaces) : res);
83
- }).finally(function () { return setIsLoading(false); });
102
+ includedEventLabels: Object.values(Enum_1.BaseEvent),
103
+ })
104
+ .then(function (res) {
105
+ setStatisticalChartData(statisticType
106
+ ? (0, Utils_1.convertToShowDetail)(subCampaigns, res, selectedDomains, selectedPlaces)
107
+ : res);
108
+ })
109
+ .finally(function () { return setIsLoading(false); });
84
110
  };
85
111
  var exportData = function (time, placeIds, timelineType, exportType, ids) {
86
112
  var selectedPlaces = placeIds.length > 0
87
113
  ? placesOfCampaign.filter(function (p) { return placeIds.includes(p.placeId); })
88
114
  : placesOfCampaign;
89
- // downloadWithDataSet
90
115
  var selectedDomains = (0, Utils_1.placesToDomains)(selectedPlaces, domains);
91
- var exportObj = {
92
- name: "export_statistic_campaign_".concat(campaignId),
93
- data: []
94
- };
95
- switch (exportType) {
96
- case common_1.EXPORT_TYPES.Domain: {
97
- var newObjects = (0, lodash_1.chain)(selectedDomains)
98
- .groupBy('domainId')
99
- .map(function (value) {
100
- var currentPlaces = value
101
- .map(function (x) { return x.places; })
102
- .reduce(function (a, b) { return a.concat(b); }, []);
103
- return {
104
- objectId: value[0].domainId,
105
- objectName: value[0].domainName,
106
- places: currentPlaces,
107
- };
108
- })
109
- .value();
110
- exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(statisticalData, newObjects, timelineType, 'Domain');
111
- exportObj.name += '_groupby_domain';
112
- break;
113
- }
114
- case common_1.EXPORT_TYPES.Export: {
115
- exportObj.data = (0, Utils_1.convertToExport)(subCampaigns, statisticalData, timelineType, selectedPlaces);
116
- exportObj.name += '_total';
117
- break;
116
+ var analyticInfo = (0, Utils_1.campaignAnalyticInfo)(ids.length ? subCampaigns.filter(function (s) { return ids.map(function (i) { return String(i.campaignGroupId); }).includes(String(s.campaignGroup.id)); }) : subCampaigns);
117
+ return client
118
+ .campaignStatisticGet({
119
+ startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
120
+ endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
121
+ timelineType: timelineType,
122
+ campaignAdGroups: ids.length
123
+ ? ids.map(function (id) { return (__assign(__assign({}, id), { campaignId: campaignId })); })
124
+ : [{ campaignId: campaignId }],
125
+ analyticGroupBies: [
126
+ Enum_2.AnalyticGroupBy.GbEventLabel,
127
+ Enum_2.AnalyticGroupBy.GbTimeline,
128
+ Enum_2.AnalyticGroupBy.GbCampaignGroupId,
129
+ Enum_2.AnalyticGroupBy.GbCampaignAdId,
130
+ Enum_2.AnalyticGroupBy.GbPlaceId,
131
+ ],
132
+ placeIds: placeIds,
133
+ includedEventLabels: Object.values(Enum_1.BaseEvent),
134
+ })
135
+ .then(function (res) {
136
+ var statisticalData = (0, Utils_1.markBillingType)(subCampaigns, res);
137
+ var exportObj = {
138
+ name: '',
139
+ data: [],
140
+ };
141
+ switch (exportType) {
142
+ case common_1.EXPORT_TYPES.Domain: {
143
+ var domainObj = (0, lodash_1.chain)(selectedDomains)
144
+ .groupBy('domainId')
145
+ .map(function (value) {
146
+ var currentPlaces = value
147
+ .map(function (x) { return x.places; })
148
+ .reduce(function (a, b) { return a.concat(b); }, []);
149
+ return {
150
+ objectId: value[0].domainId,
151
+ objectName: value[0].domainName,
152
+ places: currentPlaces,
153
+ };
154
+ })
155
+ .value();
156
+ exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(statisticalData, domainObj, timelineType, 'Domain', campaignName !== null && campaignName !== void 0 ? campaignName : '');
157
+ exportObj.name += (0, Helpers_1.nameExportStandard)('Campaign', campaignName, 'groupby_domain');
158
+ break;
159
+ }
160
+ case common_1.EXPORT_TYPES.Export: {
161
+ exportObj.data = (0, Utils_1.convertToExport)(subCampaigns, statisticalData, timelineType, selectedPlaces, campaignName !== null && campaignName !== void 0 ? campaignName : '', fullPlaces);
162
+ exportObj.name += (0, Helpers_1.nameExportStandard)('Campaign', campaignName, 'total');
163
+ break;
164
+ }
165
+ case common_1.EXPORT_TYPES.LocationGroup: {
166
+ exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(statisticalData, (0, Utils_1.dataGroupByPlace)(subCampaigns, ids), timelineType, 'Sub Campaign', campaignName !== null && campaignName !== void 0 ? campaignName : '');
167
+ exportObj.name += (0, Helpers_1.nameExportStandard)('Campaign', campaignName, 'groupby_subcampaign');
168
+ break;
169
+ }
170
+ case common_1.EXPORT_TYPES.Ad: {
171
+ exportObj.data = (0, Utils_1.convertToExportByAd)(subCampaigns, statisticalData, timelineType, campaignName !== null && campaignName !== void 0 ? campaignName : '');
172
+ exportObj.name += (0, Helpers_1.nameExportStandard)('Campaign', campaignName, 'ad');
173
+ break;
174
+ }
175
+ default: {
176
+ exportObj.data = (0, Utils_1.convertToExportData)(statisticalData, selectedPlaces, timelineType, campaignName !== null && campaignName !== void 0 ? campaignName : '', fullPlaces);
177
+ exportObj.name += (0, Helpers_1.nameExportStandard)('Campaign', campaignName, 'groupby_place');
178
+ break;
179
+ }
118
180
  }
119
- case common_1.EXPORT_TYPES.LocationGroup: {
120
- exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(statisticalData, (0, Utils_1.dataGroupByPlace)(subCampaigns, ids), timelineType, 'Sub Campaign');
121
- exportObj.name += '_groupby_subcampaign';
122
- break;
181
+ if (analyticInfo === null || analyticInfo === void 0 ? void 0 : analyticInfo.isAllReLabel) {
182
+ exportObj.data.forEach(function (data, index) {
183
+ exportObj.data[index].columns = data.columns.filter(function (_, index) { return index !== data.columns.length - 2; });
184
+ exportObj.data[index].data = data.data.map(function (col) { return col.filter(function (_, index) { return index !== col.length - 2; }); });
185
+ });
123
186
  }
124
- default: {
125
- exportObj.data = (0, Utils_1.convertToExportData)(statisticalData, selectedPlaces, timelineType);
126
- exportObj.name += '_groupby_place';
127
- break;
187
+ if (!(analyticInfo === null || analyticInfo === void 0 ? void 0 : analyticInfo.hasClick)) {
188
+ exportObj.data.forEach(function (data, index) {
189
+ exportObj.data[index].columns = data.columns.filter(function (_, index) { return index !== data.columns.length - 1; });
190
+ exportObj.data[index].data = data.data.map(function (col) { return col.filter(function (_, index) { return index !== col.length - 1; }); });
191
+ });
128
192
  }
129
- }
130
- (0, exportFile_1.downloadWithDataSet)(String(exportObj.name).toUpperCase(), exportObj.data);
131
- return;
193
+ (0, Utils_1.addHeaderExcel)(exportObj.data, campaignName !== null && campaignName !== void 0 ? campaignName : '');
194
+ (0, exportFile_1.downloadWithDataSet)(String(exportObj.name).toUpperCase(), exportObj.data);
195
+ return;
196
+ });
132
197
  };
133
198
  return ((0, jsx_runtime_1.jsx)(component_1.default, { domains: domains, startDate: startDate, endDate: endDate, subCampaigns: subCampaigns, isLoading: isLoading, statisticalData: statisticalChartData, getStatisticalData: getStatisticalData, exportData: exportData }));
134
199
  };
@@ -5,7 +5,7 @@ interface Props {
5
5
  isExportType: boolean;
6
6
  onChangeQueryInput: (changeType: string, newValue: any) => void;
7
7
  onQueryData: () => void;
8
- onExportData: (exportType?: string) => void;
8
+ onExportData: (exportType?: string) => void | Promise<void>;
9
9
  domains: any[];
10
10
  }
11
11
  declare const ChartFilterBox: (props: Props) => import("react/jsx-runtime").JSX.Element;
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
13
36
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
37
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
38
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -53,7 +76,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
53
76
  var jsx_runtime_1 = require("react/jsx-runtime");
54
77
  var GetApp_1 = __importDefault(require("@mui/icons-material/GetApp"));
55
78
  var material_1 = require("@mui/material");
56
- var react_1 = require("react");
79
+ var react_1 = __importStar(require("react"));
57
80
  var react_i18next_1 = require("react-i18next");
58
81
  // import { EnhancedDateRangePicker } from 'Components/DateRangePicker'
59
82
  var Helpers_1 = require("../../../../Utils/Helpers");
@@ -65,6 +88,7 @@ var SplitButtonExportType_1 = __importDefault(require("./SplitButtonExportType")
65
88
  var Enum_1 = require("../../../../ACM-AXN/Campaign/Enum");
66
89
  var i18n_1 = __importDefault(require("../../../../i18n"));
67
90
  var Context_1 = __importDefault(require("./Context"));
91
+ var lab_1 = require("@mui/lab");
68
92
  var textFieldStyle = {
69
93
  '& .MuiOutlinedInput-input': {
70
94
  padding: '10.5px !important',
@@ -89,7 +113,8 @@ var ChartFilterBox = function (props) {
89
113
  var
90
114
  // startDate, endDate,
91
115
  subCampaigns = props.subCampaigns, queryInput = props.queryInput, isExportType = props.isExportType, onChangeQueryInput = props.onChangeQueryInput, onQueryData = props.onQueryData, onExportData = props.onExportData, domains = props.domains;
92
- var _a = (0, Context_1.default)(), client = _a.services, PlaceMultiSelect = _a.placeMultiSelectComponent;
116
+ var _a = react_1.default.useState(false), loading = _a[0], setLoading = _a[1];
117
+ var _b = (0, Context_1.default)(), client = _b.services, PlaceMultiSelect = _b.placeMultiSelectComponent;
93
118
  var placeGroups = (0, react_1.useMemo)(function () {
94
119
  return subCampaigns.map(function (x) { return ({
95
120
  groupId: x.campaignGroup.id,
@@ -209,6 +234,23 @@ var ChartFilterBox = function (props) {
209
234
  MONTH: t('Common.Month'),
210
235
  },
211
236
  };
237
+ var handleExport = react_1.default.useCallback(function (type) {
238
+ if (type === void 0) { type = ''; }
239
+ setLoading(true);
240
+ var result = onExportData(typeof type === 'string' ? type : '');
241
+ if (result instanceof Promise) {
242
+ result
243
+ .then(function () {
244
+ setLoading(false);
245
+ })
246
+ .catch(function () {
247
+ setLoading(false);
248
+ });
249
+ }
250
+ else {
251
+ setLoading(false);
252
+ }
253
+ }, [onExportData]);
212
254
  return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1 }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(AWING_1.DateRangePicker
213
255
  // noBorder
214
256
  , {
@@ -225,13 +267,9 @@ var ChartFilterBox = function (props) {
225
267
  variant: "outlined", textFieldProps: {
226
268
  fullWidth: true,
227
269
  sx: textFieldStyle,
228
- } }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, children: (0, jsx_runtime_1.jsx)(PlaceMultiSelect
229
- // disableCheckPermission={true}
230
- , {
231
- // disableCheckPermission={true}
232
- onChange: placeMultiSelectSubmit, initialOption: {
270
+ } }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, children: (0, jsx_runtime_1.jsx)(PlaceMultiSelect, { disableCheckPermission: !client.domainsGetAll, onChange: placeMultiSelectSubmit, initialOption: {
233
271
  placeGroups: placeGroups,
234
272
  domains: domains.map(function (d) { return (__assign(__assign({}, d), { name: d.domainName })); }),
235
- }, isDisplayTextField: true, TextFieldProps: { sx: textFieldStyle }, onGetPlacesByFilter: handleGetPlacesByFilter }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { color: "primary", variant: "contained", fullWidth: true, onClick: function () { return onQueryData(); }, children: translationText.view }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: !isExportType ? ((0, jsx_runtime_1.jsx)(material_1.Button, { variant: "outlined", onClick: function () { return onExportData(); }, children: (0, jsx_runtime_1.jsx)(GetApp_1.default, {}) })) : ((0, jsx_runtime_1.jsx)(SplitButtonExportType_1.default, { onSubmit: function (exportType) { return onExportData(exportType); } })) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1 })] }));
273
+ }, isDisplayTextField: true, TextFieldProps: { sx: textFieldStyle }, onGetPlacesByFilter: handleGetPlacesByFilter }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { color: "primary", variant: "contained", fullWidth: true, onClick: function () { return onQueryData(); }, children: translationText.view }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: !isExportType ? ((0, jsx_runtime_1.jsx)(lab_1.LoadingButton, { variant: "outlined", onClick: handleExport, loading: loading, children: (0, jsx_runtime_1.jsx)(GetApp_1.default, {}) })) : ((0, jsx_runtime_1.jsx)(SplitButtonExportType_1.default, { loading: loading, onSubmit: onExportData })) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1 })] }));
236
274
  };
237
275
  exports.default = ChartFilterBox;
@@ -53,10 +53,11 @@ var Customer = function (props) {
53
53
  // noBorder
54
54
  label: t('Common.View'), callback: function (value) {
55
55
  var _a, _b;
56
- return changeQueryInput('time', {
57
- startDate: (0, Helpers_1.getStartOfDay)((_a = value === null || value === void 0 ? void 0 : value.startDate) === null || _a === void 0 ? void 0 : _a.toDate()),
58
- endDate: (0, Helpers_1.getStartOfDay)((_b = value === null || value === void 0 ? void 0 : value.endDate) === null || _b === void 0 ? void 0 : _b.toDate()),
59
- });
56
+ Object.values(value).filter(Boolean).length > 1 &&
57
+ changeQueryInput('time', {
58
+ startDate: (0, Helpers_1.getStartOfDay)((_a = value === null || value === void 0 ? void 0 : value.startDate) === null || _a === void 0 ? void 0 : _a.toDate()),
59
+ endDate: (0, Helpers_1.getStartOfDay)((_b = value === null || value === void 0 ? void 0 : value.endDate) === null || _b === void 0 ? void 0 : _b.toDate()),
60
+ });
60
61
  }, initialStartDate: (0, moment_1.default)(queryInput.time.startDate), initialEndDate: (0, moment_1.default)(queryInput.time.endDate), isShowCalendarInfo: true, variant: "outlined", textFieldProps: {
61
62
  fullWidth: true,
62
63
  sx: {
@@ -103,10 +104,10 @@ var Customer = function (props) {
103
104
  ' ' +
104
105
  (0, Helpers_1.roundDecimalNumber)(customerData.totalUser),
105
106
  type: 'line',
106
- data: customerData === null || customerData === void 0 ? void 0 : customerData.audienceObjects.map(function (item) { return ({
107
+ data: (0, Helpers_1.fillMissingDates)(customerData === null || customerData === void 0 ? void 0 : customerData.audienceObjects.map(function (item) { return ({
107
108
  x: String(item.timeline),
108
109
  y: item.totalUser,
109
- }); }).sort(function (a, b) { return Number(a.x) - Number(b.x); }),
110
+ }); }), queryInput.time.startDate, queryInput.time.endDate),
110
111
  fill: false,
111
112
  pointStyle: 'rect',
112
113
  yAxisID: 'y',
@@ -118,6 +119,7 @@ var Customer = function (props) {
118
119
  title: {
119
120
  text: t('Statistics.View'),
120
121
  },
122
+ beginAtZero: true,
121
123
  },
122
124
  yAxis: {
123
125
  display: false,
@@ -41,7 +41,7 @@ var CustomerContainer = function (props) {
41
41
  var getCustomerData = function (time) {
42
42
  setIsLoading(true);
43
43
  client
44
- .campaignStatisticGetCustomer((0, moment_1.default)(startDate).format(Enum_1.DATE_FORMAT), (0, moment_1.default)(endDate).format(Enum_1.DATE_FORMAT), campaignId)
44
+ .campaignStatisticGetCustomer((0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT), (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT), campaignId)
45
45
  .then(function (res) {
46
46
  var tmp_audienceOverviews = filteredData(res.audienceObjects, lodash_1.default.cloneDeep(time.startDate), lodash_1.default.cloneDeep(time.endDate));
47
47
  setCustomerData({
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  var jsx_runtime_1 = require("react/jsx-runtime");
4
7
  var styles_1 = require("@mui/styles");
5
8
  var material_1 = require("@mui/material");
6
9
  var react_i18next_1 = require("react-i18next");
7
10
  var Helpers_1 = require("../../../../../Utils/Helpers");
11
+ var i18n_1 = __importDefault(require("../../../../../i18n"));
8
12
  var useStyles = (0, styles_1.makeStyles)({
9
13
  table: {
10
14
  minWidth: 400,
@@ -19,7 +23,7 @@ var useStyles = (0, styles_1.makeStyles)({
19
23
  var EventTable = function (props) {
20
24
  var classes = useStyles();
21
25
  var eventDetails = props.data;
22
- var t = (0, react_i18next_1.useTranslation)().t;
26
+ var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
23
27
  var translationText = {
24
28
  eventLabel: t('Campaign.Detail.EventLabel'),
25
29
  number: t('Campaign.Detail.TotalEvents'),
@@ -47,18 +47,15 @@ exports.convertToExportData = exports.convertEventData = void 0;
47
47
  var Helpers_1 = require("../../../../../Utils/Helpers");
48
48
  var lodash_1 = __importStar(require("lodash"));
49
49
  var Utils_1 = require("../Utils");
50
- var convertEventData = function (data) { return (0, lodash_1.uniqBy)(data.map(function (el) {
50
+ var convertEventData = function (data) { return data.map(function (el) {
51
51
  return el.analyticEventSummaries.map(function (x, index, events) { return ({
52
52
  timeline: el.timeline,
53
53
  eventLabel: (0, Utils_1.extractEvent)(x.eventLabel).eventName,
54
54
  total: events
55
- .filter(function (e) {
56
- return (0, Utils_1.extractEvent)(e.eventLabel).eventName ===
57
- (0, Utils_1.extractEvent)(x.eventLabel).eventName;
58
- })
55
+ .filter(function (e) { return (0, lodash_1.isEqual)((0, Utils_1.extractEvent)(e.eventLabel), (0, Utils_1.extractEvent)(x.eventLabel)); })
59
56
  .reduce(function (total, e) { return total + e.total; }, 0),
60
57
  }); });
61
- }).flat(), "eventLabel"); };
58
+ }).flat(); };
62
59
  exports.convertEventData = convertEventData;
63
60
  function convertToExportData(data, places) {
64
61
  var headCell = new Set(['Place', 'Mac Address', 'Created date', 'View Number', 'Event label']);
@@ -75,7 +72,7 @@ function convertToExportData(data, places) {
75
72
  var columns = Array.from(headCell);
76
73
  var analytic = data.find(function (x) { return String(x.id) === el.analyticId; });
77
74
  var place = places.find(function (x) { return x.placeId === (analytic === null || analytic === void 0 ? void 0 : analytic.placeId); });
78
- var rowData = el.viewNumber !== 1 ? Array(3).fill('') : [
75
+ var rowData = [
79
76
  place ? place.name : analytic === null || analytic === void 0 ? void 0 : analytic.placeId,
80
77
  analytic === null || analytic === void 0 ? void 0 : analytic.macAddress,
81
78
  (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimestampToDateTime)(analytic.createdDate), 'DD/MM/YYYY, HH'),
@@ -49,7 +49,7 @@ var Event = function (props) {
49
49
  var queryData = function () {
50
50
  getEventData(queryInput.time, queryInput.placeIds, queryInput.ids);
51
51
  };
52
- function convertDataSetPattern(eventData) {
52
+ function convertDataSetPattern(eventData, time) {
53
53
  return lodash_1.default.chain(eventData)
54
54
  .groupBy('eventLabel')
55
55
  .map(function (data, eventLabel) {
@@ -69,7 +69,7 @@ var Event = function (props) {
69
69
  return {
70
70
  label: value.eventLabel + ' ' + (0, Helpers_1.roundDecimalNumber)(value.total),
71
71
  type: 'line',
72
- data: value.data,
72
+ data: (0, Helpers_1.fillMissingDates)(value.data, time.startDate, time.endDate),
73
73
  fill: false,
74
74
  pointStyle: 'rect',
75
75
  yAxisID: 'y',
@@ -134,7 +134,7 @@ var Event = function (props) {
134
134
  }
135
135
  return result;
136
136
  };
137
- var dataConvert = convertDataSetPattern(eventData);
137
+ var dataConvert = convertDataSetPattern(eventData, queryInput.time);
138
138
  return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(ChartFilter_1.default, { isExportType: false, subCampaigns: subCampaigns, queryInput: queryInput, onChangeQueryInput: changeQueryInput, onQueryData: queryData, onExportData: function () {
139
139
  return exportData(queryInput.time, queryInput.placeIds, queryInput.ids);
140
140
  }, domains: domains }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: isLoading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, sx: {
@@ -90,7 +90,7 @@ var EventContainer = function (props) {
90
90
  var places = placeIds.length ? placesOfCampaign.filter(function (p) {
91
91
  return placeIds.includes(p.placeId);
92
92
  }) : placesOfCampaign;
93
- client
93
+ return client
94
94
  .campaignStatisticGetEvents({
95
95
  startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
96
96
  endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  interface Props {
3
3
  onSubmit: (value: string) => void;
4
+ loading?: boolean;
4
5
  }
5
6
  declare const SplitButtonExportType: React.FC<Props>;
6
7
  export default SplitButtonExportType;
@@ -20,13 +20,25 @@ var material_1 = require("@mui/material");
20
20
  var ArrowDropDown_1 = __importDefault(require("@mui/icons-material/ArrowDropDown"));
21
21
  var common_1 = require("./common");
22
22
  var react_i18next_1 = require("react-i18next");
23
- var options = Object.values(common_1.EXPORT_TYPES).map(function (type, idx) { return type; });
23
+ var i18n_1 = __importDefault(require("../../../../i18n"));
24
+ var lab_1 = require("@mui/lab");
25
+ var Context_1 = __importDefault(require("./Context"));
24
26
  var SplitButtonExportType = function (props) {
25
- var onSubmit = props.onSubmit;
27
+ var onSubmit = props.onSubmit, loading = props.loading;
28
+ var services = (0, Context_1.default)().services;
26
29
  var _a = react_1.default.useState(false), open = _a[0], setOpen = _a[1];
27
30
  var anchorRef = react_1.default.useRef(null);
28
31
  var _b = react_1.default.useState(0), selectedIndex = _b[0], setSelectedIndex = _b[1];
29
- var t = (0, react_i18next_1.useTranslation)().t;
32
+ var options = react_1.default.useMemo(function () {
33
+ return Object.values(common_1.EXPORT_TYPES)
34
+ .map(function (type, idx) { return type; })
35
+ .filter(function (type) {
36
+ return services.domainsGetAll ? true : type !== 'Domain';
37
+ });
38
+ },
39
+ // eslint-disable-next-line react-hooks/exhaustive-deps
40
+ []);
41
+ var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
30
42
  var handleClick = function () {
31
43
  onSubmit(options[selectedIndex]);
32
44
  };
@@ -49,8 +61,9 @@ var SplitButtonExportType = function (props) {
49
61
  Domain: t("Campaign.ExportType.Domain"),
50
62
  Location: t('Campaign.ExportType.Location'),
51
63
  LocationGroup: t('Campaign.ExportType.LocationGroup'),
64
+ Ad: t('Campaign.ExportType.Ad'),
52
65
  };
53
- return ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, direction: "column", alignItems: "center", children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, xs: 12, children: [(0, jsx_runtime_1.jsxs)(material_1.ButtonGroup, { variant: "outlined", color: "inherit", ref: anchorRef, "aria-label": "split button", children: [(0, jsx_runtime_1.jsx)(material_1.Button, { onClick: handleClick, children: translationText[options[selectedIndex]] }), (0, jsx_runtime_1.jsx)(material_1.Button, { size: "small", "aria-controls": open ? 'split-button-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-label": "select merge strategy", "aria-haspopup": "menu", onClick: handleToggle, children: (0, jsx_runtime_1.jsx)(ArrowDropDown_1.default, {}) })] }), (0, jsx_runtime_1.jsx)(material_1.Popper, { style: { zIndex: 99999 }, open: open, anchorEl: anchorRef.current, transition: true, children: function (_a) {
66
+ return ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, direction: "column", alignItems: "center", children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, xs: 12, children: [(0, jsx_runtime_1.jsxs)(material_1.ButtonGroup, { disabled: loading, variant: "outlined", color: "inherit", ref: anchorRef, "aria-label": "split button", children: [(0, jsx_runtime_1.jsx)(lab_1.LoadingButton, { variant: 'outlined', onClick: handleClick, loading: loading, children: translationText[options[selectedIndex]] }), (0, jsx_runtime_1.jsx)(material_1.Button, { size: "small", "aria-controls": open ? 'split-button-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-label": "select merge strategy", "aria-haspopup": "menu", onClick: handleToggle, children: (0, jsx_runtime_1.jsx)(ArrowDropDown_1.default, {}) })] }), (0, jsx_runtime_1.jsx)(material_1.Popper, { style: { zIndex: 99999 }, open: open, anchorEl: anchorRef.current, transition: true, children: function (_a) {
54
67
  var TransitionProps = _a.TransitionProps, placement = _a.placement;
55
68
  return ((0, jsx_runtime_1.jsx)(material_1.Grow, __assign({}, TransitionProps, { style: {
56
69
  transformOrigin: placement === 'bottom'
@@ -2,6 +2,7 @@
2
2
  import { CampaignGroupModel, PlaceFilter } from '../../../../ACM-AXN/Campaign/Types';
3
3
  import { ShareType } from '../../../../ACM-AXN/Common/Enum';
4
4
  import { IStatisticDTO, Timestamp } from '../../../../ACM-AXN/Common/Types';
5
+ import { AdministrativeUnitType } from '../../../../ACM-AXN/Page/enums';
5
6
  import { BaseChartComponent } from 'react-chartjs-2/dist/types';
6
7
  export interface IAudienceObjectOverview {
7
8
  timeline?: number;
@@ -81,6 +82,12 @@ export type DateRange = {
81
82
  startDate: Date;
82
83
  endDate: Date;
83
84
  };
85
+ export type AdministrativeUnit = {
86
+ code?: string | undefined;
87
+ parentUnitCode?: string | undefined;
88
+ name?: string | undefined;
89
+ type?: AdministrativeUnitType;
90
+ };
84
91
  export interface CampaignAnalyticService {
85
92
  campaignStatisticGetEvents(body: IStatisticDTO | undefined): Promise<AnalyticEvent[]>;
86
93
  campaignStatisticGetCustomer(startDate: string | undefined, endDate: string | undefined, campaignId: string | undefined): Promise<AudienceObjectReply>;
@@ -88,12 +95,15 @@ export interface CampaignAnalyticService {
88
95
  domainsGetAll?: () => Promise<IDomain[]>;
89
96
  placesGetPagingByPlaceFilter: (pageIndex?: number, pageSize?: number, body?: PlaceFilter) => Promise<any>;
90
97
  placesGetByPlaceFilter: (body?: PlaceFilter) => Promise<any[]>;
98
+ administrativeUnitsGet: () => Promise<AdministrativeUnit[]>;
91
99
  }
92
100
  export interface CampaignAnalyticProps {
93
101
  placeMultiSelectComponent: (p?: any) => JSX.Element;
102
+ fullPlaces?: AdministrativeUnit[];
94
103
  chart: BaseChartComponent;
95
104
  services: CampaignAnalyticService;
96
105
  campaignId: string;
106
+ campaignName?: string;
97
107
  isNetwork?: boolean;
98
108
  subCampaigns: CampaignGroupModel[];
99
109
  }
@@ -27,7 +27,10 @@ var getTime = function (subCampaigns) {
27
27
  exports.getTime = getTime;
28
28
  var extractEvent = function (eventLabel) {
29
29
  if (eventLabel === void 0) { eventLabel = ''; }
30
- var _a = eventLabel.match(/^(\d+)_([\s\S]*)$/) || [], view = _a[1], eventName = _a[2];
30
+ if (!eventLabel) {
31
+ throw new Error('Event label is required');
32
+ }
33
+ var _a = eventLabel.match(/^(\d+)_([\s\S]*)$/) || ['', '1', eventLabel], view = _a[1], eventName = _a[2];
31
34
  return { view: view, eventName: eventName };
32
35
  };
33
36
  exports.extractEvent = extractEvent;
@@ -3,4 +3,5 @@ export declare const EXPORT_TYPES: {
3
3
  Domain: string;
4
4
  LocationGroup: string;
5
5
  Location: string;
6
+ Ad: string;
6
7
  };
@@ -4,6 +4,7 @@ exports.EXPORT_TYPES = void 0;
4
4
  exports.EXPORT_TYPES = {
5
5
  Export: "Export",
6
6
  Domain: "Domain",
7
- LocationGroup: "LocationGroup",
8
- Location: "Location",
7
+ LocationGroup: "LocationGroup", // Chiến dịch con
8
+ Location: "Location", // Địa điểm
9
+ Ad: "Ad" // Quảng cáo
9
10
  };
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  var jsx_runtime_1 = require("react/jsx-runtime");
4
7
  var react_i18next_1 = require("react-i18next");
5
8
  var material_1 = require("@mui/material");
6
9
  var react_1 = require("react");
7
10
  var container_1 = require("./container");
11
+ var i18n_1 = __importDefault(require("../../../../i18n"));
8
12
  var color = ['inherit', 'primary'];
9
13
  var variant = ['outlined', 'contained'];
10
14
  var TabStatistic = function (props) {
11
- var t = (0, react_i18next_1.useTranslation)().t;
15
+ var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
12
16
  var tabIndex = props.tabIndex, onChangeTab = props.onChangeTab, tabPanel = props.tabPanel, isNetwork = props.isNetwork;
13
17
  var translationText = (0, react_1.useMemo)(function () { return ({
14
18
  analytic: t('Campaign.Analytic'),
@@ -19,7 +23,7 @@ var TabStatistic = function (props) {
19
23
  var handleChangeTab = function (event) {
20
24
  onChangeTab(Number(event.target.tabIndex));
21
25
  };
22
- return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, sx: { padding: function (theme) { return theme.spacing(2); } }, className: "ahihu", children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", sx: {
26
+ return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, sx: { padding: function (theme) { return theme.spacing(2); } }, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", sx: {
23
27
  marginTop: function (theme) { return theme.spacing(1); },
24
28
  marginLeft: function (theme) { return theme.spacing(2); },
25
29
  }, children: translationText.title }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.ButtonGroup, { sx: {