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
|
@@ -26,7 +26,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
27
27
|
var icons_material_1 = require("@mui/icons-material");
|
|
28
28
|
var material_1 = require("@mui/material");
|
|
29
|
-
var Types_1 = require("./Types");
|
|
30
29
|
var AWING_1 = require("../../AWING");
|
|
31
30
|
var lodash_1 = require("lodash");
|
|
32
31
|
var react_1 = require("react");
|
|
@@ -149,7 +148,7 @@ var CampaignContainer = function () {
|
|
|
149
148
|
label: t('Campaign.AdvanceSearchPriority'),
|
|
150
149
|
type: 'autocomplete',
|
|
151
150
|
icon: (0, jsx_runtime_1.jsx)(icons_material_1.StarOutlined, { fontSize: "small" }),
|
|
152
|
-
options: Object.entries(
|
|
151
|
+
options: Object.entries(Enum_1.CampaignPriority).map(function (_a) {
|
|
153
152
|
var key = _a[0], value = _a[1];
|
|
154
153
|
return ({
|
|
155
154
|
value: value,
|
|
@@ -264,7 +263,7 @@ var CampaignContainer = function () {
|
|
|
264
263
|
text = (0, Utils_1.getTotalBooking)(row === null || row === void 0 ? void 0 : row.campaignGroups);
|
|
265
264
|
}
|
|
266
265
|
else {
|
|
267
|
-
text = (0, Utils_1.checkPriority)(row.campaignGroup.priority,
|
|
266
|
+
text = (0, Utils_1.checkPriority)(row.campaignGroup.priority, Enum_1.CampaignPriority.ClassB)
|
|
268
267
|
? (0, Helpers_1.formatNumber)(row.campaignGroup.bookingAmount)
|
|
269
268
|
: 'N/A';
|
|
270
269
|
}
|
|
@@ -13,9 +13,9 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.weightState = exports.readyForSubmitState = exports.tabPartnerValidState = exports.tabSubCampaignValidState = exports.tabInfomationValidState = exports.campaignPartnerState = exports.campaignGroupsState = exports.campaignAttributesState = exports.campaignState = exports.campaignModelState = exports.confirmExitState = exports.isCreateState = exports.attributesState = exports.directoriesState = void 0;
|
|
15
15
|
var recoil_1 = require("recoil");
|
|
16
|
-
var Types_1 = require("../Types");
|
|
17
16
|
var Utils_1 = require("../Utils");
|
|
18
17
|
var atoms_1 = require("./TabSubCampaign/atoms");
|
|
18
|
+
var Enum_1 = require("../Enum");
|
|
19
19
|
exports.directoriesState = (0, recoil_1.atom)({
|
|
20
20
|
key: 'DirectoriesCampaignState',
|
|
21
21
|
default: [],
|
|
@@ -51,8 +51,8 @@ exports.campaignModelState = (0, recoil_1.atom)({
|
|
|
51
51
|
campaignGroup: {
|
|
52
52
|
id: 1,
|
|
53
53
|
name: 'Sub-Campaign 1',
|
|
54
|
-
priority: (0, Utils_1.getIndexPriority)(
|
|
55
|
-
ticket:
|
|
54
|
+
priority: (0, Utils_1.getIndexPriority)(Enum_1.CampaignPriority.ClassB),
|
|
55
|
+
ticket: Enum_1.CampaignTicket.INACTIVE,
|
|
56
56
|
bookingAmount: 10,
|
|
57
57
|
bonusAmount: 0,
|
|
58
58
|
isReserved: false,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var enzyme_1 = require("enzyme");
|
|
19
|
+
var core_1 = require("@material-ui/core");
|
|
20
|
+
var ChartFilter_1 = __importDefault(require("../ChartFilter"));
|
|
21
|
+
var ChartWithType_1 = __importDefault(require("./ChartWithType"));
|
|
22
|
+
var component_1 = __importDefault(require("./component"));
|
|
23
|
+
var mockProps = {
|
|
24
|
+
isLoading: false,
|
|
25
|
+
startDate: new Date("2022-06-07T08:39:14.482Z"),
|
|
26
|
+
endDate: new Date("2023-06-07T08:39:14.482Z"),
|
|
27
|
+
subCampaigns: [],
|
|
28
|
+
statisticalData: [],
|
|
29
|
+
getStatisticalData: jest.fn(),
|
|
30
|
+
exportData: jest.fn(),
|
|
31
|
+
domains: [],
|
|
32
|
+
};
|
|
33
|
+
describe("Analytic", function () {
|
|
34
|
+
it("renders without error", function () {
|
|
35
|
+
(0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockProps)));
|
|
36
|
+
});
|
|
37
|
+
it("displays loading spinner while loading is in progress", function () {
|
|
38
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockProps, { isLoading: true })));
|
|
39
|
+
var spinner = wrapper.find(core_1.CircularProgress);
|
|
40
|
+
expect(spinner).not.toBeNull();
|
|
41
|
+
});
|
|
42
|
+
it("renders ChartFilter component with the correct props", function () {
|
|
43
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockProps)));
|
|
44
|
+
var chartFilter = wrapper.find(ChartFilter_1.default);
|
|
45
|
+
expect(chartFilter).toHaveLength(1);
|
|
46
|
+
expect(chartFilter.props()).toMatchObject({
|
|
47
|
+
subCampaigns: mockProps.subCampaigns,
|
|
48
|
+
queryInput: {
|
|
49
|
+
time: {
|
|
50
|
+
startDate: mockProps.startDate,
|
|
51
|
+
endDate: mockProps.endDate,
|
|
52
|
+
},
|
|
53
|
+
places: [],
|
|
54
|
+
ids: {},
|
|
55
|
+
timelineType: 1,
|
|
56
|
+
statisticType: 0,
|
|
57
|
+
},
|
|
58
|
+
onChangeQueryInput: expect.any(Function),
|
|
59
|
+
onQueryData: expect.any(Function),
|
|
60
|
+
isExportType: true,
|
|
61
|
+
onExportData: expect.any(Function),
|
|
62
|
+
domains: mockProps.domains,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
it("renders ChartWithType component with the correct props", function () {
|
|
66
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(component_1.default, __assign({}, mockProps)));
|
|
67
|
+
var chartWithType = wrapper.find(ChartWithType_1.default);
|
|
68
|
+
expect(chartWithType).toHaveLength(1);
|
|
69
|
+
expect(chartWithType.props()).toMatchObject({
|
|
70
|
+
statisticalData: mockProps.statisticalData,
|
|
71
|
+
subCampaigns: mockProps.subCampaigns,
|
|
72
|
+
ids: {},
|
|
73
|
+
onCampaignAdGroupIdChange: expect.any(Function),
|
|
74
|
+
statisticType: 0,
|
|
75
|
+
setStatisticType: expect.any(Function),
|
|
76
|
+
timelineType: 1,
|
|
77
|
+
setTimelineType: expect.any(Function),
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var enzyme_1 = require("enzyme");
|
|
19
|
+
var react_1 = __importDefault(require("react"));
|
|
20
|
+
var container_1 = __importDefault(require("./container"));
|
|
21
|
+
var component_1 = __importDefault(require("./component"));
|
|
22
|
+
describe("AnalyticContainer", function () {
|
|
23
|
+
var props = {
|
|
24
|
+
subCampaigns: [
|
|
25
|
+
{
|
|
26
|
+
groupCampaign: {
|
|
27
|
+
id: 1,
|
|
28
|
+
name: "Group 1",
|
|
29
|
+
},
|
|
30
|
+
ads: [
|
|
31
|
+
{
|
|
32
|
+
id: 1,
|
|
33
|
+
name: "ad1",
|
|
34
|
+
places: [{ name: "place1" }],
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
campaignId: "campaignId",
|
|
40
|
+
startDate: new Date(),
|
|
41
|
+
endDate: new Date(),
|
|
42
|
+
domains: [],
|
|
43
|
+
};
|
|
44
|
+
it("should render AnalyticComponent", function () {
|
|
45
|
+
var wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(container_1.default, __assign({}, props)));
|
|
46
|
+
var comp = wrapper.find(component_1.default);
|
|
47
|
+
expect(comp.length).toEqual(1);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CampaignGroupModel } from '../../../../../ACM-AXN/Campaign/Types';
|
|
2
|
+
interface Props {
|
|
3
|
+
statisticalData: any;
|
|
4
|
+
timelineType: number;
|
|
5
|
+
setTimelineType: any;
|
|
6
|
+
statisticType: number;
|
|
7
|
+
setStatisticType: any;
|
|
8
|
+
subCampaigns: CampaignGroupModel[];
|
|
9
|
+
ids: any;
|
|
10
|
+
onCampaignAdGroupIdChange: (newValue: string[]) => void;
|
|
11
|
+
}
|
|
12
|
+
declare const ChartWithType: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default ChartWithType;
|
|
@@ -0,0 +1,131 @@
|
|
|
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
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var react_i18next_1 = require("react-i18next");
|
|
8
|
+
var material_1 = require("@mui/material");
|
|
9
|
+
var i18n_1 = __importDefault(require("../../../../../i18n"));
|
|
10
|
+
var MultipleHierarchicalChoice_1 = require("../../../../../AWING/MultipleHierarchicalChoice");
|
|
11
|
+
var Detail_1 = __importDefault(require("./Detail"));
|
|
12
|
+
var Utils_1 = require("./Utils");
|
|
13
|
+
var AWING_1 = require("../../../../../AWING");
|
|
14
|
+
var Context_1 = __importDefault(require("../Context"));
|
|
15
|
+
var styles = {
|
|
16
|
+
root: {
|
|
17
|
+
border: '1px solid #ccc',
|
|
18
|
+
paddingTop: function (theme) { return theme.spacing(2); },
|
|
19
|
+
},
|
|
20
|
+
chart: {
|
|
21
|
+
marginTop: function (theme) { return theme.spacing(2); },
|
|
22
|
+
},
|
|
23
|
+
chartWrapper: {
|
|
24
|
+
padding: function (theme) { return theme.spacing(1); },
|
|
25
|
+
paddingLeft: function (theme) { return theme.spacing(16); },
|
|
26
|
+
paddingRight: function (theme) { return theme.spacing(16); },
|
|
27
|
+
height: '435px',
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
var ChartWithType = function (props) {
|
|
31
|
+
var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
|
|
32
|
+
var chart = (0, Context_1.default)().chart;
|
|
33
|
+
var SType = [t('Campaign.TypeChart'), t('Campaign.TypeDetail')];
|
|
34
|
+
var statisticalData = props.statisticalData, timelineType = props.timelineType, setTimelineType = props.setTimelineType, statisticType = props.statisticType, setStatisticType = props.setStatisticType, subCampaigns = props.subCampaigns, ids = props.ids, onCampaignAdGroupIdChange = props.onCampaignAdGroupIdChange;
|
|
35
|
+
var translationText = {
|
|
36
|
+
timeline: t('Common.ViewBy'),
|
|
37
|
+
timelineType: {
|
|
38
|
+
HOUR: t('Common.Hour'),
|
|
39
|
+
DAY: t('Common.Day'),
|
|
40
|
+
WEEK: t('Common.Week'),
|
|
41
|
+
MONTH: t('Common.Month'),
|
|
42
|
+
},
|
|
43
|
+
allPlaceGroup: t('Place.AllPlaceGroup'),
|
|
44
|
+
};
|
|
45
|
+
var ChartByType = [
|
|
46
|
+
translationText.timelineType.HOUR,
|
|
47
|
+
translationText.timelineType.DAY,
|
|
48
|
+
];
|
|
49
|
+
var getGroupOptions = function () {
|
|
50
|
+
var ads = [];
|
|
51
|
+
subCampaigns.forEach(function (s) {
|
|
52
|
+
var _a, _b;
|
|
53
|
+
ads.push({
|
|
54
|
+
code: (_a = s.campaignGroup.id) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
55
|
+
name: s.campaignGroup.name,
|
|
56
|
+
parentUnitCode: '',
|
|
57
|
+
});
|
|
58
|
+
(_b = s === null || s === void 0 ? void 0 : s.ads) === null || _b === void 0 ? void 0 : _b.forEach(function (a) {
|
|
59
|
+
var _a;
|
|
60
|
+
ads.push({
|
|
61
|
+
code: "".concat(s.campaignGroup.id, "&").concat(a.id),
|
|
62
|
+
name: a.name,
|
|
63
|
+
parentUnitCode: (_a = s.campaignGroup.id) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
return ads;
|
|
68
|
+
};
|
|
69
|
+
var groupOptions = getGroupOptions();
|
|
70
|
+
var handleGroupChange = function (value) {
|
|
71
|
+
var result = [];
|
|
72
|
+
if (value.length > 0) {
|
|
73
|
+
value.forEach(function (v) {
|
|
74
|
+
result.push(v[v.length - 1].code.toString());
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
// console.log("valuddde", value, result)
|
|
78
|
+
onCampaignAdGroupIdChange(result);
|
|
79
|
+
};
|
|
80
|
+
// const getValue = useMemo(() => {
|
|
81
|
+
// let result: any[] = []
|
|
82
|
+
// if (ids.campaignGroupId) {
|
|
83
|
+
// let tmpSelected: any[] = []
|
|
84
|
+
// const group = groupOptions.find(
|
|
85
|
+
// (g) => g.code === ids.campaignGroupId?.toString()
|
|
86
|
+
// )
|
|
87
|
+
// tmpSelected = [group]
|
|
88
|
+
// if (ids.campaignAdId) {
|
|
89
|
+
// const ad = groupOptions.find(
|
|
90
|
+
// (g) =>
|
|
91
|
+
// g.code === `${ids.campaignGroupId}&${ids.campaignAdId}`
|
|
92
|
+
// )
|
|
93
|
+
// tmpSelected = [group, ad];
|
|
94
|
+
// }
|
|
95
|
+
// result.push(tmpSelected)
|
|
96
|
+
// }
|
|
97
|
+
// console.log("result", result)
|
|
98
|
+
// return result
|
|
99
|
+
// }, [groupOptions, ids.campaignAdId, ids.campaignGroupId])
|
|
100
|
+
var getValue = function () {
|
|
101
|
+
var final = [];
|
|
102
|
+
ids.forEach(function (id) {
|
|
103
|
+
var result = [];
|
|
104
|
+
if (id.campaignGroupId) {
|
|
105
|
+
var group = groupOptions.find(function (g) { var _a; return g.code == ((_a = id.campaignGroupId) === null || _a === void 0 ? void 0 : _a.toString()); });
|
|
106
|
+
result.push(group);
|
|
107
|
+
if (id.campaignAdId) {
|
|
108
|
+
var ad = groupOptions.find(function (g) {
|
|
109
|
+
return g.code == "".concat(id.campaignGroupId, "&").concat(id.campaignAdId);
|
|
110
|
+
});
|
|
111
|
+
result.push(ad);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
final.push(result);
|
|
115
|
+
});
|
|
116
|
+
return final;
|
|
117
|
+
};
|
|
118
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 1, sx: styles.root, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3 }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { fullWidth: true, variant: "outlined", children: (0, jsx_runtime_1.jsx)(MultipleHierarchicalChoice_1.MultipleHierarchicalChoice, { onChange: handleGroupChange, options: groupOptions, placeholder: t('Campaign.SelectGroup'), label: translationText.timeline, value: getValue() }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 2, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { fullWidth: true, variant: "outlined", children: (0, jsx_runtime_1.jsx)(material_1.TextField, { select: true, fullWidth: true, label: translationText.timeline, id: "timelineType", name: "timelineType", value: timelineType, onChange: function (e) { return setTimelineType(e.target.value); }, size: "small", variant: "outlined", children: ChartByType.map(function (type, idx) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: idx, children: type }, idx)); }) }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 2, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { fullWidth: true, variant: "outlined", children: (0, jsx_runtime_1.jsx)(material_1.TextField, { select: true, fullWidth: true, label: t('Campaign.StatisticType'), id: "statisticType", name: "statisticType", value: statisticType, onChange: function (e) { return setStatisticType(e.target.value); }, size: "small", variant: "outlined", children: SType.map(function (type, idx) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: idx, children: type }, idx)); }) }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1 }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, sx: styles.chart, children: statisticType === 0 ? ((0, jsx_runtime_1.jsx)(material_1.Box, { component: 'div', sx: styles.chartWrapper, children: (0, jsx_runtime_1.jsx)(AWING_1.BarLineComponent, { chart: chart, dataChart: (0, Utils_1.convertToChartData)(statisticalData, subCampaigns), type: 'line', data: [], timeline: timelineType, optionCustom: {
|
|
119
|
+
scales: {
|
|
120
|
+
y: {
|
|
121
|
+
title: {
|
|
122
|
+
text: t('Statistics.View'),
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
yAxis: {
|
|
126
|
+
display: false,
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
} }) })) : ((0, jsx_runtime_1.jsx)(Detail_1.default, { statisticalData: statisticalData })) })] }));
|
|
130
|
+
};
|
|
131
|
+
exports.default = ChartWithType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var enzyme_1 = require("enzyme");
|
|
19
|
+
var ChartWithType_1 = __importDefault(require("./ChartWithType"));
|
|
20
|
+
describe("Testing ChartWithType component", function () {
|
|
21
|
+
var wrapper;
|
|
22
|
+
var initialProps = {
|
|
23
|
+
statisticalData: [
|
|
24
|
+
{
|
|
25
|
+
click: 0,
|
|
26
|
+
crt: 0,
|
|
27
|
+
timeline: 20230418,
|
|
28
|
+
view: 0,
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
timelineType: 0,
|
|
32
|
+
setTimelineType: jest.fn(),
|
|
33
|
+
statisticType: 0,
|
|
34
|
+
setStatisticType: jest.fn(),
|
|
35
|
+
subCampaigns: [
|
|
36
|
+
{
|
|
37
|
+
campaignGroup: {
|
|
38
|
+
id: 1,
|
|
39
|
+
name: "Group 1",
|
|
40
|
+
},
|
|
41
|
+
ads: [
|
|
42
|
+
{
|
|
43
|
+
id: 1,
|
|
44
|
+
name: "Ad 1",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
ids: {
|
|
50
|
+
campaignGroupId: 1,
|
|
51
|
+
campaignAdId: 1,
|
|
52
|
+
},
|
|
53
|
+
onCampaignAdGroupIdChange: jest.fn(),
|
|
54
|
+
};
|
|
55
|
+
beforeEach(function () {
|
|
56
|
+
wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(ChartWithType_1.default, __assign({}, initialProps)));
|
|
57
|
+
});
|
|
58
|
+
afterEach(function () {
|
|
59
|
+
wrapper.unmount();
|
|
60
|
+
});
|
|
61
|
+
it("should render without errors", function () {
|
|
62
|
+
expect(wrapper).toHaveLength(1);
|
|
63
|
+
});
|
|
64
|
+
it("should render a MultipleHierarchicalChoice component", function () {
|
|
65
|
+
expect(wrapper.find("MultipleHierarchicalChoice")).toHaveLength(1);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
var react_1 = __importDefault(require("react"));
|
|
17
|
+
var react_i18next_1 = require("react-i18next");
|
|
18
|
+
var material_1 = require("@mui/material");
|
|
19
|
+
var useStyles = {
|
|
20
|
+
groupBy: {},
|
|
21
|
+
chip: {},
|
|
22
|
+
label: {},
|
|
23
|
+
outlinedInput: {
|
|
24
|
+
// '& .MuiOutlinedInput-input': {
|
|
25
|
+
// padding: '10.5px !important',
|
|
26
|
+
// },
|
|
27
|
+
// '& .MuiFormControl-marginNormal': {
|
|
28
|
+
// margin: (theme) => theme.spacing(0),
|
|
29
|
+
// },
|
|
30
|
+
// '& .MuiOutlinedInput-adornedEnd': {
|
|
31
|
+
// paddingRight: (theme) => theme.spacing(0.5),
|
|
32
|
+
// },
|
|
33
|
+
// '& .MuiIconButton-root': {
|
|
34
|
+
// padding: (theme) => theme.spacing(1),
|
|
35
|
+
// },
|
|
36
|
+
// '& .MuiAutocomplete-inputRoot': {
|
|
37
|
+
// padding: (theme) => theme.spacing(0.25),
|
|
38
|
+
// },
|
|
39
|
+
// '& .MuiAutocomplete-endAdornment': {
|
|
40
|
+
// top: 'calc(50% - 19px)',
|
|
41
|
+
// },
|
|
42
|
+
},
|
|
43
|
+
buttonStyle: {
|
|
44
|
+
height: '40px',
|
|
45
|
+
},
|
|
46
|
+
loadingButton: {
|
|
47
|
+
marginLeft: 0,
|
|
48
|
+
right: 'auto',
|
|
49
|
+
position: 'absolute',
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
var ControlPanel = function (props) {
|
|
53
|
+
var groupHeaders = props.groupHeaders, onQueryData = props.onQueryData;
|
|
54
|
+
var t = (0, react_i18next_1.useTranslation)().t;
|
|
55
|
+
var _a = react_1.default.useState([]), groupByValues = _a[0], setGroupByValues = _a[1];
|
|
56
|
+
var handleDelete = function (groupId) { return function () {
|
|
57
|
+
setGroupByValues(function (old) { return old.filter(function (x) { return x !== groupId; }); });
|
|
58
|
+
}; };
|
|
59
|
+
var handleDragStart = function (e) {
|
|
60
|
+
var groupId = e.target.id;
|
|
61
|
+
e.dataTransfer.setData('text', groupId);
|
|
62
|
+
};
|
|
63
|
+
var handleDrop = function (e) {
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
var dragNodeId = e.dataTransfer.getData('text');
|
|
66
|
+
var dropNodeId = e.target.parentNode.id;
|
|
67
|
+
if (dragNodeId === dropNodeId)
|
|
68
|
+
return;
|
|
69
|
+
if (groupByValues.some(function (x) { return x === dragNodeId; })) {
|
|
70
|
+
var dropIndex = groupByValues.findIndex(function (grp) { return grp === dropNodeId; });
|
|
71
|
+
var dragIndex = groupByValues.findIndex(function (grp) { return grp === dragNodeId; });
|
|
72
|
+
var newGroupBy_1 = __spreadArray([], groupByValues, true);
|
|
73
|
+
newGroupBy_1.splice(dragIndex, 1, dropNodeId || '');
|
|
74
|
+
newGroupBy_1.splice(dropIndex, 1, dragNodeId || '');
|
|
75
|
+
setGroupByValues(function (old) { return newGroupBy_1; });
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (groupHeaders.some(function (x) { return x.id === dragNodeId; }))
|
|
79
|
+
setGroupByValues(function (old) { return __spreadArray(__spreadArray([], old, true), [dragNodeId], false); });
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, paddingInline: 2, children: [(0, jsx_runtime_1.jsxs)(material_1.Grid, { id: "group-panel", item: true, xs: 11, style: { paddingLeft: '16px', position: 'relative' }, children: [(0, jsx_runtime_1.jsx)(material_1.Paper, { component: "div", sx: {
|
|
83
|
+
display: 'flex',
|
|
84
|
+
justifyContent: 'flex-start',
|
|
85
|
+
flexWrap: 'wrap',
|
|
86
|
+
listStyle: 'none',
|
|
87
|
+
paddingTop: '8px',
|
|
88
|
+
margin: '0',
|
|
89
|
+
position: 'relative',
|
|
90
|
+
'&.MuiPaper-elevation1': {
|
|
91
|
+
boxShadow: 'none',
|
|
92
|
+
border: '1px solid #ccc',
|
|
93
|
+
},
|
|
94
|
+
minHeight: '40px',
|
|
95
|
+
'&:hover': {
|
|
96
|
+
'&.MuiPaper-elevation1': {
|
|
97
|
+
boxShadow: 'none',
|
|
98
|
+
border: '1px solid #263238',
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
}, onDragOver: function (e) { return e.preventDefault(); }, onDrop: function (e) { return handleDrop(e); }, children: groupByValues.map(function (grpId) {
|
|
102
|
+
var head = groupHeaders.find(function (x) { return x.id === grpId; });
|
|
103
|
+
return ((0, jsx_runtime_1.jsx)(material_1.Chip, { id: grpId, label: head.label, onDelete: handleDelete(head.id), size: "small", sx: { marginLeft: function (theme) { return theme.spacing(1); } }, draggable: true, onDragStart: handleDragStart }, grpId));
|
|
104
|
+
}) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "caption", color: "textSecondary", sx: {
|
|
105
|
+
position: 'absolute',
|
|
106
|
+
top: '7px',
|
|
107
|
+
left: '24px',
|
|
108
|
+
backgroundColor: '#FFFFFF',
|
|
109
|
+
paddingRight: '4px',
|
|
110
|
+
paddingLeft: '4px',
|
|
111
|
+
}, children: (0, jsx_runtime_1.jsx)("span", { children: t('Schedule.DragAndDropLabel') }) })] }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1, children: (0, jsx_runtime_1.jsx)(material_1.Button, { sx: { height: '40px' }, variant: "contained", color: "primary", onClick: function () { return onQueryData(groupByValues); }, children: t('Common.View') }) })] }));
|
|
112
|
+
};
|
|
113
|
+
exports.default = ControlPanel;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var ControlPanel_1 = __importDefault(require("./ControlPanel"));
|
|
8
|
+
var enzyme_1 = require("enzyme");
|
|
9
|
+
describe("ControlPanel", function () {
|
|
10
|
+
var groupHeaders = [
|
|
11
|
+
{ id: "1", label: "Group 1" },
|
|
12
|
+
{ id: "2", label: "Group 2" },
|
|
13
|
+
{ id: "3", label: "Group 3" },
|
|
14
|
+
];
|
|
15
|
+
var onQueryData = jest.fn();
|
|
16
|
+
it("renders correctly with empty groupByValues", function () {
|
|
17
|
+
var wrapper = (0, enzyme_1.mount)((0, jsx_runtime_1.jsx)(ControlPanel_1.default, { groupHeaders: groupHeaders, onQueryData: onQueryData }));
|
|
18
|
+
var chip = wrapper.find(".MuiChip-root");
|
|
19
|
+
expect(chip.length).toEqual(0);
|
|
20
|
+
});
|
|
21
|
+
it("triggers onQueryData when view button is clicked", function () {
|
|
22
|
+
var wrapper = (0, enzyme_1.mount)((0, jsx_runtime_1.jsx)(ControlPanel_1.default, { groupHeaders: groupHeaders, onQueryData: onQueryData }));
|
|
23
|
+
var buttonWatch = wrapper.find(".MuiButtonBase-root");
|
|
24
|
+
buttonWatch.simulate("click");
|
|
25
|
+
expect(onQueryData.mock.calls[0][0]).toEqual([]);
|
|
26
|
+
});
|
|
27
|
+
});
|
package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/DetailGroupBy.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var enzyme_1 = require("enzyme");
|
|
8
|
+
var core_1 = require("@material-ui/core");
|
|
9
|
+
var Detail_1 = __importDefault(require("../Detail"));
|
|
10
|
+
describe("DetailGroupBy", function () {
|
|
11
|
+
var statisticalData = [
|
|
12
|
+
{
|
|
13
|
+
subCampaignName: "SubCampaign 1",
|
|
14
|
+
adName: "Ad 1",
|
|
15
|
+
domainName: "Domain 1",
|
|
16
|
+
placeName: "Place 1",
|
|
17
|
+
click: 10,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
subCampaignName: "SubCampaign 2",
|
|
21
|
+
adName: "Ad 2",
|
|
22
|
+
domainName: "Domain 2",
|
|
23
|
+
placeName: "Place 2",
|
|
24
|
+
click: 20,
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
var wrapper;
|
|
28
|
+
beforeEach(function () {
|
|
29
|
+
wrapper = (0, enzyme_1.mount)((0, jsx_runtime_1.jsx)(Detail_1.default, { statisticalData: statisticalData }));
|
|
30
|
+
});
|
|
31
|
+
it("render 2 row", function () {
|
|
32
|
+
var wrapper = (0, enzyme_1.mount)((0, jsx_runtime_1.jsx)(Detail_1.default, { statisticalData: statisticalData }));
|
|
33
|
+
expect(wrapper.find(".MuiTableRow-root")).toHaveLength(2);
|
|
34
|
+
});
|
|
35
|
+
it("renders a ControlPanel component", function () {
|
|
36
|
+
var wrapper = (0, enzyme_1.mount)((0, jsx_runtime_1.jsx)(Detail_1.default, { statisticalData: statisticalData }));
|
|
37
|
+
expect(wrapper.find("ControlPanel")).toHaveLength(1);
|
|
38
|
+
});
|
|
39
|
+
it("renders the expected table headers", function () {
|
|
40
|
+
var expectedHeaders = [
|
|
41
|
+
"#",
|
|
42
|
+
"Campaign.SubCampaign",
|
|
43
|
+
"Campaign.AdLabel",
|
|
44
|
+
"Campaign.Domain",
|
|
45
|
+
"Campaign.Place",
|
|
46
|
+
"Campaign.NumberHasRunText",
|
|
47
|
+
];
|
|
48
|
+
var tableHeaders = wrapper
|
|
49
|
+
.find(core_1.TableHead)
|
|
50
|
+
.find(core_1.TableRow)
|
|
51
|
+
.find(core_1.TableCell)
|
|
52
|
+
.map(function (cell) { return cell.text(); });
|
|
53
|
+
expect(tableHeaders).toEqual(expectedHeaders);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
var material_1 = require("@mui/material");
|
|
5
|
+
function RowDetail(props) {
|
|
6
|
+
var info = props.info, headCells = props.headCells, onRowClicked = props.onRowClicked;
|
|
7
|
+
var groupKeys = headCells.filter(function (headCell) { return headCell.isGrouping; });
|
|
8
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.TableRow, { onClick: function () {
|
|
9
|
+
onRowClicked && onRowClicked(info);
|
|
10
|
+
}, style: { cursor: onRowClicked ? 'pointer' : 'text' }, children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { colSpan: groupKeys.length + 1, align: 'right', style: { borderBottom: '1px solid #a3a3a345' }, children: info.rowIndex + 1 }), headCells.map(function (headCell, index) {
|
|
11
|
+
return !headCell.isGrouping && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { style: {
|
|
12
|
+
borderBottom: '1px solid #a3a3a345',
|
|
13
|
+
opacity: info.isDeleted &&
|
|
14
|
+
headCell.field == 'placeName'
|
|
15
|
+
? '0.5'
|
|
16
|
+
: '1',
|
|
17
|
+
color: !info.isDeleted &&
|
|
18
|
+
headCell.field == 'placeName'
|
|
19
|
+
? '#235286'
|
|
20
|
+
: '',
|
|
21
|
+
}, children: headCell.getDisplay
|
|
22
|
+
? headCell.getDisplay(info)
|
|
23
|
+
: info[headCell.field] === 0
|
|
24
|
+
? info[headCell.field]
|
|
25
|
+
: info[headCell.field] || 'N/A' }, index));
|
|
26
|
+
})] }));
|
|
27
|
+
}
|
|
28
|
+
exports.default = RowDetail;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|