awing-library 2.1.125-beta → 2.1.126-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/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
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DateRange } from '../Types';
|
|
2
|
+
import { CampaignGroupModel } from '../../../../../ACM-AXN/Campaign/Types';
|
|
3
|
+
interface Props {
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
startDate: Date;
|
|
6
|
+
endDate: Date;
|
|
7
|
+
subCampaigns: CampaignGroupModel[];
|
|
8
|
+
statisticalData: any;
|
|
9
|
+
getStatisticalData: (time: DateRange, placeIds: string[], timelineType: number, ids: any, statisticType?: number) => void;
|
|
10
|
+
exportData: any;
|
|
11
|
+
domains: any[];
|
|
12
|
+
}
|
|
13
|
+
declare const Analytic: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export default Analytic;
|
|
@@ -0,0 +1,77 @@
|
|
|
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 react_1 = require("react");
|
|
19
|
+
var material_1 = require("@mui/material");
|
|
20
|
+
var ChartFilter_1 = __importDefault(require("../ChartFilter"));
|
|
21
|
+
var ChartWithType_1 = __importDefault(require("./ChartWithType"));
|
|
22
|
+
var Helpers_1 = require("../../../../../Utils/Helpers");
|
|
23
|
+
var AWING_1 = require("../../../../../AWING");
|
|
24
|
+
var Analytic = function (props) {
|
|
25
|
+
var isLoading = props.isLoading, startDate = props.startDate, endDate = props.endDate, subCampaigns = props.subCampaigns, statisticalData = props.statisticalData, getStatisticalData = props.getStatisticalData, exportData = props.exportData, domains = props.domains;
|
|
26
|
+
var _a = (0, react_1.useState)({
|
|
27
|
+
time: {
|
|
28
|
+
startDate: startDate,
|
|
29
|
+
endDate: endDate,
|
|
30
|
+
},
|
|
31
|
+
placeIds: [],
|
|
32
|
+
ids: [],
|
|
33
|
+
timelineType: Helpers_1.TIMELINE_TYPE.DAY,
|
|
34
|
+
statisticType: 0,
|
|
35
|
+
}), queryInput = _a[0], setQueryInput = _a[1];
|
|
36
|
+
var changeQueryInput = function (fieldName, fieldValue) {
|
|
37
|
+
var _a;
|
|
38
|
+
var newInput = __assign(__assign({}, queryInput), (_a = {}, _a[fieldName] = fieldValue, _a));
|
|
39
|
+
setQueryInput(newInput);
|
|
40
|
+
getStatisticalData(newInput.time, newInput.placeIds, newInput.timelineType, newInput.ids, newInput.statisticType);
|
|
41
|
+
};
|
|
42
|
+
var queryData = function () {
|
|
43
|
+
getStatisticalData(queryInput.time, queryInput.placeIds, queryInput.timelineType, queryInput.ids, queryInput.statisticType);
|
|
44
|
+
};
|
|
45
|
+
var changeTimelineType = function (timelineType) {
|
|
46
|
+
var newInput = __assign(__assign({}, queryInput), { timelineType: timelineType });
|
|
47
|
+
setQueryInput(newInput);
|
|
48
|
+
getStatisticalData(newInput.time, newInput.placeIds, newInput.timelineType, newInput.ids, newInput.statisticType);
|
|
49
|
+
};
|
|
50
|
+
var changeStatisticType = function (statisticType) {
|
|
51
|
+
var newInput = __assign(__assign({}, queryInput), { statisticType: statisticType });
|
|
52
|
+
setQueryInput(newInput);
|
|
53
|
+
getStatisticalData(newInput.time, newInput.placeIds, newInput.timelineType, newInput.ids, newInput.statisticType);
|
|
54
|
+
};
|
|
55
|
+
var handleChangeAdGroupId = function (newCampaignAdGroupId) {
|
|
56
|
+
var result = [];
|
|
57
|
+
newCampaignAdGroupId.forEach(function (n) {
|
|
58
|
+
var temp = n.split("&");
|
|
59
|
+
if (temp.length > 1) {
|
|
60
|
+
result.push({
|
|
61
|
+
campaignGroupId: temp[0],
|
|
62
|
+
campaignAdId: temp[1],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
result.push({ campaignGroupId: temp[0] });
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
var newInput = __assign(__assign({}, queryInput), { ids: result });
|
|
70
|
+
setQueryInput(newInput);
|
|
71
|
+
getStatisticalData(newInput.time, newInput.placeIds, newInput.timelineType, newInput.ids, newInput.statisticType);
|
|
72
|
+
};
|
|
73
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(ChartFilter_1.default, { subCampaigns: subCampaigns, queryInput: queryInput, onChangeQueryInput: changeQueryInput, onQueryData: queryData, isExportType: true, onExportData: function (exportType) {
|
|
74
|
+
return exportData(queryInput.time, queryInput.placeIds, queryInput.timelineType, exportType, queryInput.ids);
|
|
75
|
+
}, domains: domains }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, style: { marginTop: '20px' }, children: isLoading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(ChartWithType_1.default, { statisticalData: statisticalData, subCampaigns: subCampaigns, ids: queryInput.ids, onCampaignAdGroupIdChange: handleChangeAdGroupId, statisticType: queryInput.statisticType, setStatisticType: changeStatisticType, timelineType: queryInput.timelineType, setTimelineType: changeTimelineType })) })] }));
|
|
76
|
+
};
|
|
77
|
+
exports.default = Analytic;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CampaignGroupModel } from '../../../../../ACM-AXN/Campaign/Types';
|
|
2
|
+
export interface ICampaignAdGroup {
|
|
3
|
+
campaignId?: string;
|
|
4
|
+
campaignGroupId?: number | undefined;
|
|
5
|
+
campaignAdId?: number | undefined;
|
|
6
|
+
}
|
|
7
|
+
interface Props {
|
|
8
|
+
campaignId: string;
|
|
9
|
+
startDate: Date;
|
|
10
|
+
endDate: Date;
|
|
11
|
+
subCampaigns: CampaignGroupModel[];
|
|
12
|
+
domains: any[];
|
|
13
|
+
}
|
|
14
|
+
declare const AnalyticContainer: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export default AnalyticContainer;
|
|
@@ -0,0 +1,129 @@
|
|
|
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_1 = require("react");
|
|
8
|
+
var common_1 = require("../common");
|
|
9
|
+
var Utils_1 = require("./Utils");
|
|
10
|
+
var component_1 = __importDefault(require("./component"));
|
|
11
|
+
var moment_1 = __importDefault(require("moment"));
|
|
12
|
+
var Enum_1 = require("../../../../../ACM-AXN/Campaign/Enum");
|
|
13
|
+
var lodash_1 = require("lodash");
|
|
14
|
+
var Context_1 = __importDefault(require("../Context"));
|
|
15
|
+
var exportFile_1 = require("../../../../../ACM-AXN/CampaignSchedule/exportFile");
|
|
16
|
+
var AnalyticContainer = function (props) {
|
|
17
|
+
var campaignId = props.campaignId, startDate = props.startDate, endDate = props.endDate, subCampaigns = props.subCampaigns, domains = props.domains;
|
|
18
|
+
var client = (0, Context_1.default)().services;
|
|
19
|
+
var _a = (0, react_1.useState)(true), isLoading = _a[0], setIsLoading = _a[1];
|
|
20
|
+
var _b = (0, react_1.useState)([]), statisticalChartData = _b[0], setStatisticalChartData = _b[1];
|
|
21
|
+
var _c = (0, react_1.useState)([]), statisticalData = _c[0], setStatisticalData = _c[1];
|
|
22
|
+
var placesOfCampaign = (0, react_1.useMemo)(function () {
|
|
23
|
+
var result = [];
|
|
24
|
+
subCampaigns.forEach(function (sub) {
|
|
25
|
+
var _a;
|
|
26
|
+
(_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
|
|
27
|
+
var _a;
|
|
28
|
+
(_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.concat((ad === null || ad === void 0 ? void 0 : ad.deletedPlaces) || []).forEach(function (place) {
|
|
29
|
+
if (!result.find(function (r) { return r.placeId === place.placeId; })) {
|
|
30
|
+
result.push(place);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return result;
|
|
36
|
+
}, [subCampaigns]);
|
|
37
|
+
var filterPlaces = function (ids) {
|
|
38
|
+
var result = [];
|
|
39
|
+
subCampaigns.map(function (sub) {
|
|
40
|
+
var _a;
|
|
41
|
+
(_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.map(function (ad) {
|
|
42
|
+
var _a;
|
|
43
|
+
if (ids.find(function (id) { var _a; return id.campaignGroupId == ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) && (!id.campaignAdId || id.campaignAdId == (ad === null || ad === void 0 ? void 0 : ad.id)); })) {
|
|
44
|
+
(_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.map(function (place) {
|
|
45
|
+
if (!result.find(function (r) { return r.placeId == place.placeId; })) {
|
|
46
|
+
result.push(place);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
return result;
|
|
53
|
+
};
|
|
54
|
+
var getStatisticalData = function (time, placeIds, timelineType, ids, statisticType) {
|
|
55
|
+
var selectedPlaces = ids.length > 0 ? filterPlaces(ids) : placesOfCampaign;
|
|
56
|
+
selectedPlaces =
|
|
57
|
+
placeIds.length > 0
|
|
58
|
+
? selectedPlaces.filter(function (p) { return placeIds.includes(p.placeId); })
|
|
59
|
+
: selectedPlaces;
|
|
60
|
+
var selectedDomains = (0, Utils_1.placesToDomains)(selectedPlaces, domains);
|
|
61
|
+
setIsLoading(true);
|
|
62
|
+
client.campaignStatisticGet({
|
|
63
|
+
startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
|
|
64
|
+
endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
|
|
65
|
+
timelineType: timelineType,
|
|
66
|
+
campaignAdGroups: ids.map(function (id) { return ({
|
|
67
|
+
campaignId: campaignId,
|
|
68
|
+
campaignGroupId: id.campaignGroupId,
|
|
69
|
+
campaignAdId: id.campaignAdId
|
|
70
|
+
}); }),
|
|
71
|
+
placeIds: placeIds,
|
|
72
|
+
includedEventLabels: Object.values(Enum_1.BaseEvent)
|
|
73
|
+
}).then(function (res) {
|
|
74
|
+
setStatisticalData((0, Utils_1.markBillingType)(subCampaigns, res));
|
|
75
|
+
setStatisticalChartData(statisticType ? (0, Utils_1.convertToShowDetail)(subCampaigns, res, selectedDomains, selectedPlaces) : res);
|
|
76
|
+
}).finally(function () { return setIsLoading(false); });
|
|
77
|
+
};
|
|
78
|
+
var exportData = function (time, placeIds, timelineType, exportType, ids) {
|
|
79
|
+
var selectedPlaces = placeIds.length > 0
|
|
80
|
+
? placesOfCampaign.filter(function (p) { return placeIds.includes(p.placeId); })
|
|
81
|
+
: placesOfCampaign;
|
|
82
|
+
// downloadWithDataSet
|
|
83
|
+
var selectedDomains = (0, Utils_1.placesToDomains)(selectedPlaces, domains);
|
|
84
|
+
var exportObj = {
|
|
85
|
+
name: "export_statistic_campaign_".concat(campaignId),
|
|
86
|
+
data: []
|
|
87
|
+
};
|
|
88
|
+
switch (exportType) {
|
|
89
|
+
case common_1.EXPORT_TYPES.Domain: {
|
|
90
|
+
var newObjects = (0, lodash_1.chain)(selectedDomains)
|
|
91
|
+
.groupBy('domainId')
|
|
92
|
+
.map(function (value) {
|
|
93
|
+
var currentPlaces = value
|
|
94
|
+
.map(function (x) { return x.places; })
|
|
95
|
+
.reduce(function (a, b) { return a.concat(b); }, []);
|
|
96
|
+
return {
|
|
97
|
+
objectId: value[0].domainId,
|
|
98
|
+
objectName: value[0].domainName,
|
|
99
|
+
places: currentPlaces,
|
|
100
|
+
};
|
|
101
|
+
})
|
|
102
|
+
.value();
|
|
103
|
+
exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(statisticalData, newObjects, timelineType, 'Domain');
|
|
104
|
+
exportObj.name += '_groupby_domain';
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
case common_1.EXPORT_TYPES.Export: {
|
|
108
|
+
exportObj.data = (0, Utils_1.convertToExport)(subCampaigns, statisticalData, timelineType, selectedPlaces);
|
|
109
|
+
exportObj.name += '_total';
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
case common_1.EXPORT_TYPES.LocationGroup: {
|
|
113
|
+
exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(statisticalData, (0, Utils_1.dataGroupByPlace)(subCampaigns, ids), timelineType, 'Sub Campaign');
|
|
114
|
+
exportObj.name += '_groupby_subcampaign';
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
default: {
|
|
118
|
+
exportObj.data = (0, Utils_1.convertToExportData)(statisticalData, selectedPlaces, timelineType);
|
|
119
|
+
exportObj.name += '_groupby_place';
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
console.log("exportObj", exportObj);
|
|
124
|
+
(0, exportFile_1.downloadWithDataSet)(exportObj.name, exportObj.data);
|
|
125
|
+
return;
|
|
126
|
+
};
|
|
127
|
+
return ((0, jsx_runtime_1.jsx)(component_1.default, { domains: domains, startDate: startDate, endDate: endDate, subCampaigns: subCampaigns, isLoading: isLoading, statisticalData: statisticalChartData, getStatisticalData: getStatisticalData, exportData: exportData }));
|
|
128
|
+
};
|
|
129
|
+
exports.default = AnalyticContainer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./container";
|
|
@@ -0,0 +1,8 @@
|
|
|
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.default = void 0;
|
|
7
|
+
var container_1 = require("./container");
|
|
8
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(container_1).default; } });
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CampaignGroupModel } from '../../../../ACM-AXN/Campaign/Types';
|
|
2
|
+
interface Props {
|
|
3
|
+
subCampaigns: CampaignGroupModel[];
|
|
4
|
+
queryInput: any;
|
|
5
|
+
isExportType: boolean;
|
|
6
|
+
onChangeQueryInput: (changeType: string, newValue: any) => void;
|
|
7
|
+
onQueryData: () => void;
|
|
8
|
+
onExportData: (exportType?: string) => void;
|
|
9
|
+
domains: any[];
|
|
10
|
+
}
|
|
11
|
+
declare const ChartFilterBox: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export default ChartFilterBox;
|
|
@@ -0,0 +1,237 @@
|
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
54
|
+
var GetApp_1 = __importDefault(require("@mui/icons-material/GetApp"));
|
|
55
|
+
var material_1 = require("@mui/material");
|
|
56
|
+
var react_1 = require("react");
|
|
57
|
+
var react_i18next_1 = require("react-i18next");
|
|
58
|
+
// import { EnhancedDateRangePicker } from 'Components/DateRangePicker'
|
|
59
|
+
var Helpers_1 = require("../../../../Utils/Helpers");
|
|
60
|
+
// import placeService, { PlaceFilter } from 'Services/Place'
|
|
61
|
+
var AWING_1 = require("../../../../AWING");
|
|
62
|
+
var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
|
|
63
|
+
var moment_1 = __importDefault(require("moment"));
|
|
64
|
+
var SplitButtonExportType_1 = __importDefault(require("./SplitButtonExportType"));
|
|
65
|
+
var Enum_1 = require("../../../../ACM-AXN/Campaign/Enum");
|
|
66
|
+
var i18n_1 = __importDefault(require("../../../../i18n"));
|
|
67
|
+
var Context_1 = __importDefault(require("./Context"));
|
|
68
|
+
var textFieldStyle = {
|
|
69
|
+
'& .MuiOutlinedInput-input': {
|
|
70
|
+
padding: '10.5px !important',
|
|
71
|
+
},
|
|
72
|
+
'& .MuiFormControl-marginNormal': {
|
|
73
|
+
margin: function (theme) { return theme.spacing(0); },
|
|
74
|
+
},
|
|
75
|
+
'& .MuiOutlinedInput-adornedEnd': {
|
|
76
|
+
paddingRight: function (theme) { return theme.spacing(0.5); },
|
|
77
|
+
},
|
|
78
|
+
'& .MuiIconButton-root': {
|
|
79
|
+
padding: function (theme) { return theme.spacing(1); },
|
|
80
|
+
},
|
|
81
|
+
'& .MuiAutocomplete-inputRoot': {
|
|
82
|
+
padding: function (theme) { return theme.spacing(0.25); },
|
|
83
|
+
},
|
|
84
|
+
'& .MuiAutocomplete-endAdornment': {
|
|
85
|
+
top: 'calc(50% - 19px)',
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
var ChartFilterBox = function (props) {
|
|
89
|
+
var
|
|
90
|
+
// startDate, endDate,
|
|
91
|
+
subCampaigns = props.subCampaigns, queryInput = props.queryInput, isExportType = props.isExportType, onChangeQueryInput = props.onChangeQueryInput, onQueryData = props.onQueryData, onExportData = props.onExportData, domains = props.domains;
|
|
92
|
+
var _a = (0, Context_1.default)(), client = _a.services, PlaceMultiSelect = _a.placeMultiSelectComponent;
|
|
93
|
+
var placeGroups = (0, react_1.useMemo)(function () {
|
|
94
|
+
return subCampaigns.map(function (x) { return ({
|
|
95
|
+
groupId: x.campaignGroup.id,
|
|
96
|
+
groupName: x.campaignGroup.name,
|
|
97
|
+
}); });
|
|
98
|
+
}, [subCampaigns]);
|
|
99
|
+
(0, react_1.useEffect)(function () {
|
|
100
|
+
onChangeQueryInput('placeIds', []);
|
|
101
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
102
|
+
}, []);
|
|
103
|
+
var placeMultiSelectSubmit = function (placeIds) {
|
|
104
|
+
onChangeQueryInput('placeIds', placeIds);
|
|
105
|
+
};
|
|
106
|
+
var handleGetPlacesByFilter = function (placeFilterOperands, pageIndex, pageSize) { return __awaiter(void 0, void 0, void 0, function () {
|
|
107
|
+
var places, newPlaceFilterOperands, placeFilter, response, response;
|
|
108
|
+
return __generator(this, function (_a) {
|
|
109
|
+
switch (_a.label) {
|
|
110
|
+
case 0:
|
|
111
|
+
places = (0, uniqBy_1.default)(placesOfGroups(subCampaigns), 'placeId');
|
|
112
|
+
newPlaceFilterOperands = [];
|
|
113
|
+
placeFilterOperands.forEach(function (operand) {
|
|
114
|
+
switch (operand.type) {
|
|
115
|
+
case Enum_1.PlaceFilterOperandType.PLACE_GROUP_ID:
|
|
116
|
+
places = places.filter(function (p) { return p.groupId.toString() === operand.value; });
|
|
117
|
+
break;
|
|
118
|
+
case Enum_1.PlaceFilterOperandType.DOMAIN_ID:
|
|
119
|
+
var domainIds_1 = JSON.parse(operand.value);
|
|
120
|
+
places = places.filter(function (p) {
|
|
121
|
+
return domainIds_1.some(function (dId) { return dId === p.domainId; });
|
|
122
|
+
});
|
|
123
|
+
break;
|
|
124
|
+
case Enum_1.PlaceFilterOperandType.SEARCH_STRING:
|
|
125
|
+
places = places.filter(function (p) {
|
|
126
|
+
return p.name
|
|
127
|
+
.toLowerCase()
|
|
128
|
+
.includes(operand.value.trim().toLowerCase());
|
|
129
|
+
});
|
|
130
|
+
break;
|
|
131
|
+
default:
|
|
132
|
+
newPlaceFilterOperands.push(operand);
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
if (!newPlaceFilterOperands.length) return [3 /*break*/, 5];
|
|
137
|
+
newPlaceFilterOperands.push({
|
|
138
|
+
operator: Enum_1.EnumOperator.In.id,
|
|
139
|
+
type: Enum_1.PlaceFilterOperandType.PLACE_ID,
|
|
140
|
+
value: JSON.stringify(places.map(function (x) { return x.placeId; })),
|
|
141
|
+
});
|
|
142
|
+
placeFilter = {
|
|
143
|
+
operandGroups: [
|
|
144
|
+
{
|
|
145
|
+
operands: newPlaceFilterOperands,
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
};
|
|
149
|
+
if (!(pageIndex !== undefined && pageSize !== undefined)) return [3 /*break*/, 2];
|
|
150
|
+
return [4 /*yield*/, client.placesGetPagingByPlaceFilter(pageIndex, pageSize, placeFilter)];
|
|
151
|
+
case 1:
|
|
152
|
+
response = _a.sent();
|
|
153
|
+
return [2 /*return*/, {
|
|
154
|
+
places: response.items,
|
|
155
|
+
total: response.totalItemCount,
|
|
156
|
+
}];
|
|
157
|
+
case 2: return [4 /*yield*/, client.placesGetByPlaceFilter(placeFilter)];
|
|
158
|
+
case 3:
|
|
159
|
+
response = _a.sent();
|
|
160
|
+
return [2 /*return*/, { places: response, total: response.length }];
|
|
161
|
+
case 4: return [3 /*break*/, 6];
|
|
162
|
+
case 5:
|
|
163
|
+
if (pageIndex !== undefined && pageSize !== undefined) {
|
|
164
|
+
return [2 /*return*/, {
|
|
165
|
+
places: places.slice(pageIndex * pageSize, pageIndex * pageSize + pageSize),
|
|
166
|
+
total: places.length,
|
|
167
|
+
}];
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
return [2 /*return*/, { places: places, total: places.length }];
|
|
171
|
+
}
|
|
172
|
+
_a.label = 6;
|
|
173
|
+
case 6: return [2 /*return*/];
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}); };
|
|
177
|
+
var placesOfGroup = function (group) {
|
|
178
|
+
var convertPlace = function (p) { return ({
|
|
179
|
+
placeId: p.placeId,
|
|
180
|
+
name: p.name,
|
|
181
|
+
domainId: p.domainId,
|
|
182
|
+
groupId: group.campaignGroup.id,
|
|
183
|
+
}); };
|
|
184
|
+
return group
|
|
185
|
+
.ads.map(function (x) {
|
|
186
|
+
return x.places.concat((x === null || x === void 0 ? void 0 : x.deletedPlaces) || []).map(convertPlace);
|
|
187
|
+
})
|
|
188
|
+
.reduce(function (a, b) { return a.concat(b); }, []);
|
|
189
|
+
};
|
|
190
|
+
var placesOfGroups = function (groups) {
|
|
191
|
+
return groups
|
|
192
|
+
.map(placesOfGroup)
|
|
193
|
+
.reduce(function (a, b) {
|
|
194
|
+
return a.concat(b);
|
|
195
|
+
}, []);
|
|
196
|
+
};
|
|
197
|
+
var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
|
|
198
|
+
var translationText = {
|
|
199
|
+
time: t('Common.DateRangePickerLabel'),
|
|
200
|
+
domain: t('Place.Domain'),
|
|
201
|
+
group: t('Place.PlaceGroup'),
|
|
202
|
+
place: t('Place.Place'),
|
|
203
|
+
view: t('Common.View'),
|
|
204
|
+
timeline: t('Common.ViewBy'),
|
|
205
|
+
timelineType: {
|
|
206
|
+
HOUR: t('Common.Hour'),
|
|
207
|
+
DAY: t('Common.Day'),
|
|
208
|
+
WEEK: t('Common.Week'),
|
|
209
|
+
MONTH: t('Common.Month'),
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1 }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(AWING_1.DateRangePicker
|
|
213
|
+
// noBorder
|
|
214
|
+
, {
|
|
215
|
+
// noBorder
|
|
216
|
+
label: translationText.time, callback: function (value) {
|
|
217
|
+
var _a, _b;
|
|
218
|
+
Object.values(value).filter(Boolean).length > 1 &&
|
|
219
|
+
onChangeQueryInput('time', {
|
|
220
|
+
startDate: (0, Helpers_1.getStartOfDay)((_a = value === null || value === void 0 ? void 0 : value.startDate) === null || _a === void 0 ? void 0 : _a.toDate()),
|
|
221
|
+
endDate: (0, Helpers_1.getStartOfDay)((_b = value === null || value === void 0 ? void 0 : value.endDate) === null || _b === void 0 ? void 0 : _b.toDate()),
|
|
222
|
+
});
|
|
223
|
+
}, initialStartDate: (0, moment_1.default)(queryInput.time.startDate), initialEndDate: (0, moment_1.default)(queryInput.time.endDate), isShowCalendarInfo: true,
|
|
224
|
+
//@ts-ignore
|
|
225
|
+
variant: "outlined", textFieldProps: {
|
|
226
|
+
fullWidth: true,
|
|
227
|
+
sx: textFieldStyle,
|
|
228
|
+
} }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 4, children: (0, jsx_runtime_1.jsx)(PlaceMultiSelect
|
|
229
|
+
// disableCheckPermission={true}
|
|
230
|
+
, {
|
|
231
|
+
// disableCheckPermission={true}
|
|
232
|
+
onChange: placeMultiSelectSubmit, initialOption: {
|
|
233
|
+
placeGroups: placeGroups,
|
|
234
|
+
domains: domains.map(function (d) { return (__assign(__assign({}, d), { name: d.domainName })); }),
|
|
235
|
+
}, isDisplayTextField: true, TextFieldProps: { sx: textFieldStyle }, onGetPlacesByFilter: handleGetPlacesByFilter }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { color: "primary", variant: "contained", fullWidth: true, onClick: function () { return onQueryData(); }, children: translationText.view }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { children: !isExportType ? ((0, jsx_runtime_1.jsx)(material_1.Button, { variant: "outlined", onClick: function () { return onExportData(); }, children: (0, jsx_runtime_1.jsx)(GetApp_1.default, {}) })) : ((0, jsx_runtime_1.jsx)(SplitButtonExportType_1.default, { onSubmit: function (exportType) { return onExportData(exportType); } })) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 1 })] }));
|
|
236
|
+
};
|
|
237
|
+
exports.default = ChartFilterBox;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
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 react_1 = __importDefault(require("react"));
|
|
19
|
+
var moment_1 = __importDefault(require("moment"));
|
|
20
|
+
var enzyme_1 = require("enzyme");
|
|
21
|
+
var DateRangePicker_1 = require("Components/DateRangePicker");
|
|
22
|
+
var PlaceFilter_1 = __importDefault(require("Features/PlaceFilter"));
|
|
23
|
+
var SplitButtonExportType_1 = __importDefault(require("./SplitButtonExportType"));
|
|
24
|
+
var ChartFilter_1 = __importDefault(require("./ChartFilter"));
|
|
25
|
+
describe("ChartFilter", function () {
|
|
26
|
+
var wrapper;
|
|
27
|
+
var initialProps = {
|
|
28
|
+
subCampaigns: [],
|
|
29
|
+
queryInput: { time: { startDate: new Date(), endDate: new Date() } },
|
|
30
|
+
isExportType: false,
|
|
31
|
+
onChangeQueryInput: jest.fn(),
|
|
32
|
+
onQueryData: jest.fn(),
|
|
33
|
+
onExportData: jest.fn(),
|
|
34
|
+
domains: [],
|
|
35
|
+
};
|
|
36
|
+
beforeEach(function () {
|
|
37
|
+
wrapper = (0, enzyme_1.shallow)((0, jsx_runtime_1.jsx)(ChartFilter_1.default, __assign({}, initialProps)));
|
|
38
|
+
});
|
|
39
|
+
afterEach(function () {
|
|
40
|
+
wrapper.unmount();
|
|
41
|
+
});
|
|
42
|
+
it("should render all components correctly", function () {
|
|
43
|
+
expect(wrapper.find(DateRangePicker_1.EnhancedDateRangePicker).exists()).toBe(true);
|
|
44
|
+
expect(wrapper.find(PlaceFilter_1.default).exists()).toBe(true);
|
|
45
|
+
var splitButtonExportType = wrapper.find(SplitButtonExportType_1.default);
|
|
46
|
+
if (initialProps.isExportType) {
|
|
47
|
+
expect(splitButtonExportType.exists()).toBe(true);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
expect(wrapper.find(SplitButtonExportType_1.default).exists()).toBe(false);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
it("should call onQueryData when view button is clicked", function () {
|
|
54
|
+
wrapper.find("WithStyles(ForwardRef(Button))").at(0).simulate("click");
|
|
55
|
+
expect(initialProps.onQueryData).toHaveBeenCalled();
|
|
56
|
+
});
|
|
57
|
+
it("should call onExportData with default parameter when export button is clicked and isExportType is false", function () {
|
|
58
|
+
wrapper.find("WithStyles(ForwardRef(Button))").at(1).simulate("click");
|
|
59
|
+
expect(initialProps.onExportData.mock.calls.length).toEqual(1);
|
|
60
|
+
});
|
|
61
|
+
it("should render SplitButtonExportType when isExportType is true", function () {
|
|
62
|
+
var updatedProps = __assign(__assign({}, initialProps), { isExportType: true });
|
|
63
|
+
wrapper.setProps(updatedProps);
|
|
64
|
+
expect(wrapper.find(SplitButtonExportType_1.default).exists()).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
it("should call onChangeQueryInput when date range picker value is changed", function () {
|
|
67
|
+
var dateRangePicker = wrapper.find(DateRangePicker_1.EnhancedDateRangePicker);
|
|
68
|
+
var startDate = (0, moment_1.default)();
|
|
69
|
+
var endDate = (0, moment_1.default)().add(1, "day");
|
|
70
|
+
dateRangePicker
|
|
71
|
+
.props()
|
|
72
|
+
.callback({ startDate: startDate, endDate: endDate });
|
|
73
|
+
expect(initialProps.onChangeQueryInput.mock.calls.length).toEqual(1);
|
|
74
|
+
});
|
|
75
|
+
it("should call onChangeQueryInput when PlaceMultiSelect value is changed", function () {
|
|
76
|
+
var placeMultiSelect = wrapper.find(PlaceFilter_1.default);
|
|
77
|
+
placeMultiSelect.props().onDetailSubmit([
|
|
78
|
+
{ placeId: 1, name: "Place 1", domainId: 1, groupId: 1 },
|
|
79
|
+
]);
|
|
80
|
+
expect(initialProps.onChangeQueryInput).toHaveBeenCalledWith("places", [
|
|
81
|
+
{ placeId: 1, name: "Place 1", domainId: 1, groupId: 1 },
|
|
82
|
+
]);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { CampaignAnalyticProps } from "./Types";
|
|
3
|
+
export declare const PropsProvider: import("react").Provider<CampaignAnalyticProps>;
|
|
4
|
+
declare const useCampaignAnalyticProps: () => CampaignAnalyticProps;
|
|
5
|
+
export default useCampaignAnalyticProps;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PropsProvider = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var campaignAnalyticPropsContext = (0, react_1.createContext)({});
|
|
6
|
+
exports.PropsProvider = campaignAnalyticPropsContext.Provider;
|
|
7
|
+
var useCampaignAnalyticProps = function () {
|
|
8
|
+
var props = (0, react_1.useContext)(campaignAnalyticPropsContext);
|
|
9
|
+
return (0, react_1.useMemo)(function () {
|
|
10
|
+
return props;
|
|
11
|
+
}, [props]);
|
|
12
|
+
};
|
|
13
|
+
exports.default = useCampaignAnalyticProps;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|