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.
@@ -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
- export declare function convertToExportDataGroupBy(data: any, objects: any, timelineType: any, groupBy: any): {
6
- columns: any[];
7
- data: any;
8
- }[];
9
- export declare function convertToExportData(data: DataObject[], places: any, timelineType: any): {
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 Enum_2 = require("../../../../../ACM-AXN/Common/Enum");
55
- function convertToExportDataGroupBy(data, objects, timelineType, groupBy) {
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
- 'Time',
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
- ].map(function (item) {
80
- // eslint-disable-next-line eqeqeq
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
- var hasSpot = data.some(function (x) { return x.isSPot; });
108
+ addHeaderExcel(result, campaignName);
101
109
  result.push({
102
110
  columns: [
103
- 'Place',
104
- 'Time',
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
- ].map(function (item) {
109
- // eslint-disable-next-line eqeqeq
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: dataGroupByTimeline(place ? place.name : key, value, timelineType)
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, (__assign(__assign({}, x), Object.assign.apply(Object, __spreadArray(__spreadArray([{}], Object.values(Enum_1.BaseEvent).map(function (v) {
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: (isShouldHeader
166
+ columns: isShouldHeader
159
167
  ? [
160
- 'Sub-campaign',
168
+ i18n_1.default.t('Common.SubCampaign'),
161
169
  'Ad',
162
- 'Place',
163
- 'Time',
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("Campaign.Engagement"),
175
+ i18n_1.default.t('Campaign.Engagement') + '(Spot)',
166
176
  spotTitle,
167
177
  ]
168
- : Array(7).fill('')).map(function (item) {
169
- if (item === spotTitle && !hasSpot) {
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: dataGroupByTimeline(place ? (place === null || place === void 0 ? void 0 : place.name) || place.placeId : key, value, timelineType).map(function (d) {
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) { return data.map(function (x, index) {
242
- var _a;
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
- return (_a = {},
248
- _a[v] = 0,
249
- _a);
250
- }), false), x.analyticEventSummaries.map(function (y) {
251
- var _a;
252
- return (_a = {},
253
- _a[y.eventLabel] = y.total,
254
- _a);
255
- }), false))), { billingUnit: campaignGroup.billingUnit, isSPot: campaignGroup.billingUnit === Enum_2.AnalyticType.AUTHENTICATION && ((_a = ads.find(function (ad) { return ad.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) === Enum_1.AdType.VIDEO });
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 ? adPlaces.filter(function (p) { return placeIds.includes(p.placeId); }) : adPlaces, 'placeId').forEach(function (place) {
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
- && d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id)
275
- && d.campaignAdId === (ad === null || ad === void 0 ? void 0 : ad.id);
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 (eventLabel === Enum_1.BaseEvent[sub.campaignGroup.billingUnit]);
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 + Number((d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] + d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) || 0);
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]] || 0);
379
+ return sum + Number((_b = d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]]) !== null && _b !== void 0 ? _b : 0);
319
380
  }, 0);
320
- var arr = [place, dateString, impression];
321
- if (hasSpot) {
322
- arr.push(0, authen);
323
- }
324
- else {
325
- arr.push(authen, 0);
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 arr;
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 impr = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
331
- var authen = data.reduce(function (sum, d) {
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 + d[Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]] + d[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]];
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 = [place, i18n_1.default.t('Schedule.Total'), impr];
338
- if (hasSpot) {
339
- totalArr.push(0, authen);
340
- }
341
- else {
342
- totalArr.push(authen, 0);
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.map(function (d) {
346
- if (!hasSpot) {
347
- d.pop();
348
- d.push('');
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.dataGroupByTimeline = dataGroupByTimeline;
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) { return sub.ads.some(function (ad) { return ad.type === Enum_1.AdType.VIDEO; }); }),
385
- hasEg: subCampaigns.some(function (sub) { return sub.ads.some(function (ad) {
386
- return (ad.type === Enum_1.AdType.VIDEO && sub.campaignGroup.billingUnit !== Enum_2.AnalyticType.AUTHENTICATION) ||
387
- ad.type !== Enum_1.AdType.VIDEO;
388
- }) && [Enum_2.AnalyticType.CLICK, Enum_2.AnalyticType.AUTHENTICATION].includes(sub.campaignGroup.billingUnit); }),
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 = {}, _a[x] = { total: 0, chartData: [] }, _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) === Enum_1.AdType.VIDEO;
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) ? isSpot ? 'Spot' : 'Engagement' : 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['Spot'] = 'Campaign.Spot',
430
- _a['Engagement'] = 'Campaign.Engagement',
566
+ _a.Spot = 'Campaign.Spot',
567
+ _a.Engagement = 'Campaign.Engagement',
431
568
  _a);
432
569
  var analyticInfo = campaignAnalyticInfo(campaignGroups);
433
- return Object.entries(convertData).map(function (_a, index) {
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).groupBy('x').map(function (value, key) { return ({ x: key, y: (0, lodash_1.sumBy)(value, 'y') }); }).value();
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
- }).filter(Boolean);
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;