awing-library 2.1.129-beta → 2.1.131-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,14 +18,13 @@ export declare const markBillingType: (subCampaigns: CampaignGroupModel[], data:
18
18
  placeId?: string | undefined;
19
19
  domainId?: string | undefined;
20
20
  timeline?: number | undefined;
21
- analyticEventSummaries?: IAnalyticEventSummary[] | undefined;
21
+ analyticEventSummaries: IAnalyticEventSummary[];
22
22
  campaignGroupId?: number | undefined;
23
23
  campaignAdId?: number | undefined;
24
24
  }[];
25
25
  export declare function convertToShowDetail(subCampaigns: CampaignGroupModel[], data: IAnalyticCampaignSummary[], selectedDomains: any[], selectedPlaces: any[]): any[];
26
26
  export declare function dataGroupByTimeline(place: any, data: any, timelineType: any): any[][];
27
27
  export declare function dataGroupByPlace(subCampaigns: CampaignGroupModel[], ids: any): any[];
28
- export declare const sumEvent: (data: IAnalyticEventSummary[] | undefined, eventLabel: string) => number;
29
28
  export declare const convertToChartData: (data: IAnalyticCampaignSummary[], campaignGroups: CampaignGroupModel[]) => ({
30
29
  label: string;
31
30
  type: string;
@@ -46,7 +46,7 @@ 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.sumEvent = exports.dataGroupByPlace = exports.dataGroupByTimeline = exports.convertToShowDetail = exports.markBillingType = exports.placesToDomains = exports.convertToExport = exports.convertToExportData = exports.convertToExportDataGroupBy = void 0;
49
+ exports.groupBy = exports.convertToChartData = exports.dataGroupByPlace = exports.dataGroupByTimeline = exports.convertToShowDetail = exports.markBillingType = exports.placesToDomains = exports.convertToExport = exports.convertToExportData = exports.convertToExportDataGroupBy = void 0;
50
50
  var Enum_1 = require("../../../../../ACM-AXN/Campaign/Enum");
51
51
  var Helpers_1 = require("../../../../../Utils/Helpers");
52
52
  var lodash_1 = __importStar(require("lodash"));
@@ -128,7 +128,7 @@ function convertToExport(subCampaigns, data, timelineType, places) {
128
128
  'Place',
129
129
  'Time',
130
130
  i18n_1.default.t('Common.Impression'),
131
- 'Engagement / Spot',
131
+ i18n_1.default.t("Campaign.EngagementPerSpot"),
132
132
  i18n_1.default.t('Common.FinalClick'),
133
133
  ]
134
134
  : Array(7).fill(''),
@@ -198,7 +198,6 @@ function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces
198
198
  var result = [];
199
199
  subCampaigns.forEach(function (sub) {
200
200
  var _a;
201
- console.log("sub", sub);
202
201
  (_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
203
202
  var _a, _b;
204
203
  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 })); })) || [])) || [];
@@ -217,7 +216,7 @@ function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces
217
216
  var _a;
218
217
  var event = (_a = d.analyticEventSummaries) === null || _a === void 0 ? void 0 : _a.find(function (_a) {
219
218
  var eventLabel = _a.eventLabel;
220
- return eventLabel === Enum_1.BaseEvent[sub.campaignGroup.billingUnit];
219
+ return (eventLabel === Enum_1.BaseEvent[sub.campaignGroup.billingUnit]);
221
220
  });
222
221
  return sum + ((event === null || event === void 0 ? void 0 : event.total) || 0);
223
222
  }, 0);
@@ -297,11 +296,6 @@ function dataGroupByPlace(subCampaigns, ids) {
297
296
  .value();
298
297
  }
299
298
  exports.dataGroupByPlace = dataGroupByPlace;
300
- var sumEvent = function (data, eventLabel) {
301
- if (data === void 0) { data = []; }
302
- return (0, lodash_1.sumBy)(data, function (y) { return (y.total && y.eventLabel === eventLabel) ? y.total : 0; });
303
- };
304
- exports.sumEvent = sumEvent;
305
299
  var convertToChartData = function (data, campaignGroups) {
306
300
  var _a;
307
301
  var convertData = Object.assign.apply(Object, __spreadArray([{}], [Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW], Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK], 'Spot', 'Engagement'].map(function (x) {
@@ -310,12 +304,16 @@ var convertToChartData = function (data, campaignGroups) {
310
304
  }), false));
311
305
  var startDate = Number.MAX_SAFE_INTEGER;
312
306
  var endDate = 0;
313
- data.forEach(function (x, index) {
307
+ data.forEach(function (x) {
308
+ var _a;
314
309
  startDate = Math.min(startDate, Number(x.timeline));
315
310
  endDate = Math.max(endDate, Number(x.timeline));
316
- var billingUnit = (0, lodash_1.get)(campaignGroups, [x.campaignGroupId - 1]).campaignGroup.billingUnit;
311
+ var subCampaign = campaignGroups.find(function (c) { return c.campaignGroup.id === x.campaignGroupId; });
312
+ if (!subCampaign)
313
+ return;
314
+ var billingUnit = subCampaign.campaignGroup.billingUnit;
317
315
  var hasAuthen = billingUnit === Enum_2.AnalyticType.AUTHENTICATION;
318
- var isSpot = hasAuthen && (0, lodash_1.get)(campaignGroups, [x.campaignGroupId - 1, 'ads', x.campaignAdId - 1]).type === Enum_1.AdType.VIDEO;
316
+ 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;
319
317
  var timeline = x.timeline.toString();
320
318
  x.analyticEventSummaries.forEach(function (event) {
321
319
  var _a;
@@ -47,12 +47,12 @@ var AnalyticContainer = function (props) {
47
47
  }, [subCampaigns]);
48
48
  var filterPlaces = function (ids) {
49
49
  var result = [];
50
- subCampaigns.map(function (sub) {
50
+ subCampaigns.forEach(function (sub) {
51
51
  var _a;
52
- (_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.map(function (ad) {
52
+ (_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
53
53
  var _a;
54
54
  if (ids.find(function (id) { var _a; return id.campaignGroupId == ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) && (!id.campaignAdId || id.campaignAdId == (ad === null || ad === void 0 ? void 0 : ad.id)); })) {
55
- (_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.map(function (place) {
55
+ (_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.forEach(function (place) {
56
56
  if (!result.find(function (r) { return r.placeId == place.placeId; })) {
57
57
  result.push(place);
58
58
  }
@@ -74,7 +74,7 @@ var AnalyticContainer = function (props) {
74
74
  startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
75
75
  endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
76
76
  timelineType: timelineType,
77
- campaignAdGroups: ids.map(function (id) { return (__assign(__assign({}, id), { campaignId: campaignId })); }),
77
+ campaignAdGroups: ids.length ? ids.map(function (id) { return (__assign(__assign({}, id), { campaignId: campaignId })); }) : [{ campaignId: campaignId }],
78
78
  placeIds: placeIds,
79
79
  includedEventLabels: Object.values(Enum_1.BaseEvent)
80
80
  }).then(function (res) {
@@ -7,7 +7,9 @@ var jsx_runtime_1 = require("react/jsx-runtime");
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var component_1 = __importDefault(require("./component"));
9
9
  var moment_1 = __importDefault(require("moment"));
10
+ var Enum_1 = require("../../../../../ACM-AXN/Campaign/Enum");
10
11
  var Helpers_1 = require("../../../../../Utils/Helpers");
12
+ var lodash_1 = __importDefault(require("lodash"));
11
13
  var Context_1 = __importDefault(require("../Context"));
12
14
  var exportFile_1 = require("../../../../../ACM-AXN/CampaignSchedule/exportFile");
13
15
  var CustomerContainer = function (props) {
@@ -38,25 +40,17 @@ var CustomerContainer = function (props) {
38
40
  };
39
41
  var getCustomerData = function (time) {
40
42
  setIsLoading(true);
41
- // client
42
- // .statisticCampaignGetAnalyticCustomer(
43
- // moment(startDate).format(DATE_FORMAT),
44
- // moment(endDate).format(DATE_FORMAT),
45
- // campaignId
46
- // )
47
- // .then((res) => {
48
- // let tmp_audienceOverviews = filteredData(
49
- // res.audienceObjects,
50
- // _.cloneDeep(time.startDate),
51
- // _.cloneDeep(time.endDate)
52
- // )
53
- // setCustomerData({
54
- // audienceObjects: res.audienceObjects,
55
- // audienceOverviews: tmp_audienceOverviews as [],
56
- // totalUser: res.totalUser!,
57
- // })
58
- // })
59
- // .finally(() => setIsLoading(false))
43
+ client
44
+ .campaignStatisticGetCustomer((0, moment_1.default)(startDate).format(Enum_1.DATE_FORMAT), (0, moment_1.default)(endDate).format(Enum_1.DATE_FORMAT), campaignId)
45
+ .then(function (res) {
46
+ var tmp_audienceOverviews = filteredData(res.audienceObjects, lodash_1.default.cloneDeep(time.startDate), lodash_1.default.cloneDeep(time.endDate));
47
+ setCustomerData({
48
+ audienceObjects: res.audienceObjects,
49
+ audienceOverviews: tmp_audienceOverviews,
50
+ totalUser: res.totalUser,
51
+ });
52
+ })
53
+ .finally(function () { return setIsLoading(false); });
60
54
  };
61
55
  var exportData = function () {
62
56
  (0, exportFile_1.downloadWithDataSet)("export_analytic_customer_campaign_".concat(campaignId), convertToExportData(customerData));
@@ -0,0 +1,7 @@
1
+ import { CampaignAd } from '../../../../../ACM-AXN/Campaign/Types';
2
+ import { AnalyticEvent, AnalyticEventModelResponse, IAnalyticCampaignSummary } from '../Types';
3
+ export declare const convertEventData: (data: IAnalyticCampaignSummary[]) => AnalyticEventModelResponse[];
4
+ export declare function convertToExportData(data: AnalyticEvent[], places: NonNullable<CampaignAd['places']>): {
5
+ columns: string[];
6
+ data: string[][];
7
+ }[];
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.convertToExportData = exports.convertEventData = void 0;
47
+ var Helpers_1 = require("../../../../../Utils/Helpers");
48
+ var lodash_1 = __importStar(require("lodash"));
49
+ var Utils_1 = require("../Utils");
50
+ var convertEventData = function (data) { return (0, lodash_1.uniqBy)(data.map(function (el) {
51
+ return el.analyticEventSummaries.map(function (x, index, events) { return ({
52
+ timeline: el.timeline,
53
+ eventLabel: (0, Utils_1.extractEvent)(x.eventLabel).eventName,
54
+ total: events
55
+ .filter(function (e) {
56
+ return (0, Utils_1.extractEvent)(e.eventLabel).eventName ===
57
+ (0, Utils_1.extractEvent)(x.eventLabel).eventName;
58
+ })
59
+ .reduce(function (total, e) { return total + e.total; }, 0),
60
+ }); });
61
+ }).flat(), "eventLabel"); };
62
+ exports.convertEventData = convertEventData;
63
+ function convertToExportData(data, places) {
64
+ var headCell = new Set(['Place', 'Mac Address', 'Created date', 'View Number', 'Event label']);
65
+ var exportData = [];
66
+ (0, lodash_1.default)(data).groupBy('id')
67
+ .map(function (value, key) {
68
+ var events = value.map(function (v) { return v.events; }).flat().filter(function (e) { return e.viewNumber; });
69
+ Object.keys(Object.assign.apply(Object, __spreadArray([{}], events.map(function (e) { return (0, Helpers_1.parseJSON)(e.eventObject); }), false))).forEach(headCell.add, headCell);
70
+ return events.map(function (e) { return (__assign(__assign({}, e), { analyticId: key })); });
71
+ })
72
+ .flatten()
73
+ .value()
74
+ .forEach(function (el) {
75
+ var columns = Array.from(headCell);
76
+ var analytic = data.find(function (x) { return String(x.id) === el.analyticId; });
77
+ var place = places.find(function (x) { return x.placeId === (analytic === null || analytic === void 0 ? void 0 : analytic.placeId); });
78
+ var rowData = el.viewNumber !== 1 ? Array(3).fill('') : [
79
+ place ? place.name : analytic === null || analytic === void 0 ? void 0 : analytic.placeId,
80
+ analytic === null || analytic === void 0 ? void 0 : analytic.macAddress,
81
+ (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimestampToDateTime)(analytic.createdDate), 'DD/MM/YYYY, HH'),
82
+ ];
83
+ rowData.push(el.viewNumber.toString(), el.eventLabel);
84
+ columns.forEach(function (c, idx) {
85
+ if (idx > 4) {
86
+ var row = (0, Helpers_1.parseJSON)(el.eventObject)[c];
87
+ rowData.push(row ? typeof row === 'string'
88
+ ? row
89
+ : JSON.stringify(row) : '');
90
+ }
91
+ });
92
+ exportData.push(rowData);
93
+ });
94
+ return [
95
+ {
96
+ columns: Array.from(headCell),
97
+ data: exportData,
98
+ },
99
+ ];
100
+ }
101
+ exports.convertToExportData = convertToExportData;
@@ -38,13 +38,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  var jsx_runtime_1 = require("react/jsx-runtime");
41
- var react_1 = __importStar(require("react"));
42
- var component_1 = __importDefault(require("./component"));
43
- var Helpers_1 = require("../../../../../Utils/Helpers");
44
- var Context_1 = __importDefault(require("../Context"));
45
- var moment_1 = __importDefault(require("moment"));
46
41
  var Enum_1 = require("../../../../../ACM-AXN/Campaign/Enum");
42
+ var exportFile_1 = require("../../../../../ACM-AXN/CampaignSchedule/exportFile");
47
43
  var Enum_2 = require("../../../../../ACM-AXN/Common/Enum");
44
+ var moment_1 = __importDefault(require("moment"));
45
+ var react_1 = __importStar(require("react"));
46
+ var Context_1 = __importDefault(require("../Context"));
47
+ var Util_1 = require("./Util");
48
+ var component_1 = __importDefault(require("./component"));
48
49
  var EventContainer = function (props) {
49
50
  var campaignId = props.campaignId, startDate = props.startDate, endDate = props.endDate, subCampaigns = props.subCampaigns, domains = props.domains;
50
51
  var client = (0, Context_1.default)().services;
@@ -67,80 +68,44 @@ var EventContainer = function (props) {
67
68
  }, [subCampaigns]);
68
69
  var getEventData = function (time, placeIds, ids) {
69
70
  setIsLoading(true);
70
- client.campaignStatisticGet({
71
+ client
72
+ .campaignStatisticGet({
71
73
  startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
72
74
  endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
73
75
  timelineType: Enum_2.TimelineType.Day,
74
- campaignAdGroups: [__assign({ campaignId: "5344841815813731135" }, ids)],
76
+ campaignAdGroups: [
77
+ __assign({ campaignId: campaignId }, ids),
78
+ ],
79
+ analyticGroupBies: [
80
+ Enum_2.AnalyticGroupBy.GbEventLabel,
81
+ Enum_2.AnalyticGroupBy.GbTimeline,
82
+ ],
83
+ ignoredEventLabels: Object.values(Enum_1.BaseEvent),
75
84
  placeIds: placeIds,
76
- }).then(function (res) {
77
- console.log("res", res);
78
- }).finally(function () { return setIsLoading(false); });
79
- // client
80
- // .statisticCampaignGetAnalyticEvent({
81
- // startDate: time.startDate.toDateString(),
82
- // endDate: time.endDate.toDateString(),
83
- // campaignAdGroups: [{ campaignId, ...ids }],
84
- // placeIds,
85
- // } as any)
86
- // .then(setEventData)
87
- // .finally(() => setIsLoading(false))
85
+ })
86
+ .then(function (res) { return setEventData((0, Util_1.convertEventData)(res)); })
87
+ .finally(function () { return setIsLoading(false); });
88
88
  };
89
89
  var exportData = function (time, placeIds, ids) {
90
90
  var places = placesOfCampaign.filter(function (p) {
91
91
  return placeIds.includes(p.placeId);
92
92
  });
93
- // client
94
- // .statisticCampaignGetEvents({
95
- // startDate: time.startDate.toDateString(),
96
- // endDate: time.endDate.toDateString(),
97
- // campaignAdGroups: [{ campaignId, ...ids }],
98
- // placeIds,
99
- // } as any)
100
- // .then((responses) => {
101
- // // if (responses.data.status === STATUS_CODE.OK) {
102
- // downloadWithDataSet(
103
- // `export_analytic_event_campaign_${campaignId}`,
104
- // convertToExportData(responses, places)
105
- // )
106
- // })
107
- };
108
- function convertToExportData(data, places) {
109
- var columns = ['Place', 'Mac Address', 'Created date', 'Event label'];
110
- var exportData = [];
111
- data === null || data === void 0 ? void 0 : data.forEach(function (el) {
112
- var place = places.find(function (x) { return x.placeId === el.placeId; });
113
- var rowData = [
114
- place ? place.name : el.placeId,
115
- el.macAddress,
116
- (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimestampToDateTime)(el.createdDate), 'DD/MM/YYYY, HH'),
117
- el.eventLabel,
118
- ];
119
- var eventObject = JSON.parse(el.eventObject);
120
- var keyNames = Object.keys(eventObject);
121
- var _loop_1 = function (i) {
122
- if (!columns.some(function (x) { return x === keyNames[i]; })) {
123
- columns.push(keyNames[i]);
124
- }
125
- };
126
- for (var i = 0; i < keyNames.length; i++) {
127
- _loop_1(i);
128
- }
129
- for (var i = 4; i < columns.length; i++) {
130
- var dataObj = eventObject[columns[i]];
131
- rowData.push(typeof dataObj === 'string'
132
- ? dataObj
133
- : JSON.stringify(dataObj));
134
- }
135
- exportData.push(rowData);
93
+ client
94
+ .campaignStatisticGetEvents({
95
+ startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
96
+ endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
97
+ timelineType: Enum_2.TimelineType.Day,
98
+ campaignAdGroups: [
99
+ __assign({ campaignId: campaignId }, ids),
100
+ ],
101
+ analyticGroupBies: Object.values(Enum_2.AnalyticGroupBy).filter(function (g) { return !isNaN(Number(g)); }),
102
+ ignoredEventLabels: Object.values(Enum_1.BaseEvent),
103
+ placeIds: placeIds,
104
+ })
105
+ .then(function (res) {
106
+ (0, exportFile_1.downloadWithDataSet)("export_analytic_event_campaign_".concat(campaignId), (0, Util_1.convertToExportData)(res, places));
136
107
  });
137
- return [
138
- {
139
- columns: columns,
140
- data: exportData,
141
- },
142
- ];
143
- }
108
+ };
144
109
  return ((0, jsx_runtime_1.jsx)(component_1.default, { startDate: startDate, endDate: endDate, subCampaigns: subCampaigns, isLoading: isLoading, eventData: eventData, getEventData: getEventData, exportData: exportData, domains: domains }));
145
110
  };
146
111
  exports.default = EventContainer;
@@ -12,15 +12,15 @@ export interface AudienceObjectReply {
12
12
  totalUser?: number;
13
13
  }
14
14
  export interface IAnalyticEventSummary {
15
- eventLabel?: string | undefined;
16
- total?: number;
15
+ eventLabel: string;
16
+ total: number;
17
17
  }
18
18
  export interface IAnalyticCampaignSummary {
19
19
  campaignId?: string;
20
20
  placeId?: string;
21
21
  domainId?: string;
22
22
  timeline?: number;
23
- analyticEventSummaries?: IAnalyticEventSummary[] | undefined;
23
+ analyticEventSummaries: IAnalyticEventSummary[];
24
24
  campaignGroupId?: number;
25
25
  campaignAdId?: number;
26
26
  }
@@ -34,19 +34,27 @@ export interface AnalyticEventModelResponse {
34
34
  timeline: number;
35
35
  total: number;
36
36
  }
37
- export interface AnalyticEvent {
37
+ export interface IEvent {
38
38
  eventLabel: string;
39
39
  eventObject: string;
40
+ viewNumber: number;
41
+ createdDate: Timestamp;
42
+ }
43
+ export interface AnalyticEvent {
44
+ id: number;
45
+ sessionId: string;
40
46
  placeId: string;
41
47
  domainId: string;
42
- pageId: string;
43
48
  campaignId: string;
44
49
  campaignGroupId: number;
50
+ campaignAdId: number;
45
51
  macAddress: string;
46
52
  apMac: string;
47
- sessionId: string;
53
+ isNetwork: boolean;
54
+ url: string;
55
+ userAgent: string;
56
+ events: IEvent[];
48
57
  createdDate: Timestamp;
49
- campaignAdId: number;
50
58
  }
51
59
  export interface IDomain {
52
60
  domainId?: string;
@@ -74,7 +82,7 @@ export type DateRange = {
74
82
  endDate: Date;
75
83
  };
76
84
  export interface CampaignAnalyticService {
77
- campaignStatisticGetEvents(body: AnalyticEventModel | undefined): Promise<AnalyticEvent[]>;
85
+ campaignStatisticGetEvents(body: IStatisticDTO | undefined): Promise<AnalyticEvent[]>;
78
86
  campaignStatisticGetCustomer(startDate: string | undefined, endDate: string | undefined, campaignId: string | undefined): Promise<AudienceObjectReply>;
79
87
  campaignStatisticGet(body: IStatisticDTO | undefined): Promise<IAnalyticCampaignSummary[]>;
80
88
  domainsGetAll?: () => Promise<IDomain[]>;
@@ -37,12 +37,9 @@ var component_1 = __importDefault(require("./component"));
37
37
  var AWING_1 = require("../../../../AWING");
38
38
  var Context_1 = __importStar(require("./Context"));
39
39
  var Hooks_1 = require("../../../../AWING/Hooks");
40
- var fakeCampaignData_json_1 = __importDefault(require("./fakeCampaignData.json"));
41
40
  exports.tabs = { ANALYTIC: 0, EVENT: 1, CUSTOMER: 2 };
42
41
  function TabStatisticsContainer() {
43
- var _a = (0, Context_1.default)(), client = _a.services, xxy = _a.campaignId, xxx = _a.subCampaigns, isNetwork = _a.isNetwork;
44
- var campaignId = fakeCampaignData_json_1.default.campaign.id;
45
- var subCampaigns = fakeCampaignData_json_1.default.campaignGroups;
42
+ var _a = (0, Context_1.default)(), client = _a.services, campaignId = _a.campaignId, subCampaigns = _a.subCampaigns, isNetwork = _a.isNetwork;
46
43
  var _b = (0, react_1.useState)(exports.tabs.ANALYTIC), tabIndex = _b[0], setTabIndex = _b[1];
47
44
  var time = (0, react_1.useMemo)(function () { return (0, Utils_1.getTime)(subCampaigns); }, [subCampaigns]);
48
45
  var tabPanel = function () {
@@ -20,7 +20,7 @@ export declare enum HEAD_CELL_IDS {
20
20
  CAMPAIGN_CAMPAIGN = "campaignCampaign"
21
21
  }
22
22
  export declare enum HEAD_CELL_NAMES {
23
- AUTHENTICATION = "Engagement/ Spot",
23
+ AUTHENTICATION = "Engagement",
24
24
  ER = "Er",
25
25
  CONTROL = "collapse-stt",
26
26
  PLACE = "placeid",
@@ -28,7 +28,7 @@ var HEAD_CELL_IDS;
28
28
  })(HEAD_CELL_IDS || (exports.HEAD_CELL_IDS = HEAD_CELL_IDS = {}));
29
29
  var HEAD_CELL_NAMES;
30
30
  (function (HEAD_CELL_NAMES) {
31
- HEAD_CELL_NAMES["AUTHENTICATION"] = "Engagement/ Spot";
31
+ HEAD_CELL_NAMES["AUTHENTICATION"] = "Engagement";
32
32
  HEAD_CELL_NAMES["ER"] = "Er";
33
33
  HEAD_CELL_NAMES["CONTROL"] = "collapse-stt";
34
34
  HEAD_CELL_NAMES["PLACE"] = "placeid";
@@ -112,3 +112,4 @@ export declare function fillMissingDates(data: Array<{
112
112
  x: string;
113
113
  y: number;
114
114
  }[];
115
+ export declare function parseJSON(str: string): any;
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.fillMissingDates = exports.setObject = exports.formatChartNumber = exports.updateObjectFields = exports.validateNumber = exports.getToday = exports.convertDataSetPattern = exports.convertAnalyticModelToChartDataAdvance = exports.getStartOfDay = exports.timestampToStringDDMMYYYY = exports.dateToStringDDMMYYYY = exports.convertTimelineToDateTime = exports.dateTimeToString = exports.convertTimestampToDateTime = exports.convertDateTimeToTimestamp = exports.checkValidUrl = exports.validateAnalyticTypes = exports.stringToListAccessPoint = exports.checkValidMacAddress = exports.checkValidStringListAP = exports.convertTimeLine = exports.WMAPEcalculator = exports.roundDecimalNumber = exports.convertArrayToObject = exports.offlinePaginate = exports.changeToAlias = exports.calculatorDirectoryIdRoot = exports.getRoutePath = exports.timestampToStringDDMMYYYYHHmm = exports.dateToStringddddDDMMYYYYHHmm = exports.downloadZipFile = exports.downloadFilePattern = exports.generateUUID = exports.displayLongString = exports.getQueryVariable = exports.formatNumber = exports.dateToString = exports.getCookie = exports.TIMELINE_TYPE = void 0;
26
+ exports.parseJSON = exports.fillMissingDates = exports.setObject = exports.formatChartNumber = exports.updateObjectFields = exports.validateNumber = exports.getToday = exports.convertDataSetPattern = exports.convertAnalyticModelToChartDataAdvance = exports.getStartOfDay = exports.timestampToStringDDMMYYYY = exports.dateToStringDDMMYYYY = exports.convertTimelineToDateTime = exports.dateTimeToString = exports.convertTimestampToDateTime = exports.convertDateTimeToTimestamp = exports.checkValidUrl = exports.validateAnalyticTypes = exports.stringToListAccessPoint = exports.checkValidMacAddress = exports.checkValidStringListAP = exports.convertTimeLine = exports.WMAPEcalculator = exports.roundDecimalNumber = exports.convertArrayToObject = exports.offlinePaginate = exports.changeToAlias = exports.calculatorDirectoryIdRoot = exports.getRoutePath = exports.timestampToStringDDMMYYYYHHmm = exports.dateToStringddddDDMMYYYYHHmm = exports.downloadZipFile = exports.downloadFilePattern = exports.generateUUID = exports.displayLongString = exports.getQueryVariable = exports.formatNumber = exports.dateToString = exports.getCookie = exports.TIMELINE_TYPE = void 0;
27
27
  var moment_1 = __importDefault(require("moment"));
28
28
  var i18n_1 = __importDefault(require("../i18n"));
29
29
  var helper_1 = require("../AWING/helper");
@@ -563,3 +563,12 @@ function fillMissingDates(data, startDate, endDate, format) {
563
563
  return (0, lodash_1.orderBy)(result, ['x'], ['asc']);
564
564
  }
565
565
  exports.fillMissingDates = fillMissingDates;
566
+ function parseJSON(str) {
567
+ try {
568
+ return JSON.parse(str || "{}");
569
+ }
570
+ catch (e) {
571
+ return str;
572
+ }
573
+ }
574
+ exports.parseJSON = parseJSON;
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "Common": {
3
+ "Engagement": "Engagement",
3
4
  "DateRangePickerLabel": "Date",
4
5
  "NotNegative": "Not negative value!",
5
6
  "Existed": "{0} is already existed!",
@@ -240,6 +241,7 @@
240
241
  },
241
242
  "Campaign": {
242
243
  "Engagement": "Engagement",
244
+ "EngagementPerSpot": "Engagement / Spot",
243
245
  "Egr": "Engagement rate",
244
246
  "Spot": "Spot",
245
247
  "ClickToCopy": "Click to copy",
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "Common": {
3
+ "Engagement": "Engagement",
3
4
  "DateRangePickerLabel": "Ngày tháng",
4
5
  "NotNegative": "Không được nhập số âm!",
5
6
  "Existed": "{0} đã tồn tại!",
@@ -222,6 +223,7 @@
222
223
  },
223
224
  "Campaign": {
224
225
  "Engagement": "Lượt tương tác",
226
+ "EngagementPerSpot": "Engagement / Spot",
225
227
  "Egr": "Tỉ lệ tương tác",
226
228
  "Spot": "Spot",
227
229
  "Impression": "Lượt hiển thị",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awing-library",
3
- "version": "2.1.129-beta",
3
+ "version": "2.1.131-beta",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -1,397 +0,0 @@
1
- {
2
- "campaign": {
3
- "id": "5344841815813731135",
4
- "directoryId": "5",
5
- "directoryPath": ".0.5.5344841815813731135.",
6
- "name": "D-TES-362",
7
- "createdDate": {
8
- "seconds": "1715826943",
9
- "nanos": 0
10
- }
11
- },
12
- "campaignGroups": [
13
- {
14
- "campaignGroup": {
15
- "numberHasRun": 0,
16
- "id": 1,
17
- "campaignId": "5344841815813731135",
18
- "name": "Sub-Campaign 1",
19
- "ticket": 1,
20
- "priority": 1,
21
- "bookingAmount": 10,
22
- "bonusAmount": 0,
23
- "isReserved": false,
24
- "billingUnit": 1
25
- },
26
- "ads": [
27
- {
28
- "loginPage": {
29
- "pageId": "5597952621104150331",
30
- "directoryId": "12",
31
- "pageCode": "lgn",
32
- "title": "Mediacom_Nutriboost_T5/24_Banner 1",
33
- "layoutId": "0",
34
- "transitionId": 0,
35
- "commonHtml": "",
36
- "directoryPath": ".0.6.12.5597952621104150331.",
37
- "createdDate": {
38
- "seconds": "1715253305",
39
- "nanos": 0
40
- }
41
- },
42
- "welcomePage": {
43
- "pageId": "4920522790503873987",
44
- "directoryId": "11",
45
- "pageCode": "wlc",
46
- "title": "Trí Khang_Marial Gel_T5/24",
47
- "layoutId": "0",
48
- "transitionId": 0,
49
- "commonHtml": "",
50
- "directoryPath": ".0.6.11.4920522790503873987.",
51
- "createdDate": {
52
- "seconds": "1715161995",
53
- "nanos": 0
54
- }
55
- },
56
- "places": [
57
- {
58
- "placeId": "5504693026866563256",
59
- "domainId": "4913100144472996590",
60
- "name": "AWING HEAD OFFICE",
61
- "address": "Hà Nội",
62
- "description": "",
63
- "longitude": 105.82840602165118,
64
- "latitude": 20.99985249638673,
65
- "communeCode": "00352",
66
- "districtCode": "009",
67
- "provinceCode": "01",
68
- "status": 0,
69
- "joinedDate": {
70
- "seconds": "1631777426",
71
- "nanos": 0
72
- }
73
- }
74
- ],
75
- "deletedPlaces": null,
76
- "id": 1,
77
- "campaignId": "5344841815813731135",
78
- "campaignGroupId": 1,
79
- "name": "Ad 1",
80
- "status": true,
81
- "type": 6,
82
- "loginId": "5597952621104150331",
83
- "welcomeId": "4920522790503873987",
84
- "startDate": {
85
- "seconds": "1715792400",
86
- "nanos": 0
87
- },
88
- "endDate": {
89
- "seconds": "1715792400",
90
- "nanos": 0
91
- },
92
- "placeFilter": {
93
- "operandGroups": [
94
- {
95
- "operands": [
96
- {
97
- "type": 2,
98
- "operator": 7,
99
- "value": "[\"4913100144472996590\"]"
100
- },
101
- {
102
- "type": 0,
103
- "operator": 7,
104
- "value": "[\"5504693026866563256\"]"
105
- }
106
- ]
107
- }
108
- ]
109
- },
110
- "weights": [],
111
- "advanced": null
112
- },
113
- {
114
- "loginPage": {
115
- "pageId": "5597952621104150331",
116
- "directoryId": "12",
117
- "pageCode": "lgn",
118
- "title": "Mediacom_Nutriboost_T5/24_Banner",
119
- "layoutId": "0",
120
- "transitionId": 0,
121
- "commonHtml": "",
122
- "directoryPath": ".0.6.12.5597952621104150331.",
123
- "createdDate": {
124
- "seconds": "1715253305",
125
- "nanos": 0
126
- }
127
- },
128
- "welcomePage": {
129
- "pageId": "4920522790503873987",
130
- "directoryId": "11",
131
- "pageCode": "wlc",
132
- "title": "Trí Khang_Marial Gel_T5/24",
133
- "layoutId": "0",
134
- "transitionId": 0,
135
- "commonHtml": "",
136
- "directoryPath": ".0.6.11.4920522790503873987.",
137
- "createdDate": {
138
- "seconds": "1715161995",
139
- "nanos": 0
140
- }
141
- },
142
- "places": [
143
- {
144
- "placeId": "5504693026866563256",
145
- "domainId": "4913100144472996590",
146
- "name": "AWING HEAD OFFICE",
147
- "address": "Hà Nội",
148
- "description": "",
149
- "longitude": 105.82840602165118,
150
- "latitude": 20.99985249638673,
151
- "communeCode": "00352",
152
- "districtCode": "009",
153
- "provinceCode": "01",
154
- "status": 0,
155
- "joinedDate": {
156
- "seconds": "1631777426",
157
- "nanos": 0
158
- }
159
- }
160
- ],
161
- "deletedPlaces": null,
162
- "id": 1,
163
- "campaignId": "5344841815813731135",
164
- "campaignGroupId": 1,
165
- "name": "Ad 2",
166
- "status": true,
167
- "type": 3,
168
- "loginId": "5597952621104150331",
169
- "welcomeId": "4920522790503873987",
170
- "startDate": {
171
- "seconds": "1715792400",
172
- "nanos": 0
173
- },
174
- "endDate": {
175
- "seconds": "1715792400",
176
- "nanos": 0
177
- },
178
- "placeFilter": {
179
- "operandGroups": [
180
- {
181
- "operands": [
182
- {
183
- "type": 2,
184
- "operator": 7,
185
- "value": "[\"4913100144472996590\"]"
186
- },
187
- {
188
- "type": 0,
189
- "operator": 7,
190
- "value": "[\"5504693026866563256\"]"
191
- }
192
- ]
193
- }
194
- ]
195
- },
196
- "weights": [],
197
- "advanced": null
198
- }
199
- ]
200
- },
201
- {
202
- "campaignGroup": {
203
- "numberHasRun": 0,
204
- "id": 2,
205
- "campaignId": "5344841815813731135",
206
- "name": "Sub-Campaign 2",
207
- "ticket": 1,
208
- "priority": 1,
209
- "bookingAmount": 10,
210
- "bonusAmount": 0,
211
- "isReserved": false,
212
- "billingUnit": 0
213
- },
214
- "ads": [
215
- {
216
- "loginPage": {
217
- "pageId": "5597952621104150331",
218
- "directoryId": "12",
219
- "pageCode": "lgn",
220
- "title": "Mediacom_Nutriboost_T5/24_Banner 1",
221
- "layoutId": "0",
222
- "transitionId": 0,
223
- "commonHtml": "",
224
- "directoryPath": ".0.6.12.5597952621104150331.",
225
- "createdDate": {
226
- "seconds": "1715253305",
227
- "nanos": 0
228
- }
229
- },
230
- "welcomePage": {
231
- "pageId": "4920522790503873987",
232
- "directoryId": "11",
233
- "pageCode": "wlc",
234
- "title": "Trí Khang_Marial Gel_T5/24",
235
- "layoutId": "0",
236
- "transitionId": 0,
237
- "commonHtml": "",
238
- "directoryPath": ".0.6.11.4920522790503873987.",
239
- "createdDate": {
240
- "seconds": "1715161995",
241
- "nanos": 0
242
- }
243
- },
244
- "places": [
245
- {
246
- "placeId": "5504693026866563256",
247
- "domainId": "4913100144472996590",
248
- "name": "AWING HEAD OFFICE",
249
- "address": "Hà Nội",
250
- "description": "",
251
- "longitude": 105.82840602165118,
252
- "latitude": 20.99985249638673,
253
- "communeCode": "00352",
254
- "districtCode": "009",
255
- "provinceCode": "01",
256
- "status": 0,
257
- "joinedDate": {
258
- "seconds": "1631777426",
259
- "nanos": 0
260
- }
261
- }
262
- ],
263
- "deletedPlaces": null,
264
- "id": 21,
265
- "campaignId": "5344841815813731135",
266
- "campaignGroupId": 21,
267
- "name": "Ad 21",
268
- "status": true,
269
- "type": 6,
270
- "loginId": "5597952621104150331",
271
- "welcomeId": "4920522790503873987",
272
- "startDate": {
273
- "seconds": "1715792400",
274
- "nanos": 0
275
- },
276
- "endDate": {
277
- "seconds": "1715792400",
278
- "nanos": 0
279
- },
280
- "placeFilter": {
281
- "operandGroups": [
282
- {
283
- "operands": [
284
- {
285
- "type": 2,
286
- "operator": 7,
287
- "value": "[\"4913100144472996590\"]"
288
- },
289
- {
290
- "type": 0,
291
- "operator": 7,
292
- "value": "[\"5504693026866563256\"]"
293
- }
294
- ]
295
- }
296
- ]
297
- },
298
- "weights": [],
299
- "advanced": null
300
- },
301
- {
302
- "loginPage": {
303
- "pageId": "5597952621104150331",
304
- "directoryId": "12",
305
- "pageCode": "lgn",
306
- "title": "Mediacom_Nutriboost_T5/24_Banner",
307
- "layoutId": "0",
308
- "transitionId": 0,
309
- "commonHtml": "",
310
- "directoryPath": ".0.6.12.5597952621104150331.",
311
- "createdDate": {
312
- "seconds": "1715253305",
313
- "nanos": 0
314
- }
315
- },
316
- "welcomePage": {
317
- "pageId": "4920522790503873987",
318
- "directoryId": "11",
319
- "pageCode": "wlc",
320
- "title": "Trí Khang_Marial Gel_T5/24",
321
- "layoutId": "0",
322
- "transitionId": 0,
323
- "commonHtml": "",
324
- "directoryPath": ".0.6.11.4920522790503873987.",
325
- "createdDate": {
326
- "seconds": "1715161995",
327
- "nanos": 0
328
- }
329
- },
330
- "places": [
331
- {
332
- "placeId": "5504693026866563256",
333
- "domainId": "4913100144472996590",
334
- "name": "AWING HEAD OFFICE",
335
- "address": "Hà Nội",
336
- "description": "",
337
- "longitude": 105.82840602165118,
338
- "latitude": 20.99985249638673,
339
- "communeCode": "00352",
340
- "districtCode": "009",
341
- "provinceCode": "01",
342
- "status": 0,
343
- "joinedDate": {
344
- "seconds": "1631777426",
345
- "nanos": 0
346
- }
347
- }
348
- ],
349
- "deletedPlaces": null,
350
- "id": 2,
351
- "campaignId": "5344841815813731135",
352
- "campaignGroupId": 2,
353
- "name": "Ad 212121",
354
- "status": true,
355
- "type": 3,
356
- "loginId": "5597952621104150331",
357
- "welcomeId": "4920522790503873987",
358
- "startDate": {
359
- "seconds": "1715792400",
360
- "nanos": 0
361
- },
362
- "endDate": {
363
- "seconds": "1715792400",
364
- "nanos": 0
365
- },
366
- "placeFilter": {
367
- "operandGroups": [
368
- {
369
- "operands": [
370
- {
371
- "type": 2,
372
- "operator": 7,
373
- "value": "[\"4913100144472996590\"]"
374
- },
375
- {
376
- "type": 0,
377
- "operator": 7,
378
- "value": "[\"5504693026866563256\"]"
379
- }
380
- ]
381
- }
382
- ]
383
- },
384
- "weights": [],
385
- "advanced": null
386
- }
387
- ]
388
- }
389
- ],
390
- "campaignAttributes": [
391
- {
392
- "campaignId": "5344841815813731135",
393
- "attributeId": 1
394
- }
395
- ],
396
- "campaignPartner": null
397
- }