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.
- package/lib/ACM-AXN/Campaign/Container.js +52 -54
- package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +8 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +27 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +17 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +121 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +219 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.js +306 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.js +230 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +123 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +253 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.d.ts +1 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.js +47 -78
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +6 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +3 -22
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +2 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +2 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +22 -43
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +321 -103
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +1 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +122 -58
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +11 -8
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +13 -19
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +7 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +98 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +35 -70
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +26 -8
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -32
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +5 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js +47 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +52 -6
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.js +3 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.d.ts +4 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +13 -7
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.d.ts +1 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +75 -123
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +8 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
- package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
- package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
- package/lib/ACM-AXN/Campaign/Enum.d.ts +23 -4
- package/lib/ACM-AXN/Campaign/Enum.js +30 -10
- package/lib/ACM-AXN/Campaign/Types.d.ts +52 -6
- package/lib/ACM-AXN/Campaign/Utils.d.ts +5 -0
- package/lib/ACM-AXN/Campaign/Utils.js +29 -2
- package/lib/ACM-AXN/Campaign/index.js +2 -2
- package/lib/ACM-AXN/CampaignPlan/Container.js +21 -10
- package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
- package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
- package/lib/ACM-AXN/CampaignPlan/Detail.js +5 -7
- package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
- package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
- package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
- package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
- package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
- package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
- package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
- package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
- package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +7 -5
- package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
- package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
- package/lib/ACM-AXN/CampaignSchedule/Enum.d.ts +1 -1
- package/lib/ACM-AXN/CampaignSchedule/Enum.js +1 -1
- package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
- package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
- package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
- package/lib/ACM-AXN/Common/Constant.js +2 -0
- package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
- package/lib/ACM-AXN/Common/Enum.js +19 -4
- package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
- package/lib/ACM-AXN/GeoFencing/component.js +7 -7
- package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
- package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
- package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
- package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
- package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
- package/lib/ACM-AXN/Page/Container.js +3 -3
- package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
- package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
- package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -1
- package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -1
- package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
- package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +6 -9
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +40 -61
- package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +26 -30
- package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +6 -8
- package/lib/ACM-AXN/Page/CreateOrEdit/index.js +5 -3
- package/lib/ACM-AXN/Page/enums.d.ts +5 -0
- package/lib/ACM-AXN/Page/enums.js +7 -1
- package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
- package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
- package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
- package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
- package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
- package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
- package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
- package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
- package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
- package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
- package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
- package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
- package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
- package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
- package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +14 -11
- package/lib/ACM-AXN/Statistics/ControlPanel.js +16 -4
- package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
- package/lib/ACM-AXN/Statistics/Enums.js +1 -0
- package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
- package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +3 -3
- package/lib/ACM-AXN/Template/Container.js +1 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
- package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
- package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
- package/lib/ACM-AXN/Template/Import.js +6 -3
- package/lib/ACM-AXN/Template/Types.d.ts +9 -9
- package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
- package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +46 -160
- package/lib/ACM-AXN/ViewTemplate/common.js +2 -3
- package/lib/ACM-AXN/ViewTemplate/container.js +23 -24
- package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
- package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
- package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
- package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
- package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
- package/lib/ACM-AXN/index.d.ts +1 -0
- package/lib/ACM-AXN/index.js +1 -0
- package/lib/AWING/AsyncAutocomplete/index.js +2 -2
- package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
- package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
- package/lib/AWING/Chart/BarLineComponent.js +29 -11
- package/lib/AWING/Chart/PieComponent.d.ts +3 -4
- package/lib/AWING/Chart/PieComponent.js +16 -16
- package/lib/AWING/Chart/Styles.js +51 -16
- package/lib/AWING/DataForm/DataInput.js +63 -20
- package/lib/AWING/DataForm/interface.d.ts +1 -0
- package/lib/AWING/DataGrid/index.js +8 -13
- package/lib/AWING/DateRangePicker/component.js +42 -23
- package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
- package/lib/AWING/Form/useForm.js +3 -2
- package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
- package/lib/AWING/GoogleMap/GGMap.js +256 -0
- package/lib/AWING/GoogleMap/index.d.ts +4 -0
- package/lib/AWING/GoogleMap/index.js +41 -0
- package/lib/AWING/GoogleMap/interface.d.ts +21 -0
- package/lib/AWING/GoogleMap/interface.js +2 -0
- package/lib/AWING/GoogleMap/utils.d.ts +25 -0
- package/lib/AWING/GoogleMap/utils.js +135 -0
- package/lib/AWING/GroupTable/GroupTable.js +4 -5
- package/lib/AWING/GroupTable/component.d.ts +1 -0
- package/lib/AWING/GroupTable/component.js +2 -2
- package/lib/AWING/NumberFormat/index.d.ts +3 -1
- package/lib/AWING/NumberFormat/index.js +2 -2
- package/lib/AWING/PageManagement/PageManagement.js +2 -2
- package/lib/AWING/Pagination/index.js +10 -3
- package/lib/AWING/index.d.ts +1 -0
- package/lib/AWING/index.js +1 -0
- package/lib/AWING/ultis/validation.d.ts +1 -0
- package/lib/AWING/ultis/validation.js +21 -5
- package/lib/Commons/Components/ClassicDrawer.js +5 -4
- package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
- package/lib/Commons/Hooks/usePath.js +3 -3
- package/lib/Utils/Helpers.d.ts +4 -2
- package/lib/Utils/Helpers.js +56 -7
- package/lib/i18n.js +14 -2
- package/lib/translate/en/translation.json +114 -71
- package/lib/translate/id/translation.json +870 -0
- package/lib/translate/ja/translation.json +870 -0
- package/lib/translate/th/translation.json +870 -0
- package/lib/translate/vi/translation.json +78 -35
- package/package.json +131 -126
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/fakeCampaignData.json +0 -397
- package/lib/ACM-AXN/ScheduleCompletionRate/json.d.ts +0 -61
- package/lib/ACM-AXN/ScheduleCompletionRate/json.js +0 -268
- package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
- 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
|
-
.
|
|
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)(
|
|
56
|
-
setScheduleGroupBy(
|
|
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
|
-
}, [
|
|
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: (
|
|
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
|
-
.
|
|
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
|
-
|
|
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
|
-
}, [
|
|
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
|
|
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: (
|
|
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.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
-
.
|
|
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
|
|
132
|
-
var
|
|
133
|
-
var
|
|
134
|
-
var
|
|
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('
|
|
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
|
-
|
|
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:
|
|
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,
|
|
6
|
+
import { FilterType, ScheduleCompletionRate } from './Types';
|
|
7
7
|
interface PropsSearchCampaign {
|
|
8
8
|
filter: FilterType;
|
|
9
|
-
campaigns:
|
|
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.
|
|
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.
|
|
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: (
|
|
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
|
-
|
|
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,
|
|
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:
|
|
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
|
|
22
|
+
export declare const converData: (data: ScheduleCompletionRate[], typeView: number) => {
|
|
23
23
|
totalRun: number;
|
|
24
|
-
billingUnit:
|
|
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,
|
|
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) {
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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(
|
|
104
|
-
var rate = (totalRun / totalQuantity) * 100;
|
|
105
|
-
return __assign(__assign({}, item), { totalRun: totalRun, billingUnit:
|
|
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: (
|
|
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: (
|
|
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: (
|
|
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) {
|
|
@@ -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 =
|
|
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.
|
|
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.
|
|
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],
|