awing-library 2.1.174-dev → 2.1.176-dev
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/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +7 -10
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +265 -125
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +59 -41
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
- package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +24 -11
- package/lib/ACM-AXN/Page/enums.d.ts +5 -0
- package/lib/ACM-AXN/Page/enums.js +7 -1
- package/lib/Utils/Helpers.d.ts +1 -1
- package/lib/Utils/Helpers.js +2 -0
- package/lib/translate/en/translation.json +11 -0
- package/lib/translate/vi/translation.json +12 -1
- package/package.json +1 -1
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { CampaignGroupModel } from '../../../../../ACM-AXN/Campaign/Types';
|
|
2
|
-
import { IAnalyticCampaignSummary } from '../Types';
|
|
3
2
|
import { AnalyticType } from '../../../../../ACM-AXN/Common/Enum';
|
|
4
3
|
import { DataObject } from '../../../../../AWING';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare function
|
|
10
|
-
columns: string[];
|
|
11
|
-
data: any[][];
|
|
12
|
-
}[];
|
|
13
|
-
export declare function convertToExport(subCampaigns: CampaignGroupModel[], data: DataObject[], timelineType: any, places: any[]): any[];
|
|
4
|
+
import { AdministrativeUnit, IAnalyticCampaignSummary } from '../Types';
|
|
5
|
+
export declare function convertToExportDataGroupBy(data: any, objects: any, timelineType: any, groupBy: any, campaignName: string, reportField: string): any[];
|
|
6
|
+
export declare function convertToExportData(data: DataObject[], places: any, timelineType: any, campaignName: string, fullPlaces?: AdministrativeUnit[]): any[];
|
|
7
|
+
export declare function convertToExport(subCampaigns: CampaignGroupModel[], data: DataObject[], timelineType: any, places: any[], campaignName: string, fullPlaces?: AdministrativeUnit[]): any[];
|
|
8
|
+
export declare function convertToExportByAd(subCampaigns: CampaignGroupModel[], data: DataObject[], timelineType: any, campaignName: string): any[];
|
|
14
9
|
export declare function placesToDomains(places: any[], domains?: any[]): any[];
|
|
15
10
|
export declare const markBillingType: (subCampaigns: CampaignGroupModel[], data: IAnalyticCampaignSummary[]) => any[];
|
|
16
11
|
export declare function convertToShowDetail(subCampaigns: CampaignGroupModel[], data: IAnalyticCampaignSummary[], selectedDomains: any[], selectedPlaces: any[]): any[];
|
|
17
12
|
export declare function dataGroupByTimeline(place: any, data: DataObject[], timelineType: any): any[][];
|
|
13
|
+
export declare function dataGroupByTimelineAndPlaces(place: any, province: string, district: string, data: DataObject[], timelineType: any): any[][];
|
|
14
|
+
export declare function dataGroupByAd(data: DataObject[], timelineType: any): (string | number)[][];
|
|
18
15
|
export declare function dataGroupByPlace(subCampaigns: CampaignGroupModel[], ids: any): any[];
|
|
19
16
|
export declare function campaignAnalyticInfo(subCampaigns: CampaignGroupModel[]): {
|
|
20
17
|
analyticTypes: AnalyticType[];
|
|
@@ -46,16 +46,39 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
46
46
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
47
|
};
|
|
48
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
exports.groupBy = exports.convertToChartData = exports.campaignAnalyticInfo = exports.dataGroupByPlace = exports.dataGroupByTimeline = exports.convertToShowDetail = exports.markBillingType = exports.placesToDomains = exports.convertToExport = exports.convertToExportData = exports.convertToExportDataGroupBy = void 0;
|
|
49
|
+
exports.groupBy = exports.convertToChartData = exports.campaignAnalyticInfo = exports.dataGroupByPlace = exports.dataGroupByAd = exports.dataGroupByTimelineAndPlaces = exports.dataGroupByTimeline = exports.convertToShowDetail = exports.markBillingType = exports.placesToDomains = exports.convertToExportByAd = exports.convertToExport = exports.convertToExportData = exports.convertToExportDataGroupBy = void 0;
|
|
50
50
|
var Enum_1 = require("../../../../../ACM-AXN/Campaign/Enum");
|
|
51
|
+
var Enum_2 = require("../../../../../ACM-AXN/Common/Enum");
|
|
51
52
|
var Helpers_1 = require("../../../../../Utils/Helpers");
|
|
52
53
|
var lodash_1 = __importStar(require("lodash"));
|
|
54
|
+
var moment_1 = __importDefault(require("moment"));
|
|
53
55
|
var i18n_1 = __importDefault(require("../../../../../i18n"));
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
+
var addHeaderExcel = function (result, campaignName, reportField) {
|
|
57
|
+
var timeExport = (0, moment_1.default)().format('DD/MM/YYYY, H:mm');
|
|
58
|
+
result.push({
|
|
59
|
+
columns: [i18n_1.default.t('Common.CampaignName'), campaignName],
|
|
60
|
+
data: [],
|
|
61
|
+
}, {
|
|
62
|
+
columns: [i18n_1.default.t('Common.Channel'), 'AWING Wi-Fi'],
|
|
63
|
+
data: [],
|
|
64
|
+
}, {
|
|
65
|
+
columns: [i18n_1.default.t('Common.DateGenerated'), timeExport],
|
|
66
|
+
data: [],
|
|
67
|
+
}, {
|
|
68
|
+
columns: [i18n_1.default.t('Common.Timezone'), 'GMT+7'],
|
|
69
|
+
data: [],
|
|
70
|
+
}, {
|
|
71
|
+
columns: [],
|
|
72
|
+
data: [],
|
|
73
|
+
}, {
|
|
74
|
+
columns: [reportField],
|
|
75
|
+
data: [],
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
function convertToExportDataGroupBy(data, objects, timelineType, groupBy, campaignName, reportField) {
|
|
56
79
|
var result = [];
|
|
57
|
-
var hasSpot = data.some(function (x) { return x.isSPot; });
|
|
58
80
|
var spotTitle = i18n_1.default.t('Common.Spot');
|
|
81
|
+
addHeaderExcel(result, campaignName, reportField);
|
|
59
82
|
var exportData = objects
|
|
60
83
|
.map(function (object, key) {
|
|
61
84
|
var placeIds = object.places.map(function (plc) { return plc.placeId; });
|
|
@@ -72,55 +95,42 @@ function convertToExportDataGroupBy(data, objects, timelineType, groupBy) {
|
|
|
72
95
|
result.push({
|
|
73
96
|
columns: [
|
|
74
97
|
groupBy,
|
|
75
|
-
'
|
|
98
|
+
'Date',
|
|
76
99
|
i18n_1.default.t('Common.Impression'),
|
|
77
100
|
i18n_1.default.t('Common.Engagement'),
|
|
78
|
-
spotTitle
|
|
79
|
-
]
|
|
80
|
-
|
|
81
|
-
if (item == spotTitle && !hasSpot) {
|
|
82
|
-
return '';
|
|
83
|
-
}
|
|
84
|
-
return item;
|
|
85
|
-
}),
|
|
86
|
-
data: exportData.map(function (d) {
|
|
87
|
-
if (!hasSpot) {
|
|
88
|
-
d.pop();
|
|
89
|
-
d.push('');
|
|
90
|
-
}
|
|
91
|
-
return d;
|
|
92
|
-
}),
|
|
101
|
+
spotTitle,
|
|
102
|
+
],
|
|
103
|
+
data: exportData,
|
|
93
104
|
});
|
|
94
105
|
return result;
|
|
95
106
|
}
|
|
96
107
|
exports.convertToExportDataGroupBy = convertToExportDataGroupBy;
|
|
97
|
-
function convertToExportData(data, places, timelineType) {
|
|
108
|
+
function convertToExportData(data, places, timelineType, campaignName, fullPlaces) {
|
|
98
109
|
var result = [];
|
|
99
110
|
var spotTitle = i18n_1.default.t('Common.Spot');
|
|
100
|
-
|
|
111
|
+
addHeaderExcel(result, campaignName, i18n_1.default.t('Common.Location'));
|
|
101
112
|
result.push({
|
|
102
113
|
columns: [
|
|
103
|
-
'
|
|
104
|
-
'
|
|
114
|
+
i18n_1.default.t('Common.Location'),
|
|
115
|
+
i18n_1.default.t('Common.CityProvince'),
|
|
116
|
+
i18n_1.default.t('Common.District'),
|
|
117
|
+
i18n_1.default.t('Common.Date'),
|
|
105
118
|
i18n_1.default.t('Common.Impression'),
|
|
106
|
-
i18n_1.default.t('Campaign.Engagement'),
|
|
119
|
+
i18n_1.default.t('Campaign.Engagement') + '(Spot)',
|
|
107
120
|
spotTitle,
|
|
108
|
-
]
|
|
109
|
-
|
|
110
|
-
if (item == spotTitle && !hasSpot) {
|
|
111
|
-
return '';
|
|
112
|
-
}
|
|
113
|
-
return item;
|
|
114
|
-
}),
|
|
115
|
-
data: dataGroupByTimeline('All', data, timelineType),
|
|
121
|
+
],
|
|
122
|
+
data: dataGroupByTimelineAndPlaces('All', 'All', 'All', data, timelineType),
|
|
116
123
|
});
|
|
117
124
|
Array.prototype.push.apply(result, (0, lodash_1.chain)(data)
|
|
118
125
|
.groupBy('placeId')
|
|
119
126
|
.map(function (value, key) {
|
|
127
|
+
var _a, _b;
|
|
120
128
|
var place = places.find(function (x) { return x.placeId === key; });
|
|
129
|
+
var province = (_a = fullPlaces === null || fullPlaces === void 0 ? void 0 : fullPlaces.find(function (z) { return z.code === (place === null || place === void 0 ? void 0 : place.provinceCode); })) === null || _a === void 0 ? void 0 : _a.name;
|
|
130
|
+
var district = (_b = fullPlaces === null || fullPlaces === void 0 ? void 0 : fullPlaces.find(function (z) { return z.code === (place === null || place === void 0 ? void 0 : place.districtCode); })) === null || _b === void 0 ? void 0 : _b.name;
|
|
121
131
|
var placeData = {
|
|
122
132
|
columns: Array(7).fill(''),
|
|
123
|
-
data:
|
|
133
|
+
data: dataGroupByTimelineAndPlaces(place ? place.name : key, province !== null && province !== void 0 ? province : '', district !== null && district !== void 0 ? district : '', value, timelineType),
|
|
124
134
|
};
|
|
125
135
|
return placeData;
|
|
126
136
|
})
|
|
@@ -128,10 +138,11 @@ function convertToExportData(data, places, timelineType) {
|
|
|
128
138
|
return result;
|
|
129
139
|
}
|
|
130
140
|
exports.convertToExportData = convertToExportData;
|
|
131
|
-
function convertToExport(subCampaigns, data, timelineType, places) {
|
|
141
|
+
function convertToExport(subCampaigns, data, timelineType, places, campaignName, fullPlaces) {
|
|
132
142
|
var result = [];
|
|
133
143
|
var isShouldHeader = true;
|
|
134
144
|
var spotTitle = i18n_1.default.t('Common.Spot');
|
|
145
|
+
addHeaderExcel(result, campaignName, i18n_1.default.t('Common.GeneralData'));
|
|
135
146
|
subCampaigns.forEach(function (sub) {
|
|
136
147
|
var _a;
|
|
137
148
|
(_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
|
|
@@ -143,7 +154,7 @@ function convertToExport(subCampaigns, data, timelineType, places) {
|
|
|
143
154
|
d.campaignAdId === ad.id);
|
|
144
155
|
})
|
|
145
156
|
// eslint-disable-next-line no-sequences
|
|
146
|
-
.map(function (x) { return (hasSpot = hasSpot || x.isSPot,
|
|
157
|
+
.map(function (x) { return ((hasSpot = hasSpot || x.isSPot), __assign(__assign({}, x), Object.assign.apply(Object, __spreadArray(__spreadArray([{}], Object.values(Enum_1.BaseEvent).map(function (v) {
|
|
147
158
|
var _a;
|
|
148
159
|
return (_a = {},
|
|
149
160
|
_a[v] = 0,
|
|
@@ -153,51 +164,39 @@ function convertToExport(subCampaigns, data, timelineType, places) {
|
|
|
153
164
|
return (_a = {},
|
|
154
165
|
_a[y.eventLabel] = y.total,
|
|
155
166
|
_a);
|
|
156
|
-
}), false))))
|
|
167
|
+
}), false)))); });
|
|
157
168
|
result.push({
|
|
158
|
-
columns:
|
|
169
|
+
columns: isShouldHeader
|
|
159
170
|
? [
|
|
160
|
-
'
|
|
171
|
+
i18n_1.default.t('Common.SubCampaign'),
|
|
161
172
|
'Ad',
|
|
162
|
-
'
|
|
163
|
-
'
|
|
173
|
+
i18n_1.default.t('Common.Location'),
|
|
174
|
+
i18n_1.default.t('Common.CityProvince'),
|
|
175
|
+
i18n_1.default.t('Common.District'),
|
|
176
|
+
i18n_1.default.t('Common.Date'),
|
|
164
177
|
i18n_1.default.t('Common.Impression'),
|
|
165
|
-
i18n_1.default.t(
|
|
178
|
+
i18n_1.default.t('Campaign.Engagement') + '(Spot)',
|
|
166
179
|
spotTitle,
|
|
167
180
|
]
|
|
168
|
-
: Array(7).fill('')
|
|
169
|
-
|
|
170
|
-
return '';
|
|
171
|
-
}
|
|
172
|
-
return item;
|
|
173
|
-
}),
|
|
174
|
-
data: dataGroupByTimeline('All', adData, timelineType).map(function (d) { var _a; return __spreadArray([(_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.name, ad === null || ad === void 0 ? void 0 : ad.name], d, true); }).map(function (d) {
|
|
175
|
-
if (!hasSpot) {
|
|
176
|
-
d.pop();
|
|
177
|
-
d.push('');
|
|
178
|
-
}
|
|
179
|
-
return d;
|
|
180
|
-
}),
|
|
181
|
+
: Array(7).fill(''),
|
|
182
|
+
data: dataGroupByTimelineAndPlaces('All', 'All', 'All', adData, timelineType).map(function (d) { var _a; return __spreadArray([(_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.name, ad === null || ad === void 0 ? void 0 : ad.name], d, true); }),
|
|
181
183
|
});
|
|
182
184
|
isShouldHeader = false;
|
|
183
185
|
Array.prototype.push.apply(result, (0, lodash_1.chain)(adData)
|
|
184
186
|
.groupBy('placeId')
|
|
185
187
|
.map(function (value, key) {
|
|
188
|
+
var _a, _b;
|
|
186
189
|
var place = places.find(function (x) { return x.placeId === key; });
|
|
190
|
+
var province = (_a = fullPlaces === null || fullPlaces === void 0 ? void 0 : fullPlaces.find(function (z) { return z.code === (place === null || place === void 0 ? void 0 : place.provinceCode); })) === null || _a === void 0 ? void 0 : _a.name;
|
|
191
|
+
var district = (_b = fullPlaces === null || fullPlaces === void 0 ? void 0 : fullPlaces.find(function (z) { return z.code === (place === null || place === void 0 ? void 0 : place.districtCode); })) === null || _b === void 0 ? void 0 : _b.name;
|
|
187
192
|
var placeData = {
|
|
188
193
|
columns: Array(7).fill(''),
|
|
189
|
-
data:
|
|
194
|
+
data: dataGroupByTimelineAndPlaces(place ? (place === null || place === void 0 ? void 0 : place.name) || place.placeId : key, province !== null && province !== void 0 ? province : '', district !== null && district !== void 0 ? district : '', value, timelineType).map(function (d) {
|
|
190
195
|
var _a;
|
|
191
196
|
return __spreadArray([
|
|
192
197
|
(_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.name,
|
|
193
198
|
ad === null || ad === void 0 ? void 0 : ad.name
|
|
194
199
|
], d, true);
|
|
195
|
-
}).map(function (d) {
|
|
196
|
-
if (!hasSpot) {
|
|
197
|
-
d.pop();
|
|
198
|
-
d.push('');
|
|
199
|
-
}
|
|
200
|
-
return d;
|
|
201
200
|
}),
|
|
202
201
|
};
|
|
203
202
|
return placeData;
|
|
@@ -208,6 +207,63 @@ function convertToExport(subCampaigns, data, timelineType, places) {
|
|
|
208
207
|
return result;
|
|
209
208
|
}
|
|
210
209
|
exports.convertToExport = convertToExport;
|
|
210
|
+
function convertToExportByAd(subCampaigns, data, timelineType, campaignName) {
|
|
211
|
+
var result = [];
|
|
212
|
+
var isShouldHeader = true;
|
|
213
|
+
var spotTitle = i18n_1.default.t('Common.Spot');
|
|
214
|
+
addHeaderExcel(result, campaignName, 'Ad');
|
|
215
|
+
subCampaigns.forEach(function (sub) {
|
|
216
|
+
var _a;
|
|
217
|
+
(_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
|
|
218
|
+
var hasSpot = false;
|
|
219
|
+
var adData = data
|
|
220
|
+
.filter(function (d) {
|
|
221
|
+
var _a;
|
|
222
|
+
return (d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
223
|
+
d.campaignAdId === ad.id);
|
|
224
|
+
})
|
|
225
|
+
// eslint-disable-next-line no-sequences
|
|
226
|
+
.map(function (x) { return ((hasSpot = hasSpot || x.isSPot), __assign(__assign({}, x), Object.assign.apply(Object, __spreadArray(__spreadArray([{}], Object.values(Enum_1.BaseEvent).map(function (v) {
|
|
227
|
+
var _a;
|
|
228
|
+
return (_a = {},
|
|
229
|
+
_a[v] = 0,
|
|
230
|
+
_a);
|
|
231
|
+
}), false), x.analyticEventSummaries.map(function (y) {
|
|
232
|
+
var _a;
|
|
233
|
+
return (_a = {},
|
|
234
|
+
_a[y.eventLabel] = y.total,
|
|
235
|
+
_a);
|
|
236
|
+
}), false)))); });
|
|
237
|
+
result.push({
|
|
238
|
+
columns: isShouldHeader
|
|
239
|
+
? [
|
|
240
|
+
'Ad',
|
|
241
|
+
i18n_1.default.t('Common.Date'),
|
|
242
|
+
i18n_1.default.t('Common.Impression'),
|
|
243
|
+
i18n_1.default.t('Campaign.Engagement') + '(Spot)',
|
|
244
|
+
spotTitle,
|
|
245
|
+
]
|
|
246
|
+
: Array(7).fill(''),
|
|
247
|
+
data: dataGroupByAd(adData, timelineType).map(function (d) { return __spreadArray([
|
|
248
|
+
ad === null || ad === void 0 ? void 0 : ad.name
|
|
249
|
+
], d, true); }),
|
|
250
|
+
});
|
|
251
|
+
isShouldHeader = false;
|
|
252
|
+
Array.prototype.push.apply(result, (0, lodash_1.chain)(adData)
|
|
253
|
+
.groupBy('placeId')
|
|
254
|
+
.map(function (value, key) {
|
|
255
|
+
var placeData = {
|
|
256
|
+
columns: Array(7).fill(''),
|
|
257
|
+
data: dataGroupByAd(value, timelineType).map(function (d) { return __spreadArray([ad === null || ad === void 0 ? void 0 : ad.name], d, true); }),
|
|
258
|
+
};
|
|
259
|
+
return placeData;
|
|
260
|
+
})
|
|
261
|
+
.value());
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
return result;
|
|
265
|
+
}
|
|
266
|
+
exports.convertToExportByAd = convertToExportByAd;
|
|
211
267
|
function placesToDomains(places, domains) {
|
|
212
268
|
var _a, _b;
|
|
213
269
|
if (domains === void 0) { domains = []; }
|
|
@@ -238,22 +294,26 @@ function placesToDomains(places, domains) {
|
|
|
238
294
|
return groupDomain;
|
|
239
295
|
}
|
|
240
296
|
exports.placesToDomains = placesToDomains;
|
|
241
|
-
var markBillingType = function (subCampaigns, data) {
|
|
242
|
-
|
|
243
|
-
// eslint-disable-next-line eqeqeq
|
|
244
|
-
var _b = subCampaigns.find(function (c) { return c.campaignGroup.id == x.campaignGroupId; }), campaignGroup = _b.campaignGroup, ads = _b.ads;
|
|
245
|
-
return __assign(__assign(__assign({}, x), Object.assign.apply(Object, __spreadArray(__spreadArray([{}], Object.values(Enum_1.BaseEvent).map(function (v) {
|
|
246
|
-
var _a;
|
|
247
|
-
return (_a = {},
|
|
248
|
-
_a[v] = 0,
|
|
249
|
-
_a);
|
|
250
|
-
}), false), x.analyticEventSummaries.map(function (y) {
|
|
297
|
+
var markBillingType = function (subCampaigns, data) {
|
|
298
|
+
return data.map(function (x, index) {
|
|
251
299
|
var _a;
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
300
|
+
// eslint-disable-next-line eqeqeq
|
|
301
|
+
var _b = subCampaigns.find(function (c) { return c.campaignGroup.id == x.campaignGroupId; }), campaignGroup = _b.campaignGroup, ads = _b.ads;
|
|
302
|
+
return __assign(__assign(__assign({}, x), Object.assign.apply(Object, __spreadArray(__spreadArray([{}], Object.values(Enum_1.BaseEvent).map(function (v) {
|
|
303
|
+
var _a;
|
|
304
|
+
return (_a = {},
|
|
305
|
+
_a[v] = 0,
|
|
306
|
+
_a);
|
|
307
|
+
}), false), x.analyticEventSummaries.map(function (y) {
|
|
308
|
+
var _a;
|
|
309
|
+
return (_a = {},
|
|
310
|
+
_a[y.eventLabel] = y.total,
|
|
311
|
+
_a);
|
|
312
|
+
}), false))), { billingUnit: campaignGroup.billingUnit, isSPot: campaignGroup.billingUnit === Enum_2.AnalyticType.AUTHENTICATION &&
|
|
313
|
+
((_a = ads.find(function (ad) { return ad.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) ===
|
|
314
|
+
Enum_1.AdType.VIDEO });
|
|
315
|
+
});
|
|
316
|
+
};
|
|
257
317
|
exports.markBillingType = markBillingType;
|
|
258
318
|
function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces) {
|
|
259
319
|
var placeIds = selectedPlaces.map(function (p) { return p.placeId; });
|
|
@@ -265,20 +325,23 @@ function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces
|
|
|
265
325
|
var adPlaces = ((_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.concat(((_b = ad === null || ad === void 0 ? void 0 : ad.deletedPlaces) === null || _b === void 0 ? void 0 : _b.map(function (item) { return (__assign(__assign({}, item), { isDeleted: true })); })) || [])) || [];
|
|
266
326
|
(0, lodash_1.uniqBy)(
|
|
267
327
|
// adPlaces.filter((p) => placeIds.includes(p.placeId)),
|
|
268
|
-
placeIds.length
|
|
328
|
+
placeIds.length
|
|
329
|
+
? adPlaces.filter(function (p) { return placeIds.includes(p.placeId); })
|
|
330
|
+
: adPlaces, 'placeId').forEach(function (place) {
|
|
269
331
|
var domain = selectedDomains.find(function (s) { return s.domainId === (place === null || place === void 0 ? void 0 : place.domainId); });
|
|
270
332
|
var totalClick = data
|
|
271
333
|
.filter(function (d) {
|
|
272
334
|
var _a;
|
|
273
|
-
return d.placeId === place.placeId
|
|
274
|
-
|
|
275
|
-
|
|
335
|
+
return d.placeId === place.placeId &&
|
|
336
|
+
d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
337
|
+
d.campaignAdId === (ad === null || ad === void 0 ? void 0 : ad.id);
|
|
276
338
|
})
|
|
277
339
|
.reduce(function (sum, d) {
|
|
278
340
|
var _a;
|
|
279
341
|
var event = (_a = d.analyticEventSummaries) === null || _a === void 0 ? void 0 : _a.find(function (_a) {
|
|
280
342
|
var eventLabel = _a.eventLabel;
|
|
281
|
-
return
|
|
343
|
+
return eventLabel ===
|
|
344
|
+
Enum_1.BaseEvent[sub.campaignGroup.billingUnit];
|
|
282
345
|
});
|
|
283
346
|
return sum + ((event === null || event === void 0 ? void 0 : event.total) || 0);
|
|
284
347
|
}, 0);
|
|
@@ -302,55 +365,119 @@ function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces
|
|
|
302
365
|
}
|
|
303
366
|
exports.convertToShowDetail = convertToShowDetail;
|
|
304
367
|
function dataGroupByTimeline(place, data, timelineType) {
|
|
305
|
-
var hasSpot = data.some(function (x) { return x.isSPot; });
|
|
306
368
|
var result = (0, lodash_1.chain)(data)
|
|
307
369
|
.groupBy('timeline')
|
|
308
370
|
.map(function (value, key) {
|
|
309
371
|
var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
|
|
310
372
|
? 'DD/MM/YYYY'
|
|
311
373
|
: 'DD/MM/YYYY, H:mm');
|
|
312
|
-
// let impression = sumBy(value, BaseEvent[AnalyticType.VIEW])
|
|
313
374
|
var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
314
375
|
var authen = value.reduce(function (sum, d) {
|
|
376
|
+
var _a, _b;
|
|
315
377
|
if (d.isSPot) {
|
|
316
|
-
return sum +
|
|
378
|
+
return (sum +
|
|
379
|
+
Number((_a = d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
380
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _a !== void 0 ? _a : 0));
|
|
317
381
|
}
|
|
318
|
-
return sum + Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]
|
|
382
|
+
return sum + Number((_b = d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _b !== void 0 ? _b : 0);
|
|
319
383
|
}, 0);
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
384
|
+
return [place, dateString, impression, authen];
|
|
385
|
+
})
|
|
386
|
+
.value();
|
|
387
|
+
var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
388
|
+
var authenTotal = data.reduce(function (sum, d) {
|
|
389
|
+
var _a, _b;
|
|
390
|
+
if (d.isSPot) {
|
|
391
|
+
return ((_a = sum +
|
|
392
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
393
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _a !== void 0 ? _a : 0);
|
|
326
394
|
}
|
|
327
|
-
|
|
395
|
+
console.log('d[BaseEvent[AnalyticType.CLICK]] :>> ', d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]);
|
|
396
|
+
return (_b = sum + d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _b !== void 0 ? _b : 0;
|
|
397
|
+
}, 0);
|
|
398
|
+
var totalArr = [
|
|
399
|
+
place,
|
|
400
|
+
i18n_1.default.t('Schedule.Total'),
|
|
401
|
+
impressionTotal,
|
|
402
|
+
authenTotal,
|
|
403
|
+
];
|
|
404
|
+
result.push(totalArr);
|
|
405
|
+
return result;
|
|
406
|
+
}
|
|
407
|
+
exports.dataGroupByTimeline = dataGroupByTimeline;
|
|
408
|
+
function dataGroupByTimelineAndPlaces(place, province, district, data, timelineType) {
|
|
409
|
+
var result = (0, lodash_1.chain)(data)
|
|
410
|
+
.groupBy('timeline')
|
|
411
|
+
.map(function (value, key) {
|
|
412
|
+
var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
|
|
413
|
+
? 'DD/MM/YYYY'
|
|
414
|
+
: 'DD/MM/YYYY, H:mm');
|
|
415
|
+
var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
416
|
+
var authen = value.reduce(function (sum, d) {
|
|
417
|
+
if (d.isSPot) {
|
|
418
|
+
return (sum +
|
|
419
|
+
Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
420
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] || 0));
|
|
421
|
+
}
|
|
422
|
+
return sum + Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] || 0);
|
|
423
|
+
}, 0);
|
|
424
|
+
return [place, province, district, dateString, impression, authen];
|
|
328
425
|
})
|
|
329
426
|
.value();
|
|
330
|
-
var
|
|
331
|
-
var
|
|
427
|
+
var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
428
|
+
var authenTotal = data.reduce(function (sum, d) {
|
|
332
429
|
if (d.isSPot) {
|
|
333
|
-
return sum +
|
|
430
|
+
return (sum +
|
|
431
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
432
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]);
|
|
334
433
|
}
|
|
335
434
|
return sum + d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]];
|
|
336
435
|
}, 0);
|
|
337
|
-
var totalArr = [
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
436
|
+
var totalArr = [
|
|
437
|
+
place,
|
|
438
|
+
province,
|
|
439
|
+
district,
|
|
440
|
+
i18n_1.default.t('Schedule.Total'),
|
|
441
|
+
impressionTotal,
|
|
442
|
+
authenTotal,
|
|
443
|
+
];
|
|
344
444
|
result.push(totalArr);
|
|
345
|
-
return result
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
445
|
+
return result;
|
|
446
|
+
}
|
|
447
|
+
exports.dataGroupByTimelineAndPlaces = dataGroupByTimelineAndPlaces;
|
|
448
|
+
function dataGroupByAd(data, timelineType) {
|
|
449
|
+
var result = (0, lodash_1.chain)(data)
|
|
450
|
+
.groupBy('timeline')
|
|
451
|
+
.map(function (value, key) {
|
|
452
|
+
var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
|
|
453
|
+
? 'DD/MM/YYYY'
|
|
454
|
+
: 'DD/MM/YYYY, H:mm');
|
|
455
|
+
var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
456
|
+
var authen = value.reduce(function (sum, d) {
|
|
457
|
+
if (d.isSPot) {
|
|
458
|
+
return (sum +
|
|
459
|
+
Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
460
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] || 0));
|
|
461
|
+
}
|
|
462
|
+
return sum + Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] || 0);
|
|
463
|
+
}, 0);
|
|
464
|
+
return [dateString, impression, authen];
|
|
465
|
+
})
|
|
466
|
+
.value();
|
|
467
|
+
var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
468
|
+
var authenTotal = data.reduce(function (sum, d) {
|
|
469
|
+
if (d.isSPot) {
|
|
470
|
+
return (sum +
|
|
471
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
472
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]);
|
|
349
473
|
}
|
|
350
|
-
return d;
|
|
351
|
-
});
|
|
474
|
+
return sum + d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]];
|
|
475
|
+
}, 0);
|
|
476
|
+
var totalArr = [i18n_1.default.t('Schedule.Total'), impressionTotal, authenTotal];
|
|
477
|
+
result.push(totalArr);
|
|
478
|
+
return result;
|
|
352
479
|
}
|
|
353
|
-
exports.
|
|
480
|
+
exports.dataGroupByAd = dataGroupByAd;
|
|
354
481
|
function dataGroupByPlace(subCampaigns, ids) {
|
|
355
482
|
return (0, lodash_1.chain)(subCampaigns.filter(function (sub) {
|
|
356
483
|
var _a, _b, _c;
|
|
@@ -381,13 +508,16 @@ exports.dataGroupByPlace = dataGroupByPlace;
|
|
|
381
508
|
function campaignAnalyticInfo(subCampaigns) {
|
|
382
509
|
return {
|
|
383
510
|
analyticTypes: Array.from(new Set(subCampaigns.map(function (x) { return x.campaignGroup.billingUnit; }))),
|
|
384
|
-
hasSpot: subCampaigns.some(function (sub) {
|
|
385
|
-
|
|
511
|
+
hasSpot: subCampaigns.some(function (sub) { return sub.ads.some(function (ad) { return ad.type === Enum_1.AdType.VIDEO; }); }),
|
|
512
|
+
hasEg: subCampaigns.some(function (sub) {
|
|
513
|
+
return sub.ads.some(function (ad) {
|
|
514
|
+
return (ad.type === Enum_1.AdType.VIDEO &&
|
|
515
|
+
sub.campaignGroup.billingUnit !==
|
|
516
|
+
Enum_2.AnalyticType.AUTHENTICATION) ||
|
|
517
|
+
ad.type !== Enum_1.AdType.VIDEO;
|
|
518
|
+
}) &&
|
|
519
|
+
[Enum_2.AnalyticType.CLICK, Enum_2.AnalyticType.AUTHENTICATION].includes(sub.campaignGroup.billingUnit);
|
|
386
520
|
}),
|
|
387
|
-
hasEg: subCampaigns.some(function (sub) { return sub.ads.some(function (ad) {
|
|
388
|
-
return (ad.type === Enum_1.AdType.VIDEO && sub.campaignGroup.billingUnit !== Enum_2.AnalyticType.AUTHENTICATION) ||
|
|
389
|
-
ad.type !== Enum_1.AdType.VIDEO;
|
|
390
|
-
}) && [Enum_2.AnalyticType.CLICK, Enum_2.AnalyticType.AUTHENTICATION].includes(sub.campaignGroup.billingUnit); }),
|
|
391
521
|
};
|
|
392
522
|
}
|
|
393
523
|
exports.campaignAnalyticInfo = campaignAnalyticInfo;
|
|
@@ -396,7 +526,9 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
396
526
|
var timelineType = 'YYYYMMDD';
|
|
397
527
|
var convertData = Object.assign.apply(Object, __spreadArray([{}], [Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW], 'Spot', 'Engagement'].map(function (x) {
|
|
398
528
|
var _a;
|
|
399
|
-
return (_a = {},
|
|
529
|
+
return (_a = {},
|
|
530
|
+
_a[x] = { total: 0, chartData: [] },
|
|
531
|
+
_a);
|
|
400
532
|
}), false));
|
|
401
533
|
data.forEach(function (x) {
|
|
402
534
|
var _a;
|
|
@@ -407,8 +539,7 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
407
539
|
if (!subCampaign)
|
|
408
540
|
return;
|
|
409
541
|
var billingUnit = subCampaign.campaignGroup.billingUnit;
|
|
410
|
-
var
|
|
411
|
-
var isSpot = hasAuthen && ((_a = subCampaign.ads.find(function (s) { return s.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) === Enum_1.AdType.VIDEO;
|
|
542
|
+
var isSpot = ((_a = subCampaign.ads.find(function (s) { return s.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) === Enum_1.AdType.VIDEO;
|
|
412
543
|
var timeline = x.timeline.toString();
|
|
413
544
|
x.analyticEventSummaries.forEach(function (event) {
|
|
414
545
|
var _a;
|
|
@@ -416,7 +547,11 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
416
547
|
var objKey = [
|
|
417
548
|
Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION],
|
|
418
549
|
Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK],
|
|
419
|
-
].includes(event.eventLabel)
|
|
550
|
+
].includes(event.eventLabel)
|
|
551
|
+
? isSpot
|
|
552
|
+
? 'Spot'
|
|
553
|
+
: 'Engagement'
|
|
554
|
+
: event.eventLabel;
|
|
420
555
|
(_a = convertData[objKey]) === null || _a === void 0 ? void 0 : _a.chartData.push({
|
|
421
556
|
y: event.total,
|
|
422
557
|
x: timeline,
|
|
@@ -429,16 +564,20 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
429
564
|
});
|
|
430
565
|
var translate = (_a = {},
|
|
431
566
|
_a[Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]] = 'Common.Impression',
|
|
432
|
-
_a
|
|
433
|
-
_a
|
|
567
|
+
_a.Spot = 'Campaign.Spot',
|
|
568
|
+
_a.Engagement = 'Campaign.Engagement',
|
|
434
569
|
_a);
|
|
435
570
|
var analyticInfo = campaignAnalyticInfo(campaignGroups);
|
|
436
|
-
return Object.entries(convertData)
|
|
571
|
+
return Object.entries(convertData)
|
|
572
|
+
.map(function (_a, index) {
|
|
437
573
|
var key = _a[0], value = _a[1];
|
|
438
574
|
if ((key === 'Spot' && !analyticInfo.hasSpot) ||
|
|
439
575
|
(key === 'Engagement' && !analyticInfo.hasEg))
|
|
440
576
|
return false;
|
|
441
|
-
var data = (0, lodash_1.default)(value.chartData)
|
|
577
|
+
var data = (0, lodash_1.default)(value.chartData)
|
|
578
|
+
.groupBy('x')
|
|
579
|
+
.map(function (value, key) { return ({ x: key, y: (0, lodash_1.sumBy)(value, 'y') }); })
|
|
580
|
+
.value();
|
|
442
581
|
return {
|
|
443
582
|
label: "".concat(i18n_1.default.t(translate[key]), " ").concat((0, Helpers_1.roundDecimalNumber)(value.total)),
|
|
444
583
|
type: 'line',
|
|
@@ -448,7 +587,8 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
448
587
|
yAxisID: 'y',
|
|
449
588
|
variant: key,
|
|
450
589
|
};
|
|
451
|
-
})
|
|
590
|
+
})
|
|
591
|
+
.filter(Boolean);
|
|
452
592
|
};
|
|
453
593
|
exports.convertToChartData = convertToChartData;
|
|
454
594
|
function groupBy(array, key) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AdministrativeUnit } from '../Types';
|
|
1
2
|
import { CampaignGroupModel } from '../../../../../ACM-AXN/Campaign/Types';
|
|
2
3
|
export interface ICampaignAdGroup {
|
|
3
4
|
campaignId?: string;
|
|
@@ -6,10 +7,12 @@ export interface ICampaignAdGroup {
|
|
|
6
7
|
}
|
|
7
8
|
interface Props {
|
|
8
9
|
campaignId: string;
|
|
10
|
+
campaignName?: string;
|
|
9
11
|
startDate: Date;
|
|
10
12
|
endDate: Date;
|
|
11
13
|
subCampaigns: CampaignGroupModel[];
|
|
12
14
|
domains: any[];
|
|
15
|
+
fullPlaces?: AdministrativeUnit[];
|
|
13
16
|
}
|
|
14
17
|
declare const AnalyticContainer: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
15
18
|
export default AnalyticContainer;
|
|
@@ -15,7 +15,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
-
/* eslint-disable eqeqeq */
|
|
19
18
|
var react_1 = require("react");
|
|
20
19
|
var common_1 = require("../common");
|
|
21
20
|
var Utils_1 = require("./Utils");
|
|
@@ -26,8 +25,9 @@ var lodash_1 = require("lodash");
|
|
|
26
25
|
var Context_1 = __importDefault(require("../Context"));
|
|
27
26
|
var exportFile_1 = require("../../../../../ACM-AXN/CampaignSchedule/exportFile");
|
|
28
27
|
var Enum_2 = require("../../../../../ACM-AXN/Common/Enum");
|
|
28
|
+
var i18n_1 = __importDefault(require("../../../../../i18n"));
|
|
29
29
|
var AnalyticContainer = function (props) {
|
|
30
|
-
var campaignId = props.campaignId, startDate = props.startDate, endDate = props.endDate, subCampaigns = props.subCampaigns, domains = props.domains;
|
|
30
|
+
var campaignId = props.campaignId, startDate = props.startDate, endDate = props.endDate, subCampaigns = props.subCampaigns, domains = props.domains, campaignName = props.campaignName, fullPlaces = props.fullPlaces;
|
|
31
31
|
var client = (0, Context_1.default)().services;
|
|
32
32
|
var _a = (0, react_1.useState)(true), isLoading = _a[0], setIsLoading = _a[1];
|
|
33
33
|
var _b = (0, react_1.useState)([]), statisticalChartData = _b[0], setStatisticalChartData = _b[1];
|
|
@@ -52,7 +52,11 @@ var AnalyticContainer = function (props) {
|
|
|
52
52
|
var _a;
|
|
53
53
|
(_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
|
|
54
54
|
var _a;
|
|
55
|
-
if (ids.find(function (id) {
|
|
55
|
+
if (ids.find(function (id) {
|
|
56
|
+
var _a;
|
|
57
|
+
return id.campaignGroupId == ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
58
|
+
(!id.campaignAdId || id.campaignAdId == (ad === null || ad === void 0 ? void 0 : ad.id));
|
|
59
|
+
})) {
|
|
56
60
|
(_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.forEach(function (place) {
|
|
57
61
|
if (!result.find(function (r) { return r.placeId == place.placeId; })) {
|
|
58
62
|
result.push(place);
|
|
@@ -71,80 +75,94 @@ var AnalyticContainer = function (props) {
|
|
|
71
75
|
: selectedPlaces;
|
|
72
76
|
var selectedDomains = (0, Utils_1.placesToDomains)(selectedPlaces, domains);
|
|
73
77
|
setIsLoading(true);
|
|
74
|
-
client
|
|
78
|
+
client
|
|
79
|
+
.campaignStatisticGet({
|
|
75
80
|
startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
|
|
76
81
|
endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
|
|
77
82
|
timelineType: timelineType,
|
|
78
|
-
campaignAdGroups: ids.length
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
Enum_2.AnalyticGroupBy.GbCampaignAdId
|
|
85
|
-
],
|
|
83
|
+
campaignAdGroups: ids.length
|
|
84
|
+
? ids.map(function (id) { return (__assign(__assign({}, id), { campaignId: campaignId })); })
|
|
85
|
+
: [{ campaignId: campaignId }],
|
|
86
|
+
analyticGroupBies: Object.values(Enum_2.AnalyticGroupBy)
|
|
87
|
+
.filter(function (g) { return !isNaN(Number(g)); })
|
|
88
|
+
.map(function (g) { return Number(g); }),
|
|
86
89
|
placeIds: placeIds,
|
|
87
|
-
includedEventLabels: Object.values(Enum_1.BaseEvent)
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
setStatisticalChartData(statisticType
|
|
91
|
-
|
|
90
|
+
includedEventLabels: Object.values(Enum_1.BaseEvent),
|
|
91
|
+
})
|
|
92
|
+
.then(function (res) {
|
|
93
|
+
setStatisticalChartData(statisticType
|
|
94
|
+
? (0, Utils_1.convertToShowDetail)(subCampaigns, res, selectedDomains, selectedPlaces)
|
|
95
|
+
: res);
|
|
96
|
+
})
|
|
97
|
+
.finally(function () { return setIsLoading(false); });
|
|
92
98
|
};
|
|
93
99
|
var exportData = function (time, placeIds, timelineType, exportType, ids) {
|
|
94
100
|
var selectedPlaces = placeIds.length > 0
|
|
95
101
|
? placesOfCampaign.filter(function (p) { return placeIds.includes(p.placeId); })
|
|
96
102
|
: placesOfCampaign;
|
|
97
103
|
var selectedDomains = (0, Utils_1.placesToDomains)(selectedPlaces, domains);
|
|
98
|
-
return client
|
|
104
|
+
return client
|
|
105
|
+
.campaignStatisticGet({
|
|
99
106
|
startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
|
|
100
107
|
endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
|
|
101
108
|
timelineType: timelineType,
|
|
102
|
-
campaignAdGroups: ids.length
|
|
103
|
-
|
|
109
|
+
campaignAdGroups: ids.length
|
|
110
|
+
? ids.map(function (id) { return (__assign(__assign({}, id), { campaignId: campaignId })); })
|
|
111
|
+
: [{ campaignId: campaignId }],
|
|
112
|
+
analyticGroupBies: Object.values(Enum_2.AnalyticGroupBy)
|
|
113
|
+
.filter(function (g) { return !isNaN(Number(g)); })
|
|
114
|
+
.map(function (g) { return Number(g); }),
|
|
104
115
|
placeIds: placeIds,
|
|
105
|
-
includedEventLabels: Object.values(Enum_1.BaseEvent)
|
|
106
|
-
})
|
|
107
|
-
|
|
116
|
+
includedEventLabels: Object.values(Enum_1.BaseEvent),
|
|
117
|
+
})
|
|
118
|
+
.then(function (res) {
|
|
119
|
+
var statisticalData = (0, Utils_1.markBillingType)(subCampaigns, res);
|
|
120
|
+
var newObjects = (0, lodash_1.chain)(selectedDomains)
|
|
121
|
+
.groupBy('domainId')
|
|
122
|
+
.map(function (value) {
|
|
123
|
+
var currentPlaces = value
|
|
124
|
+
.map(function (x) { return x.places; })
|
|
125
|
+
.reduce(function (a, b) { return a.concat(b); }, []);
|
|
126
|
+
return {
|
|
127
|
+
objectId: value[0].domainId,
|
|
128
|
+
objectName: value[0].domainName,
|
|
129
|
+
places: currentPlaces,
|
|
130
|
+
};
|
|
131
|
+
})
|
|
132
|
+
.value();
|
|
108
133
|
var exportObj = {
|
|
109
134
|
name: "export_statistic_campaign_".concat(campaignId),
|
|
110
|
-
data: []
|
|
135
|
+
data: [],
|
|
111
136
|
};
|
|
112
137
|
switch (exportType) {
|
|
113
138
|
case common_1.EXPORT_TYPES.Domain: {
|
|
114
|
-
|
|
115
|
-
.groupBy('domainId')
|
|
116
|
-
.map(function (value) {
|
|
117
|
-
var currentPlaces = value
|
|
118
|
-
.map(function (x) { return x.places; })
|
|
119
|
-
.reduce(function (a, b) { return a.concat(b); }, []);
|
|
120
|
-
return {
|
|
121
|
-
objectId: value[0].domainId,
|
|
122
|
-
objectName: value[0].domainName,
|
|
123
|
-
places: currentPlaces,
|
|
124
|
-
};
|
|
125
|
-
})
|
|
126
|
-
.value();
|
|
127
|
-
exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(markedData, newObjects, timelineType, 'Domain');
|
|
139
|
+
exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(statisticalData, newObjects, timelineType, 'Domain', campaignName !== null && campaignName !== void 0 ? campaignName : '', 'Domain');
|
|
128
140
|
exportObj.name += '_groupby_domain';
|
|
129
141
|
break;
|
|
130
142
|
}
|
|
131
143
|
case common_1.EXPORT_TYPES.Export: {
|
|
132
|
-
exportObj.data = (0, Utils_1.convertToExport)(subCampaigns,
|
|
144
|
+
exportObj.data = (0, Utils_1.convertToExport)(subCampaigns, statisticalData, timelineType, selectedPlaces, campaignName !== null && campaignName !== void 0 ? campaignName : '', fullPlaces);
|
|
133
145
|
exportObj.name += '_total';
|
|
134
146
|
break;
|
|
135
147
|
}
|
|
136
148
|
case common_1.EXPORT_TYPES.LocationGroup: {
|
|
137
|
-
exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(
|
|
149
|
+
exportObj.data = (0, Utils_1.convertToExportDataGroupBy)(statisticalData, (0, Utils_1.dataGroupByPlace)(subCampaigns, ids), timelineType, 'Sub Campaign', campaignName !== null && campaignName !== void 0 ? campaignName : '', i18n_1.default.t('Common.SubCampaign'));
|
|
138
150
|
exportObj.name += '_groupby_subcampaign';
|
|
139
151
|
break;
|
|
140
152
|
}
|
|
153
|
+
case common_1.EXPORT_TYPES.Ad: {
|
|
154
|
+
exportObj.data = (0, Utils_1.convertToExportByAd)(subCampaigns, statisticalData, timelineType, campaignName !== null && campaignName !== void 0 ? campaignName : '');
|
|
155
|
+
exportObj.name += '_ad';
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
141
158
|
default: {
|
|
142
|
-
exportObj.data = (0, Utils_1.convertToExportData)(
|
|
159
|
+
exportObj.data = (0, Utils_1.convertToExportData)(statisticalData, selectedPlaces, timelineType, campaignName !== null && campaignName !== void 0 ? campaignName : '', fullPlaces);
|
|
143
160
|
exportObj.name += '_groupby_place';
|
|
144
161
|
break;
|
|
145
162
|
}
|
|
146
163
|
}
|
|
147
164
|
(0, exportFile_1.downloadWithDataSet)(String(exportObj.name).toUpperCase(), exportObj.data);
|
|
165
|
+
return;
|
|
148
166
|
});
|
|
149
167
|
};
|
|
150
168
|
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 }));
|
|
@@ -61,6 +61,7 @@ var SplitButtonExportType = function (props) {
|
|
|
61
61
|
Domain: t("Campaign.ExportType.Domain"),
|
|
62
62
|
Location: t('Campaign.ExportType.Location'),
|
|
63
63
|
LocationGroup: t('Campaign.ExportType.LocationGroup'),
|
|
64
|
+
Ad: t('Campaign.ExportType.Ad'),
|
|
64
65
|
};
|
|
65
66
|
return ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, direction: "column", alignItems: "center", children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, xs: 12, children: [(0, jsx_runtime_1.jsxs)(material_1.ButtonGroup, { disabled: loading, variant: "outlined", color: "inherit", ref: anchorRef, "aria-label": "split button", children: [(0, jsx_runtime_1.jsx)(lab_1.LoadingButton, { variant: 'outlined', onClick: handleClick, loading: loading, children: translationText[options[selectedIndex]] }), (0, jsx_runtime_1.jsx)(material_1.Button, { size: "small", "aria-controls": open ? 'split-button-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-label": "select merge strategy", "aria-haspopup": "menu", onClick: handleToggle, children: (0, jsx_runtime_1.jsx)(ArrowDropDown_1.default, {}) })] }), (0, jsx_runtime_1.jsx)(material_1.Popper, { style: { zIndex: 99999 }, open: open, anchorEl: anchorRef.current, transition: true, children: function (_a) {
|
|
66
67
|
var TransitionProps = _a.TransitionProps, placement = _a.placement;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { CampaignGroupModel, PlaceFilter } from '../../../../ACM-AXN/Campaign/Types';
|
|
3
3
|
import { ShareType } from '../../../../ACM-AXN/Common/Enum';
|
|
4
4
|
import { IStatisticDTO, Timestamp } from '../../../../ACM-AXN/Common/Types';
|
|
5
|
+
import { AdministrativeUnitType } from '../../../../ACM-AXN/Page/enums';
|
|
5
6
|
import { BaseChartComponent } from 'react-chartjs-2/dist/types';
|
|
6
7
|
export interface IAudienceObjectOverview {
|
|
7
8
|
timeline?: number;
|
|
@@ -81,6 +82,12 @@ export type DateRange = {
|
|
|
81
82
|
startDate: Date;
|
|
82
83
|
endDate: Date;
|
|
83
84
|
};
|
|
85
|
+
export type AdministrativeUnit = {
|
|
86
|
+
code?: string | undefined;
|
|
87
|
+
parentUnitCode?: string | undefined;
|
|
88
|
+
name?: string | undefined;
|
|
89
|
+
type?: AdministrativeUnitType;
|
|
90
|
+
};
|
|
84
91
|
export interface CampaignAnalyticService {
|
|
85
92
|
campaignStatisticGetEvents(body: IStatisticDTO | undefined): Promise<AnalyticEvent[]>;
|
|
86
93
|
campaignStatisticGetCustomer(startDate: string | undefined, endDate: string | undefined, campaignId: string | undefined): Promise<AudienceObjectReply>;
|
|
@@ -88,12 +95,15 @@ export interface CampaignAnalyticService {
|
|
|
88
95
|
domainsGetAll?: () => Promise<IDomain[]>;
|
|
89
96
|
placesGetPagingByPlaceFilter: (pageIndex?: number, pageSize?: number, body?: PlaceFilter) => Promise<any>;
|
|
90
97
|
placesGetByPlaceFilter: (body?: PlaceFilter) => Promise<any[]>;
|
|
98
|
+
administrativeUnitsGet: () => Promise<AdministrativeUnit[]>;
|
|
91
99
|
}
|
|
92
100
|
export interface CampaignAnalyticProps {
|
|
93
101
|
placeMultiSelectComponent: (p?: any) => JSX.Element;
|
|
102
|
+
fullPlaces?: AdministrativeUnit[];
|
|
94
103
|
chart: BaseChartComponent;
|
|
95
104
|
services: CampaignAnalyticService;
|
|
96
105
|
campaignId: string;
|
|
106
|
+
campaignName?: string;
|
|
97
107
|
isNetwork?: boolean;
|
|
98
108
|
subCampaigns: CampaignGroupModel[];
|
|
99
109
|
}
|
|
@@ -4,6 +4,7 @@ exports.EXPORT_TYPES = void 0;
|
|
|
4
4
|
exports.EXPORT_TYPES = {
|
|
5
5
|
Export: "Export",
|
|
6
6
|
Domain: "Domain",
|
|
7
|
-
LocationGroup: "LocationGroup",
|
|
8
|
-
Location: "Location",
|
|
7
|
+
LocationGroup: "LocationGroup", // Chiến dịch con
|
|
8
|
+
Location: "Location", // Địa điểm
|
|
9
|
+
Ad: "Ad" // Quảng cáo
|
|
9
10
|
};
|
|
@@ -39,13 +39,42 @@ var Context_1 = __importStar(require("./Context"));
|
|
|
39
39
|
var Hooks_1 = require("../../../../AWING/Hooks");
|
|
40
40
|
exports.tabs = { ANALYTIC: 0, EVENT: 1, CUSTOMER: 2 };
|
|
41
41
|
function TabStatisticsContainer() {
|
|
42
|
-
var _a = (0, Context_1.default)(), client = _a.services, campaignId = _a.campaignId, subCampaigns = _a.subCampaigns, isNetwork = _a.isNetwork;
|
|
42
|
+
var _a = (0, Context_1.default)(), client = _a.services, campaignId = _a.campaignId, subCampaigns = _a.subCampaigns, isNetwork = _a.isNetwork, campaignName = _a.campaignName, fullPlaces = _a.fullPlaces;
|
|
43
43
|
var _b = (0, react_1.useState)(exports.tabs.ANALYTIC), tabIndex = _b[0], setTabIndex = _b[1];
|
|
44
44
|
var time = (0, react_1.useMemo)(function () { return (0, Utils_1.getTime)(subCampaigns); }, [subCampaigns]);
|
|
45
|
+
var _c = (0, Hooks_1.useGetData)([], function () {
|
|
46
|
+
return client.domainsGetAll
|
|
47
|
+
? client === null || client === void 0 ? void 0 : client.domainsGetAll().then(function (res) {
|
|
48
|
+
var campaignDomains = [];
|
|
49
|
+
subCampaigns.forEach(function (s) {
|
|
50
|
+
var _a;
|
|
51
|
+
(_a = s === null || s === void 0 ? void 0 : s.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
|
|
52
|
+
var _a;
|
|
53
|
+
(_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.forEach(function (p) {
|
|
54
|
+
var _a;
|
|
55
|
+
var idx = campaignDomains.findIndex(function (c) { return c.domainId === p.domainId; });
|
|
56
|
+
if (idx > -1) {
|
|
57
|
+
campaignDomains[idx].places.push(p);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
var domainName = (_a = res.find(function (d) { return d.domainId === p.domainId; })) === null || _a === void 0 ? void 0 : _a.name;
|
|
61
|
+
campaignDomains.push({
|
|
62
|
+
domainId: p.domainId,
|
|
63
|
+
domainName: domainName,
|
|
64
|
+
places: [p],
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
return campaignDomains;
|
|
71
|
+
})
|
|
72
|
+
: Promise.resolve([]);
|
|
73
|
+
}), isLoading = _c.isLoading, data = _c.data;
|
|
45
74
|
var tabPanel = function () {
|
|
46
75
|
switch (tabIndex) {
|
|
47
76
|
case exports.tabs.ANALYTIC:
|
|
48
|
-
return ((0, jsx_runtime_1.jsx)(Analytic_1.default, { campaignId: campaignId, subCampaigns: subCampaigns, startDate: time.startDate, endDate: time.endDate, domains: data }));
|
|
77
|
+
return ((0, jsx_runtime_1.jsx)(Analytic_1.default, { campaignId: campaignId, subCampaigns: subCampaigns, startDate: time.startDate, endDate: time.endDate, domains: data, campaignName: campaignName, fullPlaces: fullPlaces }));
|
|
49
78
|
case exports.tabs.EVENT:
|
|
50
79
|
return ((0, jsx_runtime_1.jsx)(Event_1.default, { campaignId: campaignId, startDate: time.startDate, endDate: time.endDate, subCampaigns: subCampaigns, domains: data }));
|
|
51
80
|
case exports.tabs.CUSTOMER:
|
|
@@ -54,33 +83,6 @@ function TabStatisticsContainer() {
|
|
|
54
83
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
|
55
84
|
}
|
|
56
85
|
};
|
|
57
|
-
var _c = (0, Hooks_1.useGetData)([], function () {
|
|
58
|
-
return client.domainsGetAll ? client === null || client === void 0 ? void 0 : client.domainsGetAll().then(function (res) {
|
|
59
|
-
var campaignDomains = [];
|
|
60
|
-
subCampaigns.forEach(function (s) {
|
|
61
|
-
var _a;
|
|
62
|
-
(_a = s === null || s === void 0 ? void 0 : s.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
|
|
63
|
-
var _a;
|
|
64
|
-
(_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.forEach(function (p) {
|
|
65
|
-
var _a;
|
|
66
|
-
var idx = campaignDomains.findIndex(function (c) { return c.domainId === p.domainId; });
|
|
67
|
-
if (idx > -1) {
|
|
68
|
-
campaignDomains[idx].places.push(p);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
var domainName = (_a = res.find(function (d) { return d.domainId === p.domainId; })) === null || _a === void 0 ? void 0 : _a.name;
|
|
72
|
-
campaignDomains.push({
|
|
73
|
-
domainId: p.domainId,
|
|
74
|
-
domainName: domainName,
|
|
75
|
-
places: [p],
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
return campaignDomains;
|
|
82
|
-
}) : Promise.resolve([]);
|
|
83
|
-
}), isLoading = _c.isLoading, data = _c.data;
|
|
84
86
|
var handleChangeTab = function (newValue) {
|
|
85
87
|
setTabIndex(newValue);
|
|
86
88
|
};
|
|
@@ -73,13 +73,14 @@ var CreateOrEdit = function () {
|
|
|
73
73
|
var _e = (0, recoil_1.useRecoilState)(Recoils_1.confirmExitState), confirmExit = _e[0], setConfirmExit = _e[1];
|
|
74
74
|
var readyForSubmit = (0, recoil_1.useRecoilValue)(Recoils_1.readyForSubmitState);
|
|
75
75
|
var setCreate = (0, recoil_1.useSetRecoilState)(Recoils_1.isCreateState);
|
|
76
|
+
var _f = (0, react_1.useState)(), fullPlaces = _f[0], setFullPlaces = _f[1];
|
|
76
77
|
var tabValid = {
|
|
77
78
|
tabInfomationValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabInfomationValidState),
|
|
78
79
|
tabSubCampaignValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabSubCampaignValidState),
|
|
79
80
|
tabPartnerValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabPartnerValidState),
|
|
80
81
|
};
|
|
81
|
-
var
|
|
82
|
-
var
|
|
82
|
+
var _g = (0, react_1.useState)('0'), value = _g[0], setValue = _g[1];
|
|
83
|
+
var _h = (0, react_1.useState)(true), loading = _h[0], setLoading = _h[1];
|
|
83
84
|
var componentStatus = (0, react_1.useMemo)(function () {
|
|
84
85
|
return location.pathname.includes(Constant_1.Constants.CAMPAIGN_DETAIL) &&
|
|
85
86
|
!!campaignId
|
|
@@ -89,16 +90,20 @@ var CreateOrEdit = function () {
|
|
|
89
90
|
: Constant_1.Constants.CAMPAIGN_CREATE;
|
|
90
91
|
}, [location.pathname, campaignId]);
|
|
91
92
|
(0, react_1.useEffect)(function () {
|
|
92
|
-
if (!service.attributesGetByObjectTypeCode &&
|
|
93
|
-
|
|
93
|
+
if (!service.attributesGetByObjectTypeCode &&
|
|
94
|
+
!campaignData.campaignAttributes.length) {
|
|
95
|
+
setCampaignData(function (prev) {
|
|
96
|
+
return (__assign(__assign({}, prev), { campaignAttributes: [''] }));
|
|
97
|
+
});
|
|
94
98
|
}
|
|
95
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
96
|
-
}, [
|
|
99
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
100
|
+
}, [campaignData.campaignAttributes]);
|
|
97
101
|
(0, react_1.useEffect)(function () {
|
|
98
102
|
setLoading(true);
|
|
99
103
|
Promise.all([getCampaignData(), getPage()]).finally(function () {
|
|
100
104
|
setLoading(false);
|
|
101
105
|
});
|
|
106
|
+
service.administrativeUnitsGet().then(setFullPlaces);
|
|
102
107
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
103
108
|
}, []);
|
|
104
109
|
(0, react_1.useEffect)(function () {
|
|
@@ -109,7 +114,9 @@ var CreateOrEdit = function () {
|
|
|
109
114
|
.directoriesGetByObjectTypeCode(Enum_1.DirectoryRoot.Campaign)
|
|
110
115
|
.then(setDirectories);
|
|
111
116
|
if (service.attributesGetByObjectTypeCode) {
|
|
112
|
-
service
|
|
117
|
+
service
|
|
118
|
+
.attributesGetByObjectTypeCode(Enum_1.DirectoryRoot.Campaign)
|
|
119
|
+
.then(setAttributes);
|
|
113
120
|
}
|
|
114
121
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
115
122
|
}, []);
|
|
@@ -135,7 +142,7 @@ var CreateOrEdit = function () {
|
|
|
135
142
|
{
|
|
136
143
|
label: t('Campaign.Statistic'),
|
|
137
144
|
isShow: componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL,
|
|
138
|
-
component: ((0, jsx_runtime_1.jsx)(TabStatistic_1.default, __assign({ campaignId: campaignData.campaign.id, subCampaigns: campaignData.campaignGroups }, otherProps, { services: service }))),
|
|
145
|
+
component: ((0, jsx_runtime_1.jsx)(TabStatistic_1.default, __assign({ campaignId: campaignData.campaign.id, campaignName: campaignData.campaign.name, subCampaigns: campaignData.campaignGroups, fullPlaces: fullPlaces }, otherProps, { services: service }))),
|
|
139
146
|
},
|
|
140
147
|
{
|
|
141
148
|
label: t('Campaign.Partner'),
|
|
@@ -153,7 +160,10 @@ var CreateOrEdit = function () {
|
|
|
153
160
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
154
161
|
[t, componentStatus, Constant_1.Constants, campaignData]);
|
|
155
162
|
var handleChangeTab = function (_event, newValue) {
|
|
156
|
-
navigate((0, Router_1.generatePath)(matchPath, {
|
|
163
|
+
navigate((0, Router_1.generatePath)(matchPath, {
|
|
164
|
+
campaignId: campaignId,
|
|
165
|
+
tabName: route[Number(newValue)],
|
|
166
|
+
}), { replace: true });
|
|
157
167
|
};
|
|
158
168
|
var getCampaignData = function () {
|
|
159
169
|
if (campaignId) {
|
|
@@ -189,7 +199,8 @@ var CreateOrEdit = function () {
|
|
|
189
199
|
campaignModel.campaignGroups.forEach(function (g) {
|
|
190
200
|
g.campaignGroup.ticket = Enum_1.CampaignTicket.INACTIVE;
|
|
191
201
|
if (!service.attributesGetByObjectTypeCode)
|
|
192
|
-
g.campaignGroup.billingUnit =
|
|
202
|
+
g.campaignGroup.billingUnit =
|
|
203
|
+
Enum_2.AnalyticType.AUTHENTICATION;
|
|
193
204
|
});
|
|
194
205
|
}
|
|
195
206
|
setCampaignData(campaignModel);
|
|
@@ -234,7 +245,9 @@ var CreateOrEdit = function () {
|
|
|
234
245
|
fontSize: '0.875rem',
|
|
235
246
|
}, children: tab.label }), error: (tab === null || tab === void 0 ? void 0 : tab.valid)
|
|
236
247
|
? !tabValid[tab === null || tab === void 0 ? void 0 : tab.valid]
|
|
237
|
-
: undefined, errContent: (0, jsx_runtime_1.jsx)("span", { style: {
|
|
248
|
+
: undefined, errContent: (0, jsx_runtime_1.jsx)("span", { style: {
|
|
249
|
+
marginLeft: '-5px',
|
|
250
|
+
}, children: "*" }) }) }, idx)); }) }) }), tabsList.map(function (tab, idx) { return ((0, jsx_runtime_1.jsx)(lab_1.TabPanel, { sx: { padding: '0' }, value: String(idx), children: tab.component }, idx)); })] }) })) }) }));
|
|
238
251
|
};
|
|
239
252
|
// eslint-disable-next-line import/no-anonymous-default-export
|
|
240
253
|
exports.default = (0, Wrapper_1.default)(CreateOrEdit, { component: recoil_1.RecoilRoot });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VERIFIED_STATUS = exports.VALID_PROCESS_CODE = exports.TrackingType = exports.PathType = exports.FileTypeCode = exports.PageCode = void 0;
|
|
3
|
+
exports.AdministrativeUnitType = exports.VERIFIED_STATUS = exports.VALID_PROCESS_CODE = exports.TrackingType = exports.PathType = exports.FileTypeCode = exports.PageCode = void 0;
|
|
4
4
|
var PageCode;
|
|
5
5
|
(function (PageCode) {
|
|
6
6
|
PageCode[PageCode["Wlc"] = 0] = "Wlc";
|
|
@@ -36,3 +36,9 @@ var VERIFIED_STATUS;
|
|
|
36
36
|
VERIFIED_STATUS[VERIFIED_STATUS["NOT_VERIFIED"] = 0] = "NOT_VERIFIED";
|
|
37
37
|
VERIFIED_STATUS[VERIFIED_STATUS["VERIFIED_ERROR"] = 1] = "VERIFIED_ERROR";
|
|
38
38
|
})(VERIFIED_STATUS || (exports.VERIFIED_STATUS = VERIFIED_STATUS = {}));
|
|
39
|
+
var AdministrativeUnitType;
|
|
40
|
+
(function (AdministrativeUnitType) {
|
|
41
|
+
AdministrativeUnitType[AdministrativeUnitType["Province"] = 0] = "Province";
|
|
42
|
+
AdministrativeUnitType[AdministrativeUnitType["District"] = 1] = "District";
|
|
43
|
+
AdministrativeUnitType[AdministrativeUnitType["Commune"] = 2] = "Commune";
|
|
44
|
+
})(AdministrativeUnitType || (exports.AdministrativeUnitType = AdministrativeUnitType = {}));
|
package/lib/Utils/Helpers.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare enum TIMELINE_TYPE {
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function getCookie(name: string): string | undefined;
|
|
17
17
|
export declare function dateToString(date: moment.MomentInput): string;
|
|
18
|
-
export declare function formatNumber
|
|
18
|
+
export declare function formatNumber<T = number | bigint | string | undefined>(num: T): string;
|
|
19
19
|
export declare function getQueryVariable(variable: string): string;
|
|
20
20
|
export declare function displayLongString(str: string, maxLength: number): string;
|
|
21
21
|
export declare function generateUUID(): string;
|
package/lib/Utils/Helpers.js
CHANGED
|
@@ -78,6 +78,8 @@ function dateToString(date) {
|
|
|
78
78
|
}
|
|
79
79
|
exports.dateToString = dateToString;
|
|
80
80
|
function formatNumber(num) {
|
|
81
|
+
if (String(num).includes(','))
|
|
82
|
+
return num;
|
|
81
83
|
var value = Number(Number(num).toFixed(2));
|
|
82
84
|
if (value || value === 0) {
|
|
83
85
|
return new Intl.NumberFormat(i18n_1.default.language === 'vi' ? 'vi-VN' : 'en-US').format(value);
|
|
@@ -121,6 +121,16 @@
|
|
|
121
121
|
"RequestHasApprove": "Your request have approved",
|
|
122
122
|
"Advance": "Advance",
|
|
123
123
|
"Default": "Default",
|
|
124
|
+
"CampaignName": "Campaign’s Name",
|
|
125
|
+
"Channel": "Channel",
|
|
126
|
+
"DateGenerated": "Date/Time Generated",
|
|
127
|
+
"Timezone": "Report Timezone",
|
|
128
|
+
"SubCampaign": "Sub Campaign",
|
|
129
|
+
"Date": "Date",
|
|
130
|
+
"Location": "Location",
|
|
131
|
+
"CityProvince": "City/Province",
|
|
132
|
+
"District": "District",
|
|
133
|
+
"GeneralData": "General",
|
|
124
134
|
"Events": "Events"
|
|
125
135
|
},
|
|
126
136
|
"User": {
|
|
@@ -475,6 +485,7 @@
|
|
|
475
485
|
"Export": "Export total",
|
|
476
486
|
"Domain": "Export By Domain",
|
|
477
487
|
"Location": "Export By Location",
|
|
488
|
+
"Ad": "Export By Ad",
|
|
478
489
|
"LocationGroup": "Export By Sub Campaign"
|
|
479
490
|
},
|
|
480
491
|
"Status": {
|
|
@@ -126,6 +126,16 @@
|
|
|
126
126
|
"RequestHasApprove": "Yêu cầu đã được thay đổi",
|
|
127
127
|
"Advance": "Nâng cao",
|
|
128
128
|
"Default": "Mặc định",
|
|
129
|
+
"CampaignName": "Tên chiến dịch",
|
|
130
|
+
"Channel": "Kênh",
|
|
131
|
+
"DateGenerated": "Thời gian lập báo cáo",
|
|
132
|
+
"Timezone": "Múi giờ",
|
|
133
|
+
"SubCampaign": "Chiến dịch con",
|
|
134
|
+
"Date": "Thời gian",
|
|
135
|
+
"Location": "Địa điểm",
|
|
136
|
+
"CityProvince": "Tỉnh/Thành phố",
|
|
137
|
+
"District": "Quận/Huyện",
|
|
138
|
+
"GeneralData": "Dữ liệu tổng",
|
|
129
139
|
"Events": "Sự kiện"
|
|
130
140
|
},
|
|
131
141
|
"InvalidMessage": {
|
|
@@ -459,7 +469,8 @@
|
|
|
459
469
|
"Export": "Xuất dữ liệu tổng",
|
|
460
470
|
"Domain": "Xuất theo Domain",
|
|
461
471
|
"Location": "Xuất theo địa điểm",
|
|
462
|
-
"LocationGroup": "Xuất theo chiến dịch con"
|
|
472
|
+
"LocationGroup": "Xuất theo chiến dịch con",
|
|
473
|
+
"Ad": "Xuất theo Ad"
|
|
463
474
|
},
|
|
464
475
|
"Status": {
|
|
465
476
|
"Title": "Trạng thái",
|