awing-library 2.1.125-beta → 2.1.127-beta
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 +2 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/AnalyticComponent.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/AnalyticComponent.test.js +80 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/AnalyticContainer.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/AnalyticContainer.test.js +49 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +13 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +131 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.test.js +67 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +113 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.test.js +27 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/DetailGroupBy.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/DetailGroupBy.test.js +55 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/RowDetail.d.ts +7 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/RowDetail.js +28 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/RowDetail.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/RowDetail.test.js +49 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +183 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +51 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +378 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.d.ts +14 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +77 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +15 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +129 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/index.js +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +12 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +237 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.test.js +84 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Context.d.ts +5 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Context.js +13 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/CustomerComponent.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/CustomerComponent.test.js +53 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/CustomerContainer.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/CustomerContainer.test.js +124 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.d.ts +14 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +127 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.d.ts +7 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +82 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/index.js +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/EventComponent.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/EventComponent.test.js +91 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/EventContainer.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/EventContainer.test.js +48 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.d.ts +5 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +29 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.test.js +30 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.d.ts +13 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +166 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.d.ts +10 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +123 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/index.js +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +6 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +64 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.test.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.test.js +26 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +91 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.js +2 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.d.ts +6 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +33 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +6 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +9 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.d.ts +9 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +32 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.d.ts +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +94 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/fakeCampaignData.json +397 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/index.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/index.js +8 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdDetail.test.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.test.js +12 -12
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/Create.js +2 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/Create.test.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/Edit.test.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/EditExpression.test.js +9 -9
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitClick.test.js +1 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.test.js +1 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitView.test.js +1 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetAge.test.js +3 -3
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetGender.test.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +11 -10
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +6 -6
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +5 -5
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +2 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +5 -5
- package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +22 -12
- package/lib/ACM-AXN/Campaign/Enum.d.ts +72 -0
- package/lib/ACM-AXN/Campaign/Enum.js +81 -1
- package/lib/ACM-AXN/Campaign/Types.d.ts +7 -126
- package/lib/ACM-AXN/Campaign/Types.js +0 -80
- package/lib/ACM-AXN/Campaign/Utils.d.ts +7 -1
- package/lib/ACM-AXN/Campaign/Utils.js +14 -10
- package/lib/ACM-AXN/Campaign/index.d.ts +2 -0
- package/lib/ACM-AXN/Campaign/index.js +16 -0
- package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +4 -0
- package/lib/ACM-AXN/CampaignSchedule/Components/TableHeaderDragable.js +4 -0
- package/lib/ACM-AXN/CampaignSchedule/Enum.d.ts +4 -0
- package/lib/ACM-AXN/CampaignSchedule/Enum.js +4 -0
- package/lib/ACM-AXN/Common/Enum.d.ts +22 -0
- package/lib/ACM-AXN/Common/Enum.js +26 -1
- package/lib/ACM-AXN/Common/Types.d.ts +16 -0
- package/lib/ACM-AXN/Common/Types.js +2 -0
- package/lib/ACM-AXN/Notifications/Types.d.ts +1 -1
- package/lib/ACM-AXN/Page/Types.d.ts +2 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +0 -7
- package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +8 -4
- package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +1 -1
- package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +1 -0
- package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +7 -6
- package/lib/ACM-AXN/Template/Container.test.js +1 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/CreateOrEdit.test.js +1 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Infomation.test.js +1 -1
- package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +13 -5
- package/lib/ACM-AXN/Template/Import.test.js +2 -2
- package/lib/AWING/Hooks/index.d.ts +1 -0
- package/lib/AWING/Hooks/index.js +17 -0
- package/lib/AWING/Hooks/useGetData.d.ts +9 -0
- package/lib/AWING/Hooks/useGetData.js +26 -0
- package/lib/Utils/Helpers.d.ts +2 -1
- package/lib/Utils/Helpers.js +17 -1
- package/lib/translate/en/translation.json +5 -1
- package/lib/translate/vi/translation.json +7 -1
- package/package.json +1 -1
|
@@ -16,6 +16,10 @@ exports.DataSetConfigs = void 0;
|
|
|
16
16
|
var lodash_1 = __importDefault(require("lodash"));
|
|
17
17
|
var moment_1 = __importDefault(require("moment"));
|
|
18
18
|
var DataSetConfigs = function (exportData, t, startDate, endDate) {
|
|
19
|
+
// check NaN and Infinity
|
|
20
|
+
var checkNumber = function (value) {
|
|
21
|
+
return !isNaN(value) && Number.isFinite(value) ? value : 0;
|
|
22
|
+
};
|
|
19
23
|
var sheetByCampaign = __spreadArray([
|
|
20
24
|
{
|
|
21
25
|
columns: [
|
|
@@ -101,15 +105,15 @@ var DataSetConfigs = function (exportData, t, startDate, endDate) {
|
|
|
101
105
|
style: { font: { sz: '13' } },
|
|
102
106
|
},
|
|
103
107
|
{
|
|
104
|
-
value: item.totalQuantity,
|
|
108
|
+
value: (item === null || item === void 0 ? void 0 : item.totalQuantity) || 0,
|
|
105
109
|
style: { font: { sz: '12' } },
|
|
106
110
|
},
|
|
107
111
|
{
|
|
108
|
-
value: item.totalRun,
|
|
112
|
+
value: (item === null || item === void 0 ? void 0 : item.totalRun) || 0,
|
|
109
113
|
style: { font: { sz: '12' } },
|
|
110
114
|
},
|
|
111
115
|
{
|
|
112
|
-
value: item.rate,
|
|
116
|
+
value: checkNumber((item === null || item === void 0 ? void 0 : item.rate) || 0),
|
|
113
117
|
style: { font: { sz: '12' } },
|
|
114
118
|
},
|
|
115
119
|
];
|
|
@@ -132,7 +136,7 @@ var DataSetConfigs = function (exportData, t, startDate, endDate) {
|
|
|
132
136
|
style: { font: { sz: '12', bold: true } },
|
|
133
137
|
},
|
|
134
138
|
{
|
|
135
|
-
value: totalRate,
|
|
139
|
+
value: checkNumber(totalRate || 0),
|
|
136
140
|
style: { font: { sz: '12', bold: true } },
|
|
137
141
|
},
|
|
138
142
|
],
|
|
@@ -118,7 +118,7 @@ function Filter(props) {
|
|
|
118
118
|
setCampaigns(options);
|
|
119
119
|
});
|
|
120
120
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
121
|
-
}, [
|
|
121
|
+
}, [filter.startDate, filter.endDate]);
|
|
122
122
|
var handleChangeQueryInput = function (queryParams) {
|
|
123
123
|
onUpdateFilter(__assign(__assign({}, queryParams), { campaignId: filter.campaignId }));
|
|
124
124
|
};
|
|
@@ -115,6 +115,7 @@ export interface ScheduleCompletionRateExport {
|
|
|
115
115
|
placeId?: string;
|
|
116
116
|
groupId?: number;
|
|
117
117
|
groupName?: string | undefined;
|
|
118
|
+
billingUnit?: AnalyticType;
|
|
118
119
|
runs?: AnalyticEventSummary[] | undefined;
|
|
119
120
|
expecteds?: AnalyticEventSummary[] | undefined;
|
|
120
121
|
date?: string;
|
|
@@ -33,7 +33,6 @@ var lodash_1 = __importDefault(require("lodash"));
|
|
|
33
33
|
var moment_1 = __importDefault(require("moment"));
|
|
34
34
|
var Enum_1 = require("../../ACM-AXN/Common/Enum");
|
|
35
35
|
var Constant_1 = require("../../ACM-AXN/Common/Constant");
|
|
36
|
-
var Helpers_1 = require("../../Utils/Helpers");
|
|
37
36
|
exports.QueryInputDetail = {
|
|
38
37
|
pageIndex: 0,
|
|
39
38
|
pageSize: 10,
|
|
@@ -51,17 +50,19 @@ var convertExcelData = function (resData, campaigns, places, t, typeView) {
|
|
|
51
50
|
? filterCampaignName
|
|
52
51
|
: t('ScheduleCompletionRate.CampaignDefault');
|
|
53
52
|
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 : '';
|
|
54
|
-
var totalQuantity = (0
|
|
55
|
-
|
|
53
|
+
var totalQuantity = getEventTotal(data === null || data === void 0 ? void 0 : data.expecteds, typeView === Constant_1.TypeView.impression
|
|
54
|
+
? Constant_1.ValueAnalyticType.VIEW
|
|
55
|
+
: Constant_1.ValueAnalyticType.AUTHENTICATION) || 0;
|
|
56
|
+
var totalRun = (0, exports.getValue)(data === null || data === void 0 ? void 0 : data.runs, data === null || data === void 0 ? void 0 : data.billingUnit, typeView);
|
|
56
57
|
var rate = totalQuantity !== 0 ? (totalRun / totalQuantity) * 100 : 0;
|
|
57
58
|
return {
|
|
58
59
|
campaignName: campaignName,
|
|
59
60
|
groupName: !data.groupName ? 'IS-NULL' : data.groupName,
|
|
60
61
|
placeName: placeName,
|
|
61
62
|
date: data.date,
|
|
62
|
-
totalQuantity:
|
|
63
|
-
totalRun:
|
|
64
|
-
rate: (
|
|
63
|
+
totalQuantity: totalQuantity,
|
|
64
|
+
totalRun: totalRun,
|
|
65
|
+
rate: !isNaN(rate) && Number.isFinite(rate) ? rate : 0,
|
|
65
66
|
};
|
|
66
67
|
}), true);
|
|
67
68
|
excelData = lodash_1.default.mapValues(lodash_1.default.groupBy(excelData, 'campaignName'), function (list) {
|
|
@@ -115,7 +115,7 @@ jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requ
|
|
|
115
115
|
// Mock Utils/Helpers
|
|
116
116
|
jest.mock('Utils/Helpers', function () { return (__assign(__assign({}, jest.requireActual('Utils/Helpers')), { downloadZipFile: function () { } })); });
|
|
117
117
|
// Mock PageManagement
|
|
118
|
-
jest.mock('
|
|
118
|
+
jest.mock('AWING/PageManagement', function () { return ({
|
|
119
119
|
PageManagement: function (props) {
|
|
120
120
|
props.onChangeQueryInput({
|
|
121
121
|
searchString: '',
|
|
@@ -269,7 +269,7 @@ jest.mock('Commons/UseAxiosProvider', function () { return ({
|
|
|
269
269
|
}); },
|
|
270
270
|
}); });
|
|
271
271
|
// Mock Drawer
|
|
272
|
-
jest.mock('
|
|
272
|
+
jest.mock('Commons/Components/ClassicDrawer', function () { return function (props) { return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { children: props.title }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onSubmit", onClick: props.onSubmit, children: "submit" }), props.children] })); }; });
|
|
273
273
|
// Mock Infomation
|
|
274
274
|
jest.mock('./Infomation', function () { return function (props) { return ((0, jsx_runtime_1.jsx)("div", { children: Object.entries(props).map(function (_a) {
|
|
275
275
|
var key = _a[0], val = _a[1];
|
|
@@ -25,7 +25,7 @@ jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requ
|
|
|
25
25
|
// Mock Utils/Helpers
|
|
26
26
|
jest.mock('Utils/Helpers', function () { return (__assign(__assign({}, jest.requireActual('Utils/Helpers')), { downloadZipFile: function () { } })); });
|
|
27
27
|
// Mock DataForm
|
|
28
|
-
jest.mock('
|
|
28
|
+
jest.mock('AWING', function () { return ({
|
|
29
29
|
DataForm: function (props) {
|
|
30
30
|
var _a, _b;
|
|
31
31
|
props.fields.forEach(function (element) {
|
|
@@ -84,6 +84,16 @@ var Parameter = function (_a) {
|
|
|
84
84
|
},
|
|
85
85
|
});
|
|
86
86
|
};
|
|
87
|
+
var tableRow = (0, Utils_1.flattenParameter)(rows).map(function (row) {
|
|
88
|
+
Object.keys(row).forEach(function (key) {
|
|
89
|
+
if (Array.isArray(row[key])) {
|
|
90
|
+
row[key] = row[key].filter(function (item) { return item !== ''; });
|
|
91
|
+
console.log(key, row[key]);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
return row;
|
|
95
|
+
});
|
|
96
|
+
console.log("tableRow", tableRow);
|
|
87
97
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Box, { mt: 3, children: (0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, justifyContent: "space-between", alignItems: "center", children: (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "subtitle1", sx: {
|
|
88
98
|
fontWeight: 'bold',
|
|
89
99
|
color: '#000000',
|
|
@@ -148,11 +158,9 @@ var Parameter = function (_a) {
|
|
|
148
158
|
error: row.errField, InputProps: {
|
|
149
159
|
startAdornment: ((0, jsx_runtime_1.jsx)(material_1.Box, { component: 'span', sx: {
|
|
150
160
|
padding: '4px 0 5px',
|
|
151
|
-
}, children: row.parentFieldName.length
|
|
152
|
-
? (row.parentFieldName.push(''),
|
|
153
|
-
row.parentFieldName).join('.')
|
|
161
|
+
}, children: row.parentFieldName.length ? (row.parentFieldName.push(''), row.parentFieldName).join('.')
|
|
154
162
|
: null })),
|
|
155
|
-
}, fullWidth: true, name: [
|
|
163
|
+
}, required: true, fullWidth: true, name: [
|
|
156
164
|
'fieldName',
|
|
157
165
|
row.parentId,
|
|
158
166
|
row.id,
|
|
@@ -261,7 +269,7 @@ var Parameter = function (_a) {
|
|
|
261
269
|
.join('-'), color: "primary", defaultChecked: row.isAdvanced }, idx));
|
|
262
270
|
},
|
|
263
271
|
},
|
|
264
|
-
], rows:
|
|
272
|
+
], rows: tableRow, rowActions: [
|
|
265
273
|
{
|
|
266
274
|
icon: (0, jsx_runtime_1.jsx)(icons_material_1.DeleteForever, {}),
|
|
267
275
|
tooltipTitle: t('Common.Delete'),
|
|
@@ -114,11 +114,11 @@ jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requ
|
|
|
114
114
|
// Mock React
|
|
115
115
|
jest.mock('react', function () { return (__assign(__assign({}, jest.requireActual('react')), { forwardRef: jest.fn(function (arg) { return arg; }), useRef: function () { return ({ current: { click: function () { } } }); } })); });
|
|
116
116
|
// Mock Drawer
|
|
117
|
-
jest.mock('
|
|
117
|
+
jest.mock('Commons/Components/ClassicDrawer', function () { return function (props) {
|
|
118
118
|
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("button", { "data-testid": "onSubmit", onClick: props.onSubmit, children: "submit" }), props.children] }));
|
|
119
119
|
}; });
|
|
120
120
|
// Mock DataForm
|
|
121
|
-
jest.mock('
|
|
121
|
+
jest.mock('AWING', function () { return ({
|
|
122
122
|
DataForm: function (props) {
|
|
123
123
|
var _a, _b, _c;
|
|
124
124
|
props.fields.forEach(function (element) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useGetData';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useGetData"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
|
|
2
|
+
type Params<T extends (...args: any[]) => any> = T extends (...args: infer P) => any ? P : never;
|
|
3
|
+
type ReturnType<T extends (...args: any[]) => any> = T extends (...args: any[]) => infer R ? R : never;
|
|
4
|
+
type Fetcher<ParamsType extends any[] = any[], ReturnType = any> = (...params: ParamsType) => Promise<ReturnType>;
|
|
5
|
+
export declare const useGetData: <T extends Fetcher<any[], any>>(params: Params<T>, fetcher: T) => {
|
|
6
|
+
data: UnwrapPromise<ReturnType<T>> | undefined;
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
};
|
|
9
|
+
export default useGetData;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useGetData = void 0;
|
|
7
|
+
var lodash_1 = require("lodash");
|
|
8
|
+
var react_1 = __importDefault(require("react"));
|
|
9
|
+
var useGetData = function (params, fetcher) {
|
|
10
|
+
var _a = react_1.default.useState(true), isLoading = _a[0], setLoading = _a[1];
|
|
11
|
+
var _b = react_1.default.useState(), data = _b[0], setData = _b[1];
|
|
12
|
+
react_1.default.useEffect(function () {
|
|
13
|
+
fetchData(params);
|
|
14
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
|
+
}, params);
|
|
16
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
|
+
var fetchData = react_1.default.useCallback((0, lodash_1.debounce)(function (params) {
|
|
18
|
+
setLoading(true);
|
|
19
|
+
fetcher.apply(void 0, params).then(function (result) { return setData(result); })
|
|
20
|
+
.finally(function () { setLoading(false); });
|
|
21
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
22
|
+
}, 100), []);
|
|
23
|
+
return { data: data, isLoading: isLoading };
|
|
24
|
+
};
|
|
25
|
+
exports.useGetData = useGetData;
|
|
26
|
+
exports.default = exports.useGetData;
|
package/lib/Utils/Helpers.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import moment from 'moment';
|
|
|
2
2
|
import type { Params, Location } from '../AWING/Router';
|
|
3
3
|
import { DataObject } from '../AWING';
|
|
4
4
|
import { AnalyticDataProviderModel, FileResponse } from '../Commons/Types';
|
|
5
|
-
import { Timestamp } from '../ACM-AXN/
|
|
5
|
+
import { Timestamp } from '../ACM-AXN/Common/Types';
|
|
6
6
|
export declare enum TIMELINE_TYPE {
|
|
7
7
|
HOUR = 0,
|
|
8
8
|
DAY = 1
|
|
@@ -105,3 +105,4 @@ export interface IHeadCells {
|
|
|
105
105
|
export declare const updateObjectFields: (originalObj: any, changedValues: any) => any;
|
|
106
106
|
export declare function formatChartNumber(val: any, language: string): string;
|
|
107
107
|
export declare const setObject: <O extends {}>(obj: O, arrKey: Array<keyof O>, value: unknown) => void;
|
|
108
|
+
export declare function fillMissingDates(startDate?: string | Date, endDate?: string | Date, format?: 'YYYYMMDD' | 'YYYYMMDDHH'): string[];
|
package/lib/Utils/Helpers.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.setObject = exports.formatChartNumber = exports.updateObjectFields = exports.validateNumber = exports.getToday = exports.convertDataSetPattern = exports.convertAnalyticModelToChartDataAdvance = exports.getStartOfDay = exports.timestampToStringDDMMYYYY = exports.dateToStringDDMMYYYY = exports.convertTimelineToDateTime = exports.dateTimeToString = exports.convertTimestampToDateTime = exports.convertDateTimeToTimestamp = exports.checkValidUrl = exports.validateAnalyticTypes = exports.stringToListAccessPoint = exports.checkValidMacAddress = exports.checkValidStringListAP = exports.convertTimeLine = exports.WMAPEcalculator = exports.roundDecimalNumber = exports.convertArrayToObject = exports.offlinePaginate = exports.changeToAlias = exports.calculatorDirectoryIdRoot = exports.getRoutePath = exports.timestampToStringDDMMYYYYHHmm = exports.dateToStringddddDDMMYYYYHHmm = exports.downloadZipFile = exports.downloadFilePattern = exports.generateUUID = exports.displayLongString = exports.getQueryVariable = exports.formatNumber = exports.dateToString = exports.getCookie = exports.TIMELINE_TYPE = void 0;
|
|
26
|
+
exports.fillMissingDates = exports.setObject = exports.formatChartNumber = exports.updateObjectFields = exports.validateNumber = exports.getToday = exports.convertDataSetPattern = exports.convertAnalyticModelToChartDataAdvance = exports.getStartOfDay = exports.timestampToStringDDMMYYYY = exports.dateToStringDDMMYYYY = exports.convertTimelineToDateTime = exports.dateTimeToString = exports.convertTimestampToDateTime = exports.convertDateTimeToTimestamp = exports.checkValidUrl = exports.validateAnalyticTypes = exports.stringToListAccessPoint = exports.checkValidMacAddress = exports.checkValidStringListAP = exports.convertTimeLine = exports.WMAPEcalculator = exports.roundDecimalNumber = exports.convertArrayToObject = exports.offlinePaginate = exports.changeToAlias = exports.calculatorDirectoryIdRoot = exports.getRoutePath = exports.timestampToStringDDMMYYYYHHmm = exports.dateToStringddddDDMMYYYYHHmm = exports.downloadZipFile = exports.downloadFilePattern = exports.generateUUID = exports.displayLongString = exports.getQueryVariable = exports.formatNumber = exports.dateToString = exports.getCookie = exports.TIMELINE_TYPE = void 0;
|
|
27
27
|
var moment_1 = __importDefault(require("moment"));
|
|
28
28
|
var i18n_1 = __importDefault(require("../i18n"));
|
|
29
29
|
var helper_1 = require("../AWING/helper");
|
|
@@ -541,3 +541,19 @@ var setObject = function (obj, arrKey, value) {
|
|
|
541
541
|
(0, lodash_1.set)(obj, arrKey.reduce(function (acc, val) { return acc + '[' + val + ']'; }, ''), value);
|
|
542
542
|
};
|
|
543
543
|
exports.setObject = setObject;
|
|
544
|
+
function fillMissingDates(startDate, endDate, format) {
|
|
545
|
+
if (startDate === void 0) { startDate = ''; }
|
|
546
|
+
if (endDate === void 0) { endDate = ''; }
|
|
547
|
+
if (format === void 0) { format = 'YYYYMMDD'; }
|
|
548
|
+
// Parse the start and end dates
|
|
549
|
+
var start = (0, moment_1.default)(startDate);
|
|
550
|
+
var end = (0, moment_1.default)(endDate);
|
|
551
|
+
// Array to hold the complete range of dates
|
|
552
|
+
var dates = [];
|
|
553
|
+
// Iterate through the date range
|
|
554
|
+
for (var m = (0, moment_1.default)(start); m.isSameOrBefore(end); m.add(1, format === 'YYYYMMDD' ? 'days' : 'hours')) {
|
|
555
|
+
dates.push(m.format(format));
|
|
556
|
+
}
|
|
557
|
+
return dates;
|
|
558
|
+
}
|
|
559
|
+
exports.fillMissingDates = fillMissingDates;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Common": {
|
|
3
|
+
"DateRangePickerLabel": "Date",
|
|
3
4
|
"NotNegative": "Not negative value!",
|
|
4
5
|
"Existed": "{0} is already existed!",
|
|
5
6
|
"lg": "en",
|
|
@@ -60,7 +61,7 @@
|
|
|
60
61
|
"ViewBy": "View By",
|
|
61
62
|
"NotUsage": "Not Usage",
|
|
62
63
|
"Usage": "Usage",
|
|
63
|
-
"FinalClick": "
|
|
64
|
+
"FinalClick": "Click",
|
|
64
65
|
"Label": "Label",
|
|
65
66
|
"Permission": "Permission",
|
|
66
67
|
"Download": "Download",
|
|
@@ -238,6 +239,9 @@
|
|
|
238
239
|
"DisplayedRow ": "of"
|
|
239
240
|
},
|
|
240
241
|
"Campaign": {
|
|
242
|
+
"Engagement": "Engagement",
|
|
243
|
+
"Egr": "Engagement rate",
|
|
244
|
+
"Spot": "Spot",
|
|
241
245
|
"ClickToCopy": "Click to copy",
|
|
242
246
|
"Copied": "Copied",
|
|
243
247
|
"Create": "Create campaign",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Common": {
|
|
3
|
+
"DateRangePickerLabel": "Ngày tháng",
|
|
3
4
|
"NotNegative": "Không được nhập số âm!",
|
|
4
5
|
"Existed": "{0} đã tồn tại!",
|
|
5
6
|
"lg": "vn",
|
|
@@ -220,6 +221,11 @@
|
|
|
220
221
|
"DisplayedRow ": "trong"
|
|
221
222
|
},
|
|
222
223
|
"Campaign": {
|
|
224
|
+
"Engagement": "Lượt tương tác",
|
|
225
|
+
"Egr": "Tỉ lệ tương tác",
|
|
226
|
+
"Spot": "Spot",
|
|
227
|
+
"Impression": "Lượt hiển thị",
|
|
228
|
+
"Click": "Lượt kết nối",
|
|
223
229
|
"Create": "Tạo chiến dịch",
|
|
224
230
|
"ClickToCopy": "Nhấn để sao chép",
|
|
225
231
|
"Copied": "Đã sao chép",
|
|
@@ -471,7 +477,7 @@
|
|
|
471
477
|
"BillingUnit": {
|
|
472
478
|
"Title": "Đơn vị",
|
|
473
479
|
"View": "Impression",
|
|
474
|
-
"Authentication": "
|
|
480
|
+
"Authentication": "Lượt tương tác / Spot",
|
|
475
481
|
"Click": "Click"
|
|
476
482
|
}
|
|
477
483
|
},
|