awing-library 2.1.73 → 2.1.74
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 +266 -124
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
- package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +70 -52
- 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/TabSubCampaign/SubCampaignDetail.js +5 -7
- 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/AWING/Chart/BarLineComponent.js +1 -0
- package/lib/AWING/Chart/PieComponent.js +0 -1
- package/lib/AWING/GroupTable/GroupTable.js +2 -2
- package/lib/AWING/GroupTable/component.d.ts +1 -0
- package/lib/AWING/GroupTable/component.js +2 -2
- package/lib/Utils/Helpers.d.ts +1 -0
- package/lib/Utils/Helpers.js +17 -8
- 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): 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,36 @@ 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) {
|
|
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
|
+
};
|
|
75
|
+
function convertToExportDataGroupBy(data, objects, timelineType, groupBy, campaignName) {
|
|
56
76
|
var result = [];
|
|
57
|
-
var hasSpot = data.some(function (x) { return x.isSPot; });
|
|
58
77
|
var spotTitle = i18n_1.default.t('Common.Spot');
|
|
78
|
+
addHeaderExcel(result, campaignName);
|
|
59
79
|
var exportData = objects
|
|
60
80
|
.map(function (object, key) {
|
|
61
81
|
var placeIds = object.places.map(function (plc) { return plc.placeId; });
|
|
@@ -72,55 +92,42 @@ function convertToExportDataGroupBy(data, objects, timelineType, groupBy) {
|
|
|
72
92
|
result.push({
|
|
73
93
|
columns: [
|
|
74
94
|
groupBy,
|
|
75
|
-
'
|
|
95
|
+
i18n_1.default.t('Common.Date'),
|
|
76
96
|
i18n_1.default.t('Common.Impression'),
|
|
77
|
-
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
|
-
}),
|
|
97
|
+
i18n_1.default.t('Common.Engagement') + '(Spot)',
|
|
98
|
+
spotTitle,
|
|
99
|
+
],
|
|
100
|
+
data: exportData,
|
|
93
101
|
});
|
|
94
102
|
return result;
|
|
95
103
|
}
|
|
96
104
|
exports.convertToExportDataGroupBy = convertToExportDataGroupBy;
|
|
97
|
-
function convertToExportData(data, places, timelineType) {
|
|
105
|
+
function convertToExportData(data, places, timelineType, campaignName, fullPlaces) {
|
|
98
106
|
var result = [];
|
|
99
107
|
var spotTitle = i18n_1.default.t('Common.Spot');
|
|
100
|
-
|
|
108
|
+
addHeaderExcel(result, campaignName);
|
|
101
109
|
result.push({
|
|
102
110
|
columns: [
|
|
103
|
-
'
|
|
104
|
-
'
|
|
111
|
+
i18n_1.default.t('Common.Location'),
|
|
112
|
+
i18n_1.default.t('Common.CityProvince'),
|
|
113
|
+
i18n_1.default.t('Common.District'),
|
|
114
|
+
i18n_1.default.t('Common.Date'),
|
|
105
115
|
i18n_1.default.t('Common.Impression'),
|
|
106
|
-
i18n_1.default.t('Campaign.Engagement'),
|
|
116
|
+
i18n_1.default.t('Campaign.Engagement') + '(Spot)',
|
|
107
117
|
spotTitle,
|
|
108
|
-
]
|
|
109
|
-
|
|
110
|
-
if (item == spotTitle && !hasSpot) {
|
|
111
|
-
return '';
|
|
112
|
-
}
|
|
113
|
-
return item;
|
|
114
|
-
}),
|
|
115
|
-
data: dataGroupByTimeline('All', data, timelineType),
|
|
118
|
+
],
|
|
119
|
+
data: dataGroupByTimelineAndPlaces('All', 'All', 'All', data, timelineType),
|
|
116
120
|
});
|
|
117
121
|
Array.prototype.push.apply(result, (0, lodash_1.chain)(data)
|
|
118
122
|
.groupBy('placeId')
|
|
119
123
|
.map(function (value, key) {
|
|
124
|
+
var _a, _b;
|
|
120
125
|
var place = places.find(function (x) { return x.placeId === key; });
|
|
126
|
+
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;
|
|
127
|
+
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
128
|
var placeData = {
|
|
122
129
|
columns: Array(7).fill(''),
|
|
123
|
-
data:
|
|
130
|
+
data: dataGroupByTimelineAndPlaces(place ? place.name : key, province !== null && province !== void 0 ? province : '', district !== null && district !== void 0 ? district : '', value, timelineType),
|
|
124
131
|
};
|
|
125
132
|
return placeData;
|
|
126
133
|
})
|
|
@@ -128,10 +135,11 @@ function convertToExportData(data, places, timelineType) {
|
|
|
128
135
|
return result;
|
|
129
136
|
}
|
|
130
137
|
exports.convertToExportData = convertToExportData;
|
|
131
|
-
function convertToExport(subCampaigns, data, timelineType, places) {
|
|
138
|
+
function convertToExport(subCampaigns, data, timelineType, places, campaignName, fullPlaces) {
|
|
132
139
|
var result = [];
|
|
133
140
|
var isShouldHeader = true;
|
|
134
141
|
var spotTitle = i18n_1.default.t('Common.Spot');
|
|
142
|
+
addHeaderExcel(result, campaignName);
|
|
135
143
|
subCampaigns.forEach(function (sub) {
|
|
136
144
|
var _a;
|
|
137
145
|
(_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
|
|
@@ -143,7 +151,7 @@ function convertToExport(subCampaigns, data, timelineType, places) {
|
|
|
143
151
|
d.campaignAdId === ad.id);
|
|
144
152
|
})
|
|
145
153
|
// eslint-disable-next-line no-sequences
|
|
146
|
-
.map(function (x) { return (hasSpot = hasSpot || x.isSPot,
|
|
154
|
+
.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
155
|
var _a;
|
|
148
156
|
return (_a = {},
|
|
149
157
|
_a[v] = 0,
|
|
@@ -153,51 +161,39 @@ function convertToExport(subCampaigns, data, timelineType, places) {
|
|
|
153
161
|
return (_a = {},
|
|
154
162
|
_a[y.eventLabel] = y.total,
|
|
155
163
|
_a);
|
|
156
|
-
}), false))))
|
|
164
|
+
}), false)))); });
|
|
157
165
|
result.push({
|
|
158
|
-
columns:
|
|
166
|
+
columns: isShouldHeader
|
|
159
167
|
? [
|
|
160
|
-
'
|
|
168
|
+
i18n_1.default.t('Common.SubCampaign'),
|
|
161
169
|
'Ad',
|
|
162
|
-
'
|
|
163
|
-
'
|
|
170
|
+
i18n_1.default.t('Common.Location'),
|
|
171
|
+
i18n_1.default.t('Common.CityProvince'),
|
|
172
|
+
i18n_1.default.t('Common.District'),
|
|
173
|
+
i18n_1.default.t('Common.Date'),
|
|
164
174
|
i18n_1.default.t('Common.Impression'),
|
|
165
|
-
i18n_1.default.t(
|
|
175
|
+
i18n_1.default.t('Campaign.Engagement') + '(Spot)',
|
|
166
176
|
spotTitle,
|
|
167
177
|
]
|
|
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
|
-
}),
|
|
178
|
+
: Array(7).fill(''),
|
|
179
|
+
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
180
|
});
|
|
182
181
|
isShouldHeader = false;
|
|
183
182
|
Array.prototype.push.apply(result, (0, lodash_1.chain)(adData)
|
|
184
183
|
.groupBy('placeId')
|
|
185
184
|
.map(function (value, key) {
|
|
185
|
+
var _a, _b;
|
|
186
186
|
var place = places.find(function (x) { return x.placeId === key; });
|
|
187
|
+
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;
|
|
188
|
+
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
189
|
var placeData = {
|
|
188
190
|
columns: Array(7).fill(''),
|
|
189
|
-
data:
|
|
191
|
+
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
192
|
var _a;
|
|
191
193
|
return __spreadArray([
|
|
192
194
|
(_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.name,
|
|
193
195
|
ad === null || ad === void 0 ? void 0 : ad.name
|
|
194
196
|
], d, true);
|
|
195
|
-
}).map(function (d) {
|
|
196
|
-
if (!hasSpot) {
|
|
197
|
-
d.pop();
|
|
198
|
-
d.push('');
|
|
199
|
-
}
|
|
200
|
-
return d;
|
|
201
197
|
}),
|
|
202
198
|
};
|
|
203
199
|
return placeData;
|
|
@@ -208,6 +204,63 @@ function convertToExport(subCampaigns, data, timelineType, places) {
|
|
|
208
204
|
return result;
|
|
209
205
|
}
|
|
210
206
|
exports.convertToExport = convertToExport;
|
|
207
|
+
function convertToExportByAd(subCampaigns, data, timelineType, campaignName) {
|
|
208
|
+
var result = [];
|
|
209
|
+
var isShouldHeader = true;
|
|
210
|
+
var spotTitle = i18n_1.default.t('Common.Spot');
|
|
211
|
+
addHeaderExcel(result, campaignName);
|
|
212
|
+
subCampaigns.forEach(function (sub) {
|
|
213
|
+
var _a;
|
|
214
|
+
(_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
|
|
215
|
+
var hasSpot = false;
|
|
216
|
+
var adData = data
|
|
217
|
+
.filter(function (d) {
|
|
218
|
+
var _a;
|
|
219
|
+
return (d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
220
|
+
d.campaignAdId === ad.id);
|
|
221
|
+
})
|
|
222
|
+
// eslint-disable-next-line no-sequences
|
|
223
|
+
.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) {
|
|
224
|
+
var _a;
|
|
225
|
+
return (_a = {},
|
|
226
|
+
_a[v] = 0,
|
|
227
|
+
_a);
|
|
228
|
+
}), false), x.analyticEventSummaries.map(function (y) {
|
|
229
|
+
var _a;
|
|
230
|
+
return (_a = {},
|
|
231
|
+
_a[y.eventLabel] = y.total,
|
|
232
|
+
_a);
|
|
233
|
+
}), false)))); });
|
|
234
|
+
result.push({
|
|
235
|
+
columns: isShouldHeader
|
|
236
|
+
? [
|
|
237
|
+
'Ad',
|
|
238
|
+
i18n_1.default.t('Common.Date'),
|
|
239
|
+
i18n_1.default.t('Common.Impression'),
|
|
240
|
+
i18n_1.default.t('Campaign.Engagement') + '(Spot)',
|
|
241
|
+
spotTitle,
|
|
242
|
+
]
|
|
243
|
+
: Array(7).fill(''),
|
|
244
|
+
data: dataGroupByAd(adData, timelineType).map(function (d) { return __spreadArray([
|
|
245
|
+
ad === null || ad === void 0 ? void 0 : ad.name
|
|
246
|
+
], d, true); }),
|
|
247
|
+
});
|
|
248
|
+
isShouldHeader = false;
|
|
249
|
+
Array.prototype.push.apply(result, (0, lodash_1.chain)(adData)
|
|
250
|
+
.groupBy('placeId')
|
|
251
|
+
.map(function (value, key) {
|
|
252
|
+
var placeData = {
|
|
253
|
+
columns: Array(7).fill(''),
|
|
254
|
+
data: dataGroupByAd(value, timelineType).map(function (d) { return __spreadArray([ad === null || ad === void 0 ? void 0 : ad.name], d, true); }),
|
|
255
|
+
};
|
|
256
|
+
return placeData;
|
|
257
|
+
})
|
|
258
|
+
.value());
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
return result;
|
|
262
|
+
}
|
|
263
|
+
exports.convertToExportByAd = convertToExportByAd;
|
|
211
264
|
function placesToDomains(places, domains) {
|
|
212
265
|
var _a, _b;
|
|
213
266
|
if (domains === void 0) { domains = []; }
|
|
@@ -238,22 +291,26 @@ function placesToDomains(places, domains) {
|
|
|
238
291
|
return groupDomain;
|
|
239
292
|
}
|
|
240
293
|
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) {
|
|
294
|
+
var markBillingType = function (subCampaigns, data) {
|
|
295
|
+
return data.map(function (x, index) {
|
|
246
296
|
var _a;
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
297
|
+
// eslint-disable-next-line eqeqeq
|
|
298
|
+
var _b = subCampaigns.find(function (c) { return c.campaignGroup.id == x.campaignGroupId; }), campaignGroup = _b.campaignGroup, ads = _b.ads;
|
|
299
|
+
return __assign(__assign(__assign({}, x), Object.assign.apply(Object, __spreadArray(__spreadArray([{}], Object.values(Enum_1.BaseEvent).map(function (v) {
|
|
300
|
+
var _a;
|
|
301
|
+
return (_a = {},
|
|
302
|
+
_a[v] = 0,
|
|
303
|
+
_a);
|
|
304
|
+
}), false), x.analyticEventSummaries.map(function (y) {
|
|
305
|
+
var _a;
|
|
306
|
+
return (_a = {},
|
|
307
|
+
_a[y.eventLabel] = y.total,
|
|
308
|
+
_a);
|
|
309
|
+
}), false))), { billingUnit: campaignGroup.billingUnit, isSPot: campaignGroup.billingUnit === Enum_2.AnalyticType.AUTHENTICATION &&
|
|
310
|
+
((_a = ads.find(function (ad) { return ad.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) ===
|
|
311
|
+
Enum_1.AdType.VIDEO });
|
|
312
|
+
});
|
|
313
|
+
};
|
|
257
314
|
exports.markBillingType = markBillingType;
|
|
258
315
|
function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces) {
|
|
259
316
|
var placeIds = selectedPlaces.map(function (p) { return p.placeId; });
|
|
@@ -265,20 +322,23 @@ function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces
|
|
|
265
322
|
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
323
|
(0, lodash_1.uniqBy)(
|
|
267
324
|
// adPlaces.filter((p) => placeIds.includes(p.placeId)),
|
|
268
|
-
placeIds.length
|
|
325
|
+
placeIds.length
|
|
326
|
+
? adPlaces.filter(function (p) { return placeIds.includes(p.placeId); })
|
|
327
|
+
: adPlaces, 'placeId').forEach(function (place) {
|
|
269
328
|
var domain = selectedDomains.find(function (s) { return s.domainId === (place === null || place === void 0 ? void 0 : place.domainId); });
|
|
270
329
|
var totalClick = data
|
|
271
330
|
.filter(function (d) {
|
|
272
331
|
var _a;
|
|
273
|
-
return d.placeId === place.placeId
|
|
274
|
-
|
|
275
|
-
|
|
332
|
+
return d.placeId === place.placeId &&
|
|
333
|
+
d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
334
|
+
d.campaignAdId === (ad === null || ad === void 0 ? void 0 : ad.id);
|
|
276
335
|
})
|
|
277
336
|
.reduce(function (sum, d) {
|
|
278
337
|
var _a;
|
|
279
338
|
var event = (_a = d.analyticEventSummaries) === null || _a === void 0 ? void 0 : _a.find(function (_a) {
|
|
280
339
|
var eventLabel = _a.eventLabel;
|
|
281
|
-
return
|
|
340
|
+
return eventLabel ===
|
|
341
|
+
Enum_1.BaseEvent[sub.campaignGroup.billingUnit];
|
|
282
342
|
});
|
|
283
343
|
return sum + ((event === null || event === void 0 ? void 0 : event.total) || 0);
|
|
284
344
|
}, 0);
|
|
@@ -302,55 +362,118 @@ function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces
|
|
|
302
362
|
}
|
|
303
363
|
exports.convertToShowDetail = convertToShowDetail;
|
|
304
364
|
function dataGroupByTimeline(place, data, timelineType) {
|
|
305
|
-
var hasSpot = data.some(function (x) { return x.isSPot; });
|
|
306
365
|
var result = (0, lodash_1.chain)(data)
|
|
307
366
|
.groupBy('timeline')
|
|
308
367
|
.map(function (value, key) {
|
|
309
368
|
var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
|
|
310
369
|
? 'DD/MM/YYYY'
|
|
311
370
|
: 'DD/MM/YYYY, H:mm');
|
|
312
|
-
// let impression = sumBy(value, BaseEvent[AnalyticType.VIEW])
|
|
313
371
|
var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
314
372
|
var authen = value.reduce(function (sum, d) {
|
|
373
|
+
var _a, _b;
|
|
315
374
|
if (d.isSPot) {
|
|
316
|
-
return sum +
|
|
375
|
+
return (sum +
|
|
376
|
+
Number((_a = d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
377
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _a !== void 0 ? _a : 0));
|
|
317
378
|
}
|
|
318
|
-
return sum + Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]
|
|
379
|
+
return sum + Number((_b = d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _b !== void 0 ? _b : 0);
|
|
319
380
|
}, 0);
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
381
|
+
return [place, dateString, impression, authen];
|
|
382
|
+
})
|
|
383
|
+
.value();
|
|
384
|
+
var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
385
|
+
var authenTotal = data.reduce(function (sum, d) {
|
|
386
|
+
var _a, _b;
|
|
387
|
+
if (d.isSPot) {
|
|
388
|
+
return ((_a = sum +
|
|
389
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
390
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _a !== void 0 ? _a : 0);
|
|
326
391
|
}
|
|
327
|
-
return
|
|
392
|
+
return (_b = sum + d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _b !== void 0 ? _b : 0;
|
|
393
|
+
}, 0);
|
|
394
|
+
var totalArr = [
|
|
395
|
+
place,
|
|
396
|
+
i18n_1.default.t('Schedule.Total'),
|
|
397
|
+
impressionTotal,
|
|
398
|
+
authenTotal,
|
|
399
|
+
];
|
|
400
|
+
result.push(totalArr);
|
|
401
|
+
return result;
|
|
402
|
+
}
|
|
403
|
+
exports.dataGroupByTimeline = dataGroupByTimeline;
|
|
404
|
+
function dataGroupByTimelineAndPlaces(place, province, district, data, timelineType) {
|
|
405
|
+
var result = (0, lodash_1.chain)(data)
|
|
406
|
+
.groupBy('timeline')
|
|
407
|
+
.map(function (value, key) {
|
|
408
|
+
var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
|
|
409
|
+
? 'DD/MM/YYYY'
|
|
410
|
+
: 'DD/MM/YYYY, H:mm');
|
|
411
|
+
var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
412
|
+
var authen = value.reduce(function (sum, d) {
|
|
413
|
+
if (d.isSPot) {
|
|
414
|
+
return (sum +
|
|
415
|
+
Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
416
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] || 0));
|
|
417
|
+
}
|
|
418
|
+
return sum + Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] || 0);
|
|
419
|
+
}, 0);
|
|
420
|
+
return [place, province, district, dateString, impression, authen];
|
|
328
421
|
})
|
|
329
422
|
.value();
|
|
330
|
-
var
|
|
331
|
-
var
|
|
423
|
+
var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
424
|
+
var authenTotal = data.reduce(function (sum, d) {
|
|
332
425
|
if (d.isSPot) {
|
|
333
|
-
return sum +
|
|
426
|
+
return (sum +
|
|
427
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
428
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]);
|
|
334
429
|
}
|
|
335
430
|
return sum + d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]];
|
|
336
431
|
}, 0);
|
|
337
|
-
var totalArr = [
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
432
|
+
var totalArr = [
|
|
433
|
+
place,
|
|
434
|
+
province,
|
|
435
|
+
district,
|
|
436
|
+
i18n_1.default.t('Schedule.Total'),
|
|
437
|
+
impressionTotal,
|
|
438
|
+
authenTotal,
|
|
439
|
+
];
|
|
344
440
|
result.push(totalArr);
|
|
345
|
-
return result
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
441
|
+
return result;
|
|
442
|
+
}
|
|
443
|
+
exports.dataGroupByTimelineAndPlaces = dataGroupByTimelineAndPlaces;
|
|
444
|
+
function dataGroupByAd(data, timelineType) {
|
|
445
|
+
var result = (0, lodash_1.chain)(data)
|
|
446
|
+
.groupBy('timeline')
|
|
447
|
+
.map(function (value, key) {
|
|
448
|
+
var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
|
|
449
|
+
? 'DD/MM/YYYY'
|
|
450
|
+
: 'DD/MM/YYYY, H:mm');
|
|
451
|
+
var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
452
|
+
var authen = value.reduce(function (sum, d) {
|
|
453
|
+
if (d.isSPot) {
|
|
454
|
+
return (sum +
|
|
455
|
+
Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
456
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] || 0));
|
|
457
|
+
}
|
|
458
|
+
return sum + Number(d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] || 0);
|
|
459
|
+
}, 0);
|
|
460
|
+
return [dateString, impression, authen];
|
|
461
|
+
})
|
|
462
|
+
.value();
|
|
463
|
+
var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
|
|
464
|
+
var authenTotal = data.reduce(function (sum, d) {
|
|
465
|
+
if (d.isSPot) {
|
|
466
|
+
return (sum +
|
|
467
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] +
|
|
468
|
+
d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]);
|
|
349
469
|
}
|
|
350
|
-
return d;
|
|
351
|
-
});
|
|
470
|
+
return sum + d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]];
|
|
471
|
+
}, 0);
|
|
472
|
+
var totalArr = [i18n_1.default.t('Schedule.Total'), impressionTotal, authenTotal];
|
|
473
|
+
result.push(totalArr);
|
|
474
|
+
return result;
|
|
352
475
|
}
|
|
353
|
-
exports.
|
|
476
|
+
exports.dataGroupByAd = dataGroupByAd;
|
|
354
477
|
function dataGroupByPlace(subCampaigns, ids) {
|
|
355
478
|
return (0, lodash_1.chain)(subCampaigns.filter(function (sub) {
|
|
356
479
|
var _a, _b, _c;
|
|
@@ -381,11 +504,18 @@ exports.dataGroupByPlace = dataGroupByPlace;
|
|
|
381
504
|
function campaignAnalyticInfo(subCampaigns) {
|
|
382
505
|
return {
|
|
383
506
|
analyticTypes: Array.from(new Set(subCampaigns.map(function (x) { return x.campaignGroup.billingUnit; }))),
|
|
384
|
-
hasSpot: subCampaigns.some(function (sub) {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
507
|
+
hasSpot: subCampaigns.some(function (sub) {
|
|
508
|
+
return sub.ads.some(function (ad) { return ad.type === Enum_1.AdType.VIDEO; });
|
|
509
|
+
}),
|
|
510
|
+
hasEg: subCampaigns.some(function (sub) {
|
|
511
|
+
return sub.ads.some(function (ad) {
|
|
512
|
+
return (ad.type === Enum_1.AdType.VIDEO &&
|
|
513
|
+
sub.campaignGroup.billingUnit !==
|
|
514
|
+
Enum_2.AnalyticType.AUTHENTICATION) ||
|
|
515
|
+
ad.type !== Enum_1.AdType.VIDEO;
|
|
516
|
+
}) &&
|
|
517
|
+
[Enum_2.AnalyticType.CLICK, Enum_2.AnalyticType.AUTHENTICATION].includes(sub.campaignGroup.billingUnit);
|
|
518
|
+
}),
|
|
389
519
|
};
|
|
390
520
|
}
|
|
391
521
|
exports.campaignAnalyticInfo = campaignAnalyticInfo;
|
|
@@ -394,7 +524,9 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
394
524
|
var timelineType = 'YYYYMMDD';
|
|
395
525
|
var convertData = Object.assign.apply(Object, __spreadArray([{}], [Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW], 'Spot', 'Engagement'].map(function (x) {
|
|
396
526
|
var _a;
|
|
397
|
-
return (_a = {},
|
|
527
|
+
return (_a = {},
|
|
528
|
+
_a[x] = { total: 0, chartData: [] },
|
|
529
|
+
_a);
|
|
398
530
|
}), false));
|
|
399
531
|
data.forEach(function (x) {
|
|
400
532
|
var _a;
|
|
@@ -405,7 +537,8 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
405
537
|
if (!subCampaign)
|
|
406
538
|
return;
|
|
407
539
|
var billingUnit = subCampaign.campaignGroup.billingUnit;
|
|
408
|
-
var isSpot = ((_a = subCampaign.ads.find(function (s) { return s.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) ===
|
|
540
|
+
var isSpot = ((_a = subCampaign.ads.find(function (s) { return s.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) ===
|
|
541
|
+
Enum_1.AdType.VIDEO;
|
|
409
542
|
var timeline = x.timeline.toString();
|
|
410
543
|
x.analyticEventSummaries.forEach(function (event) {
|
|
411
544
|
var _a;
|
|
@@ -413,7 +546,11 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
413
546
|
var objKey = [
|
|
414
547
|
Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION],
|
|
415
548
|
Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK],
|
|
416
|
-
].includes(event.eventLabel)
|
|
549
|
+
].includes(event.eventLabel)
|
|
550
|
+
? isSpot
|
|
551
|
+
? 'Spot'
|
|
552
|
+
: 'Engagement'
|
|
553
|
+
: event.eventLabel;
|
|
417
554
|
(_a = convertData[objKey]) === null || _a === void 0 ? void 0 : _a.chartData.push({
|
|
418
555
|
y: event.total,
|
|
419
556
|
x: timeline,
|
|
@@ -426,16 +563,20 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
426
563
|
});
|
|
427
564
|
var translate = (_a = {},
|
|
428
565
|
_a[Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]] = 'Common.Impression',
|
|
429
|
-
_a
|
|
430
|
-
_a
|
|
566
|
+
_a.Spot = 'Campaign.Spot',
|
|
567
|
+
_a.Engagement = 'Campaign.Engagement',
|
|
431
568
|
_a);
|
|
432
569
|
var analyticInfo = campaignAnalyticInfo(campaignGroups);
|
|
433
|
-
return Object.entries(convertData)
|
|
570
|
+
return Object.entries(convertData)
|
|
571
|
+
.map(function (_a, index) {
|
|
434
572
|
var key = _a[0], value = _a[1];
|
|
435
573
|
if ((key === 'Spot' && !analyticInfo.hasSpot) ||
|
|
436
574
|
(key === 'Engagement' && !analyticInfo.hasEg))
|
|
437
575
|
return false;
|
|
438
|
-
var data = (0, lodash_1.default)(value.chartData)
|
|
576
|
+
var data = (0, lodash_1.default)(value.chartData)
|
|
577
|
+
.groupBy('x')
|
|
578
|
+
.map(function (value, key) { return ({ x: key, y: (0, lodash_1.sumBy)(value, 'y') }); })
|
|
579
|
+
.value();
|
|
439
580
|
return {
|
|
440
581
|
label: "".concat(i18n_1.default.t(translate[key]), " ").concat((0, Helpers_1.roundDecimalNumber)(value.total)),
|
|
441
582
|
type: 'line',
|
|
@@ -445,7 +586,8 @@ var convertToChartData = function (data, campaignGroups, time) {
|
|
|
445
586
|
yAxisID: 'y',
|
|
446
587
|
variant: key,
|
|
447
588
|
};
|
|
448
|
-
})
|
|
589
|
+
})
|
|
590
|
+
.filter(Boolean);
|
|
449
591
|
};
|
|
450
592
|
exports.convertToChartData = convertToChartData;
|
|
451
593
|
function groupBy(array, key) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CampaignGroupModel } from '../../../../../ACM-AXN/Campaign/Types';
|
|
2
|
+
import { AdministrativeUnit } from '../Types';
|
|
2
3
|
export interface ICampaignAdGroup {
|
|
3
4
|
campaignId?: string;
|
|
4
5
|
campaignGroupId?: number | undefined;
|
|
@@ -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;
|