awing-library 2.1.142-beta → 2.1.142

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.
Files changed (216) hide show
  1. package/lib/ACM-AXN/AuthenticationProfile/Container.js +4 -4
  2. package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/index.js +2 -2
  3. package/lib/ACM-AXN/Campaign/Container.js +52 -54
  4. package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +8 -1
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +27 -3
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +17 -0
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +121 -0
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +1 -0
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +219 -0
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.d.ts +2 -0
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.js +306 -0
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.d.ts +1 -0
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.js +230 -0
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +1 -0
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +123 -0
  17. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.d.ts +1 -0
  18. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +253 -0
  19. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +21 -5
  20. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.d.ts +1 -1
  21. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.js +47 -78
  22. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +6 -1
  23. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +3 -22
  24. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +2 -1
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +2 -3
  26. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +22 -42
  27. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +317 -104
  28. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +1 -1
  29. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
  30. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +119 -54
  31. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +8 -6
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +1 -1
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.d.ts +9 -0
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.js +56 -0
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +12 -0
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +23 -8
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +63 -12
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +1 -1
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +1 -1
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +1 -2
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +1 -1
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +69 -124
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +3 -2
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  64. package/lib/ACM-AXN/Campaign/Enum.d.ts +24 -6
  65. package/lib/ACM-AXN/Campaign/Enum.js +30 -11
  66. package/lib/ACM-AXN/Campaign/Types.d.ts +53 -5
  67. package/lib/ACM-AXN/Campaign/Utils.d.ts +6 -1
  68. package/lib/ACM-AXN/Campaign/Utils.js +50 -3
  69. package/lib/ACM-AXN/Campaign/index.js +2 -2
  70. package/lib/ACM-AXN/CampaignPlan/Container.js +4 -6
  71. package/lib/ACM-AXN/CampaignPlan/Detail.js +3 -3
  72. package/lib/ACM-AXN/CampaignPlan/Filter.js +1 -1
  73. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  74. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  75. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +6 -4
  76. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  77. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  78. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  79. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  80. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  81. package/lib/ACM-AXN/Common/Constant.js +2 -0
  82. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  83. package/lib/ACM-AXN/Common/Enum.js +19 -4
  84. package/lib/ACM-AXN/Common/Types.d.ts +5 -0
  85. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  86. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  87. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  88. package/lib/ACM-AXN/Holiday/FormHoliday.js +1 -0
  89. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  90. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  91. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  92. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  93. package/lib/ACM-AXN/Page/Constant.js +2 -0
  94. package/lib/ACM-AXN/Page/Container.js +3 -3
  95. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  96. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  97. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  98. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  99. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/TrackingCode.js +1 -1
  100. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  101. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  102. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  103. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  104. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -44
  105. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  106. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  107. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  108. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +6 -6
  109. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +19 -4
  110. package/lib/ACM-AXN/Page/Import/index.js +2 -2
  111. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  112. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  113. package/lib/ACM-AXN/Page/enums.js +7 -1
  114. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  115. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  116. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  117. package/lib/ACM-AXN/PlaceFilter/Tag/component/TagChip.js +1 -1
  118. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  119. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  120. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  121. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  122. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  123. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  124. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  125. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  126. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  127. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  128. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  131. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +13 -10
  132. package/lib/ACM-AXN/Statistics/ControlPanel.js +17 -5
  133. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  134. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  135. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  136. package/lib/ACM-AXN/StatisticsByProvince/DataTable.js +1 -1
  137. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +4 -4
  138. package/lib/ACM-AXN/Template/Container.js +2 -2
  139. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  140. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  141. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  142. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  143. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  146. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  147. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  148. package/lib/ACM-AXN/Template/Import.js +2 -2
  149. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  150. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  151. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  152. package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +23 -11
  153. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  154. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  155. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +42 -129
  156. package/lib/ACM-AXN/ViewTemplate/common.d.ts +2 -1
  157. package/lib/ACM-AXN/ViewTemplate/common.js +47 -7
  158. package/lib/ACM-AXN/ViewTemplate/container.js +8 -2
  159. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  160. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  161. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  162. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  163. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  164. package/lib/ACM-AXN/index.d.ts +1 -0
  165. package/lib/ACM-AXN/index.js +1 -0
  166. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  167. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  168. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  169. package/lib/AWING/Chart/BarLineComponent.js +20 -24
  170. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  171. package/lib/AWING/Chart/PieComponent.js +16 -16
  172. package/lib/AWING/Chart/Styles.js +51 -16
  173. package/lib/AWING/DataForm/DataInput.js +104 -22
  174. package/lib/AWING/DataForm/interface.d.ts +2 -0
  175. package/lib/AWING/DataGrid/index.js +8 -13
  176. package/lib/AWING/DateRangePicker/component.js +61 -30
  177. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  178. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  179. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  180. package/lib/AWING/Form/useForm.js +3 -2
  181. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  182. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  183. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  184. package/lib/AWING/GoogleMap/index.js +41 -0
  185. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  186. package/lib/AWING/GoogleMap/interface.js +2 -0
  187. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  188. package/lib/AWING/GoogleMap/utils.js +135 -0
  189. package/lib/AWING/GroupTable/GroupTable.js +2 -2
  190. package/lib/AWING/GroupTable/component.d.ts +1 -0
  191. package/lib/AWING/GroupTable/component.js +2 -2
  192. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  193. package/lib/AWING/NumberFormat/index.js +2 -2
  194. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  195. package/lib/AWING/Pagination/index.js +11 -3
  196. package/lib/AWING/index.d.ts +1 -0
  197. package/lib/AWING/index.js +1 -0
  198. package/lib/AWING/ultis/validation.d.ts +1 -0
  199. package/lib/AWING/ultis/validation.js +25 -6
  200. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  201. package/lib/Commons/Components/HighlightedCode/MarkdownElement.js +6 -1
  202. package/lib/Commons/Hooks/usePath.js +3 -3
  203. package/lib/Utils/Helpers.d.ts +3 -2
  204. package/lib/Utils/Helpers.js +49 -13
  205. package/lib/i18n.js +27 -2
  206. package/lib/translate/en/translation.json +132 -71
  207. package/lib/translate/id/translation.json +893 -0
  208. package/lib/translate/ind/translation.json +893 -0
  209. package/lib/translate/ja/translation.json +893 -0
  210. package/lib/translate/mys/translation.json +893 -0
  211. package/lib/translate/phl/translation.json +893 -0
  212. package/lib/translate/th/translation.json +893 -0
  213. package/lib/translate/vi/translation.json +92 -31
  214. package/package.json +9 -4
  215. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  216. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -46,14 +46,44 @@ 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.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 = exports.addHeaderExcel = 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.unshift({
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
+ exports.addHeaderExcel = addHeaderExcel;
76
+ function convertToExportDataGroupBy(data, objects, timelineType, groupBy, campaignName) {
56
77
  var result = [];
78
+ var ClickTitle = i18n_1.default.t('Common.FinalClick');
79
+ var header = [
80
+ groupBy,
81
+ i18n_1.default.t('Common.Date'),
82
+ i18n_1.default.t('Common.Impression'),
83
+ i18n_1.default.t('Common.Engagement') + '(Spot)',
84
+ ClickTitle,
85
+ ];
86
+ // addHeaderExcel(result, campaignName)
57
87
  var exportData = objects
58
88
  .map(function (object, key) {
59
89
  var placeIds = object.places.map(function (plc) { return plc.placeId; });
@@ -68,41 +98,39 @@ function convertToExportDataGroupBy(data, objects, timelineType, groupBy) {
68
98
  })
69
99
  .reduce(function (a, b) { return a.concat(b); }, []);
70
100
  result.push({
71
- columns: [
72
- groupBy,
73
- 'Time',
74
- i18n_1.default.t('Common.Impression'),
75
- i18n_1.default.t('Common.Engagement'),
76
- i18n_1.default.t('Common.FinalClick'),
77
- 'ER (%)',
78
- 'CTR (%)',
79
- ],
101
+ columns: header,
80
102
  data: exportData,
81
103
  });
82
104
  return result;
83
105
  }
84
106
  exports.convertToExportDataGroupBy = convertToExportDataGroupBy;
85
- function convertToExportData(data, places, timelineType) {
107
+ function convertToExportData(data, places, timelineType, campaignName, fullPlaces) {
86
108
  var result = [];
109
+ var ClickTitle = i18n_1.default.t('Common.FinalClick');
110
+ var header = [
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'),
115
+ i18n_1.default.t('Common.Impression'),
116
+ i18n_1.default.t('Campaign.Engagement') + '(Spot)',
117
+ ClickTitle,
118
+ ];
119
+ // addHeaderExcel(result, campaignName)
87
120
  result.push({
88
- columns: [
89
- 'Place',
90
- 'Time',
91
- i18n_1.default.t('Common.Impression'),
92
- i18n_1.default.t('Common.Enagagement'),
93
- i18n_1.default.t('Common.FinalClick'),
94
- 'ER (%)',
95
- 'CTR (%)',
96
- ],
97
- data: dataGroupByTimeline('All', data, timelineType),
121
+ columns: header,
122
+ data: dataGroupByTimelineAndPlaces('All', 'All', 'All', data, timelineType),
98
123
  });
99
124
  Array.prototype.push.apply(result, (0, lodash_1.chain)(data)
100
125
  .groupBy('placeId')
101
126
  .map(function (value, key) {
127
+ var _a, _b;
102
128
  var place = places.find(function (x) { return x.placeId === key; });
129
+ var province = (_a = fullPlaces === null || fullPlaces === void 0 ? void 0 : fullPlaces.find(function (z) { return z.code === (place === null || place === void 0 ? void 0 : place.provinceCode); })) === null || _a === void 0 ? void 0 : _a.name;
130
+ var district = (_b = fullPlaces === null || fullPlaces === void 0 ? void 0 : fullPlaces.find(function (z) { return z.code === (place === null || place === void 0 ? void 0 : place.districtCode); })) === null || _b === void 0 ? void 0 : _b.name;
103
131
  var placeData = {
104
132
  columns: Array(7).fill(''),
105
- data: dataGroupByTimeline(place ? place.name : key, value, timelineType),
133
+ data: dataGroupByTimelineAndPlaces(place ? place.name : key, province !== null && province !== void 0 ? province : '', district !== null && district !== void 0 ? district : '', value, timelineType),
106
134
  };
107
135
  return placeData;
108
136
  })
@@ -110,45 +138,60 @@ function convertToExportData(data, places, timelineType) {
110
138
  return result;
111
139
  }
112
140
  exports.convertToExportData = convertToExportData;
113
- function convertToExport(subCampaigns, data, timelineType, places) {
141
+ function convertToExport(subCampaigns, data, timelineType, places, campaignName, fullPlaces) {
114
142
  var result = [];
115
143
  var isShouldHeader = true;
144
+ var ClickTitle = i18n_1.default.t('Common.FinalClick');
145
+ // addHeaderExcel(result, campaignName)
146
+ var header = [
147
+ i18n_1.default.t('Common.SubCampaign'),
148
+ 'Ad',
149
+ i18n_1.default.t('Common.Location'),
150
+ i18n_1.default.t('Common.CityProvince'),
151
+ i18n_1.default.t('Common.District'),
152
+ i18n_1.default.t('Common.Date'),
153
+ i18n_1.default.t('Common.Impression'),
154
+ i18n_1.default.t('Campaign.Engagement') + '(Spot)',
155
+ ClickTitle,
156
+ ];
116
157
  subCampaigns.forEach(function (sub) {
117
158
  var _a;
118
159
  (_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
119
- var adData = data.filter(function (d) {
160
+ var adData = data
161
+ .filter(function (d) {
120
162
  var _a;
121
163
  return (d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
122
164
  d.campaignAdId === ad.id);
123
- }).map(function (x) { return (__assign(__assign({}, x), Object.assign.apply(Object, __spreadArray([{}], x.analyticEventSummaries.map(function (y) {
165
+ })
166
+ // eslint-disable-next-line no-sequences
167
+ .map(function (x) { return (__assign(__assign({}, x), Object.assign.apply(Object, __spreadArray(__spreadArray([{}], Object.values(Enum_1.BaseEvent).map(function (v) {
168
+ var _a;
169
+ return (_a = {},
170
+ _a[v] = 0,
171
+ _a);
172
+ }), false), x.analyticEventSummaries.map(function (y) {
124
173
  var _a;
125
- return (_a = {}, _a[y.eventLabel] = y.total, _a);
174
+ return (_a = {},
175
+ _a[y.eventLabel] = y.total,
176
+ _a);
126
177
  }), false)))); });
127
178
  result.push({
128
179
  columns: isShouldHeader
129
- ? [
130
- 'Sub-campaign',
131
- 'Ad',
132
- 'Place',
133
- 'Time',
134
- i18n_1.default.t('Common.Impression'),
135
- i18n_1.default.t("Campaign.EngagementPerSpot"),
136
- i18n_1.default.t('Common.FinalClick'),
137
- "ER (%)",
138
- "CTR (%)",
139
- ]
140
- : Array(9).fill(''),
141
- 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); }),
180
+ ? header
181
+ : Array(7).fill(''),
182
+ data: dataGroupByTimelineAndPlaces('All', 'All', 'All', adData, timelineType).map(function (d) { var _a; return __spreadArray([(_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.name, ad === null || ad === void 0 ? void 0 : ad.name], d, true); }),
142
183
  });
143
184
  isShouldHeader = false;
144
- console.log("value placeId", adData);
145
185
  Array.prototype.push.apply(result, (0, lodash_1.chain)(adData)
146
186
  .groupBy('placeId')
147
187
  .map(function (value, key) {
188
+ var _a, _b;
148
189
  var place = places.find(function (x) { return x.placeId === key; });
190
+ var province = (_a = fullPlaces === null || fullPlaces === void 0 ? void 0 : fullPlaces.find(function (z) { return z.code === (place === null || place === void 0 ? void 0 : place.provinceCode); })) === null || _a === void 0 ? void 0 : _a.name;
191
+ var district = (_b = fullPlaces === null || fullPlaces === void 0 ? void 0 : fullPlaces.find(function (z) { return z.code === (place === null || place === void 0 ? void 0 : place.districtCode); })) === null || _b === void 0 ? void 0 : _b.name;
149
192
  var placeData = {
150
- columns: Array(9).fill(''),
151
- data: dataGroupByTimeline(place ? (place === null || place === void 0 ? void 0 : place.name) || place.placeId : key, value, timelineType).map(function (d) {
193
+ columns: Array(7).fill(''),
194
+ data: dataGroupByTimelineAndPlaces(place ? (place === null || place === void 0 ? void 0 : place.name) || place.placeId : key, province !== null && province !== void 0 ? province : '', district !== null && district !== void 0 ? district : '', value, timelineType).map(function (d) {
152
195
  var _a;
153
196
  return __spreadArray([
154
197
  (_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.name,
@@ -164,6 +207,54 @@ function convertToExport(subCampaigns, data, timelineType, places) {
164
207
  return result;
165
208
  }
166
209
  exports.convertToExport = convertToExport;
210
+ function convertToExportByAd(subCampaigns, data, timelineType, campaignName) {
211
+ var result = [];
212
+ var isShouldHeader = true;
213
+ var ClickTitle = i18n_1.default.t('Common.FinalClick');
214
+ var header = [
215
+ 'Ad',
216
+ i18n_1.default.t('Common.Date'),
217
+ i18n_1.default.t('Common.Impression'),
218
+ i18n_1.default.t('Campaign.Engagement') + '(Spot)',
219
+ ClickTitle,
220
+ ];
221
+ // addHeaderExcel(result, campaignName)
222
+ subCampaigns.forEach(function (sub) {
223
+ var _a;
224
+ (_a = sub === null || sub === void 0 ? void 0 : sub.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
225
+ var hasSpot = false;
226
+ var adData = data
227
+ .filter(function (d) {
228
+ var _a;
229
+ return (d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
230
+ d.campaignAdId === ad.id);
231
+ })
232
+ // eslint-disable-next-line no-sequences
233
+ .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) {
234
+ var _a;
235
+ return (_a = {},
236
+ _a[v] = 0,
237
+ _a);
238
+ }), false), x.analyticEventSummaries.map(function (y) {
239
+ var _a;
240
+ return (_a = {},
241
+ _a[y.eventLabel] = y.total,
242
+ _a);
243
+ }), false)))); });
244
+ result.push({
245
+ columns: isShouldHeader
246
+ ? header
247
+ : Array(7).fill(''),
248
+ data: dataGroupByAd(adData, timelineType).map(function (d) { return __spreadArray([
249
+ ad === null || ad === void 0 ? void 0 : ad.name
250
+ ], d, true); }),
251
+ });
252
+ isShouldHeader = false;
253
+ });
254
+ });
255
+ return result;
256
+ }
257
+ exports.convertToExportByAd = convertToExportByAd;
167
258
  function placesToDomains(places, domains) {
168
259
  var _a, _b;
169
260
  if (domains === void 0) { domains = []; }
@@ -194,10 +285,24 @@ function placesToDomains(places, domains) {
194
285
  return groupDomain;
195
286
  }
196
287
  exports.placesToDomains = placesToDomains;
197
- var markBillingType = function (subCampaigns, data) { return data.map(function (x, index) {
198
- var _a = (0, lodash_1.get)(subCampaigns, [x.campaignGroupId - 1]), campaignGroup = _a.campaignGroup, ads = _a.ads;
199
- return __assign(__assign({}, x), { billingUnit: campaignGroup.billingUnit, isPot: campaignGroup.billingUnit === Enum_2.AnalyticType.AUTHENTICATION && (0, lodash_1.get)(ads, [x.campaignAdId - 1]).type === Enum_1.AdType.VIDEO });
200
- }); };
288
+ var markBillingType = function (subCampaigns, data) {
289
+ return data.map(function (x, index) {
290
+ var _a;
291
+ // eslint-disable-next-line eqeqeq
292
+ var _b = subCampaigns.find(function (c) { return c.campaignGroup.id == x.campaignGroupId; }), campaignGroup = _b.campaignGroup, ads = _b.ads;
293
+ return __assign(__assign(__assign({}, x), Object.assign.apply(Object, __spreadArray(__spreadArray([{}], Object.values(Enum_1.BaseEvent).map(function (v) {
294
+ var _a;
295
+ return (_a = {},
296
+ _a[v] = 0,
297
+ _a);
298
+ }), false), x.analyticEventSummaries.map(function (y) {
299
+ var _a;
300
+ return (_a = {},
301
+ _a[y.eventLabel] = y.total,
302
+ _a);
303
+ }), false))), { billingUnit: campaignGroup.billingUnit, billingUnitLabel: campaignGroup.billingUnitLabel || Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication], isSPot: ((_a = ads.find(function (ad) { return ad.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) === Enum_1.AdType.VIDEO && campaignGroup.billingUnitLabel === Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication] });
304
+ });
305
+ };
201
306
  exports.markBillingType = markBillingType;
202
307
  function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces) {
203
308
  var placeIds = selectedPlaces.map(function (p) { return p.placeId; });
@@ -209,20 +314,23 @@ function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces
209
314
  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 })); })) || [])) || [];
210
315
  (0, lodash_1.uniqBy)(
211
316
  // adPlaces.filter((p) => placeIds.includes(p.placeId)),
212
- placeIds.length ? adPlaces.filter(function (p) { return placeIds.includes(p.placeId); }) : adPlaces, 'placeId').forEach(function (place) {
317
+ placeIds.length
318
+ ? adPlaces.filter(function (p) { return placeIds.includes(p.placeId); })
319
+ : adPlaces, 'placeId').forEach(function (place) {
213
320
  var domain = selectedDomains.find(function (s) { return s.domainId === (place === null || place === void 0 ? void 0 : place.domainId); });
214
321
  var totalClick = data
215
322
  .filter(function (d) {
216
323
  var _a;
217
- return d.placeId === place.placeId
218
- && d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id)
219
- && d.campaignAdId === (ad === null || ad === void 0 ? void 0 : ad.id);
324
+ return d.placeId === place.placeId &&
325
+ d.campaignGroupId === ((_a = sub === null || sub === void 0 ? void 0 : sub.campaignGroup) === null || _a === void 0 ? void 0 : _a.id) &&
326
+ d.campaignAdId === (ad === null || ad === void 0 ? void 0 : ad.id);
220
327
  })
221
328
  .reduce(function (sum, d) {
222
329
  var _a;
223
330
  var event = (_a = d.analyticEventSummaries) === null || _a === void 0 ? void 0 : _a.find(function (_a) {
224
331
  var eventLabel = _a.eventLabel;
225
- return (eventLabel === Enum_1.BaseEvent[sub.campaignGroup.billingUnit]);
332
+ return eventLabel ===
333
+ Enum_1.BaseEvent[sub.campaignGroup.billingUnit];
226
334
  });
227
335
  return sum + ((event === null || event === void 0 ? void 0 : event.total) || 0);
228
336
  }, 0);
@@ -246,36 +354,114 @@ function convertToShowDetail(subCampaigns, data, selectedDomains, selectedPlaces
246
354
  }
247
355
  exports.convertToShowDetail = convertToShowDetail;
248
356
  function dataGroupByTimeline(place, data, timelineType) {
357
+ var isReLabel = data.some(function (d) { return d.billingUnitLabel !== Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication]; });
249
358
  var result = (0, lodash_1.chain)(data)
250
359
  .groupBy('timeline')
251
360
  .map(function (value, key) {
252
- console.log("value", value, value.filter(function (x) { return x.billingUnit === Enum_2.AnalyticType.AUTHENTICATION; }));
253
361
  var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
254
362
  ? 'DD/MM/YYYY'
255
363
  : 'DD/MM/YYYY, H:mm');
256
- // let impression = sumBy(value, BaseEvent[AnalyticType.VIEW])
257
- var impression = (0, lodash_1.sumBy)(value.filter(function (x) { return x.billingUnit === Enum_2.AnalyticType.VIEW; }), Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
258
- var click = (0, lodash_1.sumBy)(value.filter(function (x) { return x.billingUnit === Enum_2.AnalyticType.CLICK; }), Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]);
259
- var authen = (0, lodash_1.sumBy)(value.filter(function (x) { return x.billingUnit === Enum_2.AnalyticType.AUTHENTICATION; }), Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]);
260
- var arr = [place, dateString, impression, authen, click];
261
- return arr;
364
+ var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.View]);
365
+ var authen = value.reduce(function (sum, d) {
366
+ return (sum +
367
+ Number(d[Enum_1.BaseEvent[Number(d.billingUnit)]] || 0));
368
+ }, 0);
369
+ var output = [place, dateString, impression];
370
+ if (isReLabel)
371
+ output.push("", authen);
372
+ else
373
+ output.push(authen, "");
374
+ return output;
262
375
  })
263
376
  .value();
264
- var impr = (0, lodash_1.sumBy)(data.filter(function (x) { return x.billingUnit === Enum_2.AnalyticType.VIEW; }), Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]);
265
- var clk = (0, lodash_1.sumBy)(data.filter(function (x) { return x.billingUnit === Enum_2.AnalyticType.CLICK; }), Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]);
266
- var authen = (0, lodash_1.sumBy)(data.filter(function (x) { return x.billingUnit === Enum_2.AnalyticType.AUTHENTICATION; }), Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION]);
267
- result.push([
377
+ var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.View]);
378
+ var authenTotal = data.reduce(function (sum, d) {
379
+ return (sum + d[Enum_1.BaseEvent[Number(d.billingUnit)]]);
380
+ }, 0);
381
+ var totalArr = [
268
382
  place,
269
383
  i18n_1.default.t('Schedule.Total'),
270
- impr,
271
- authen,
272
- clk,
273
- (impr !== 0 ? (authen * 100) / impr : 0).toFixed(2),
274
- (impr !== 0 ? (clk * 100) / impr : 0).toFixed(2),
275
- ]);
384
+ impressionTotal,
385
+ ];
386
+ if (isReLabel)
387
+ totalArr.push("", authenTotal);
388
+ else
389
+ totalArr.push(authenTotal, "");
390
+ result.push(totalArr);
276
391
  return result;
277
392
  }
278
393
  exports.dataGroupByTimeline = dataGroupByTimeline;
394
+ function dataGroupByTimelineAndPlaces(place, province, district, data, timelineType) {
395
+ var result = (0, lodash_1.chain)(data)
396
+ .groupBy('timeline')
397
+ .map(function (chainValue, key) {
398
+ var value = chainValue.map(function (d) { return (__assign(__assign({}, d), { billingUnitLabel: d.billingUnitLabel || Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication] })); });
399
+ var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
400
+ ? 'DD/MM/YYYY'
401
+ : 'DD/MM/YYYY, H:mm');
402
+ var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.View]);
403
+ var authen = value.reduce(function (sum, d) {
404
+ return (sum +
405
+ (d.billingUnitLabel === Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication] ? Number(d[Enum_1.BaseEvent[Number(d.billingUnit)]] || 0) : 0));
406
+ }, 0);
407
+ var isAdReLabel = value.some(function (d) { return d.billingUnitLabel !== Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication]; });
408
+ var subReLabel = value.reduce(function (sum, d) {
409
+ return (sum +
410
+ (d.billingUnitLabel !== Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication] ? Number(d[Enum_1.BaseEvent[Number(d.billingUnit)]] || 0) : 0));
411
+ }, 0);
412
+ var output = [place, province, district, dateString, impression, !isAdReLabel ? authen : "", isAdReLabel ? subReLabel : ""];
413
+ return output;
414
+ })
415
+ .value();
416
+ var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.View]);
417
+ var authenTotal = result.reduce(function (sum, d) { return (sum + d[5] || 0); }, 0);
418
+ var subReLabelTotal = result.reduce(function (sum, d) { return (sum + d[6] || 0); }, 0);
419
+ var isReLabel = data.some(function (d) { return d.billingUnitLabel !== Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication]; });
420
+ var totalArr = [
421
+ place,
422
+ province,
423
+ district,
424
+ i18n_1.default.t('Schedule.Total'),
425
+ impressionTotal,
426
+ !isReLabel ? authenTotal : "",
427
+ isReLabel ? subReLabelTotal : "",
428
+ ];
429
+ result.push(totalArr);
430
+ return result;
431
+ }
432
+ exports.dataGroupByTimelineAndPlaces = dataGroupByTimelineAndPlaces;
433
+ function dataGroupByAd(data, timelineType) {
434
+ var isReLabel = data.some(function (d) { return d.billingUnitLabel !== Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication]; });
435
+ var result = (0, lodash_1.chain)(data)
436
+ .groupBy('timeline')
437
+ .map(function (value, key) {
438
+ var dateString = (0, Helpers_1.dateTimeToString)((0, Helpers_1.convertTimelineToDateTime)(key, timelineType), timelineType === Helpers_1.TIMELINE_TYPE.DAY
439
+ ? 'DD/MM/YYYY'
440
+ : 'DD/MM/YYYY, H:mm');
441
+ var impression = (0, lodash_1.sumBy)(value, Enum_1.BaseEvent[Enum_2.AnalyticType.View]);
442
+ var authen = value.reduce(function (sum, d) {
443
+ return (sum +
444
+ Number(d[Enum_1.BaseEvent[Number(d.billingUnit)]] || 0));
445
+ }, 0);
446
+ var output = [dateString, impression];
447
+ if (isReLabel)
448
+ output.push("", authen);
449
+ else
450
+ output.push(authen, "");
451
+ return output;
452
+ })
453
+ .value();
454
+ var impressionTotal = (0, lodash_1.sumBy)(data, Enum_1.BaseEvent[Enum_2.AnalyticType.View]);
455
+ var authenTotal = data.reduce(function (sum, d) { return (sum + d[Enum_1.BaseEvent[Number(d.billingUnit)]]); }, 0);
456
+ var totalArr = [i18n_1.default.t('Schedule.Total'), impressionTotal];
457
+ if (isReLabel)
458
+ totalArr.push("", authenTotal);
459
+ else
460
+ totalArr.push(authenTotal, "");
461
+ result.push(totalArr);
462
+ return result;
463
+ }
464
+ exports.dataGroupByAd = dataGroupByAd;
279
465
  function dataGroupByPlace(subCampaigns, ids) {
280
466
  return (0, lodash_1.chain)(subCampaigns.filter(function (sub) {
281
467
  var _a, _b, _c;
@@ -303,29 +489,52 @@ function dataGroupByPlace(subCampaigns, ids) {
303
489
  .value();
304
490
  }
305
491
  exports.dataGroupByPlace = dataGroupByPlace;
306
- var convertToChartData = function (data, campaignGroups) {
492
+ function campaignAnalyticInfo(subCampaigns) {
493
+ var isAllReLabel = subCampaigns.every(function (sub) { return sub.campaignGroup.billingUnitLabel && sub.campaignGroup.billingUnitLabel !== Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication]; });
494
+ return {
495
+ isAllReLabel: isAllReLabel,
496
+ analyticTypes: Array.from(new Set(subCampaigns.map(function (x) { return x.campaignGroup.billingUnit; }))),
497
+ hasSpot: isAllReLabel ? false : subCampaigns.some(function (sub) { return sub.ads.some(function (ad) { return ad.type === Enum_1.AdType.VIDEO; }) && (sub.campaignGroup.billingUnitLabel ? sub.campaignGroup.billingUnitLabel === Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication] : true); }),
498
+ hasEg: isAllReLabel ? false : subCampaigns.some(function (sub) { return sub.ads.some(function (ad) { return ad.type !== Enum_1.AdType.VIDEO; }) && (sub.campaignGroup.billingUnitLabel ? sub.campaignGroup.billingUnitLabel === Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication] : true); }),
499
+ hasClick: subCampaigns.filter(function (s) { return s.campaignGroup.billingUnitLabel && (Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication] !== s.campaignGroup.billingUnitLabel); }).length > 0,
500
+ };
501
+ }
502
+ exports.campaignAnalyticInfo = campaignAnalyticInfo;
503
+ var convertToChartData = function (data, campaignGroups, time) {
307
504
  var _a;
308
- 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) {
505
+ var timelineType = 'YYYYMMDD';
506
+ var convertData = Object.assign.apply(Object, __spreadArray([{}], [Enum_1.BaseEvent[Enum_2.AnalyticType.View], 'Spot', 'Engagement', Enum_1.BaseEvent[Enum_2.AnalyticType.Click]].map(function (x) {
309
507
  var _a;
310
- return (_a = {}, _a[x] = { total: 0, chartData: [] }, _a);
508
+ return (_a = {},
509
+ _a[x] = { total: 0, chartData: [] },
510
+ _a);
311
511
  }), false));
312
- var startDate = Number.MAX_SAFE_INTEGER;
313
- var endDate = 0;
314
512
  data.forEach(function (x) {
315
513
  var _a;
316
- startDate = Math.min(startDate, Number(x.timeline));
317
- endDate = Math.max(endDate, Number(x.timeline));
514
+ if (String(x.timeline).length === 10) {
515
+ timelineType = 'YYYYMMDDHH';
516
+ }
318
517
  var subCampaign = campaignGroups.find(function (c) { return c.campaignGroup.id === x.campaignGroupId; });
319
518
  if (!subCampaign)
320
519
  return;
321
- var billingUnit = subCampaign.campaignGroup.billingUnit;
322
- var hasAuthen = billingUnit === Enum_2.AnalyticType.AUTHENTICATION;
323
- 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;
520
+ var _b = subCampaign.campaignGroup, billingUnit = _b.billingUnit, billingUnitLabel = _b.billingUnitLabel;
521
+ var isSpot = ((_a = subCampaign.ads.find(function (s) { return s.id === x.campaignAdId; })) === null || _a === void 0 ? void 0 : _a.type) ===
522
+ Enum_1.AdType.VIDEO;
324
523
  var timeline = x.timeline.toString();
325
524
  x.analyticEventSummaries.forEach(function (event) {
326
525
  var _a;
327
- if ([Enum_1.BaseEvent[billingUnit], Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]].includes(event.eventLabel)) {
328
- var objKey = event.eventLabel === Enum_1.BaseEvent[Enum_2.AnalyticType.AUTHENTICATION] ? isSpot ? 'Spot' : 'Engagement' : event.eventLabel;
526
+ if ([Enum_1.BaseEvent[billingUnit], Enum_1.BaseEvent[Enum_2.AnalyticType.View]].includes(event.eventLabel)) {
527
+ var objKey = [
528
+ Enum_1.BaseEvent[Enum_2.AnalyticType.Authentication],
529
+ Enum_1.BaseEvent[Enum_2.AnalyticType.Click],
530
+ ].includes(event.eventLabel)
531
+ ? isSpot
532
+ ? 'Spot'
533
+ : 'Engagement'
534
+ : event.eventLabel;
535
+ if (billingUnitLabel && billingUnitLabel !== Enum_2.AnalyticType[Enum_2.AnalyticType.Authentication] && event.eventLabel !== Enum_1.BaseEvent[Enum_2.AnalyticType.View]) {
536
+ objKey = Enum_1.BaseEvent[Enum_2.AnalyticType.Click];
537
+ }
329
538
  (_a = convertData[objKey]) === null || _a === void 0 ? void 0 : _a.chartData.push({
330
539
  y: event.total,
331
540
  x: timeline,
@@ -337,30 +546,34 @@ var convertToChartData = function (data, campaignGroups) {
337
546
  });
338
547
  });
339
548
  var translate = (_a = {},
340
- _a[Enum_1.BaseEvent[Enum_2.AnalyticType.VIEW]] = 'Common.Impression',
341
- _a[Enum_1.BaseEvent[Enum_2.AnalyticType.CLICK]] = 'Statistics.NumberOfConnections',
342
- _a['Spot'] = 'Campaign.Spot',
343
- _a['Engagement'] = 'Campaign.Engagement',
549
+ _a[Enum_1.BaseEvent[Enum_2.AnalyticType.View]] = 'Common.Impression',
550
+ _a.Spot = 'Campaign.Spot',
551
+ _a.Engagement = 'Campaign.Engagement',
552
+ _a.Click = 'Common.FinalClick',
344
553
  _a);
345
- return Object.entries(convertData).map(function (_a, index) {
554
+ var analyticInfo = campaignAnalyticInfo(campaignGroups);
555
+ return Object.entries(convertData)
556
+ .map(function (_a, index) {
346
557
  var key = _a[0], value = _a[1];
347
- 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();
348
- if (data.some(function (_a) {
349
- var y = _a.y;
350
- return Number(y) !== 0;
351
- })) {
352
- return {
353
- label: "".concat(i18n_1.default.t(translate[key]), " ").concat((0, Helpers_1.roundDecimalNumber)(value.total)),
354
- type: 'line',
355
- data: (0, Helpers_1.fillMissingDates)(data, startDate, endDate),
356
- fill: false,
357
- pointStyle: 'circle',
358
- yAxisID: 'y',
359
- variant: String(index),
360
- };
361
- }
362
- return {};
363
- }).filter(function (o) { return Object.values(o).length; });
558
+ if ((key === 'Spot' && !analyticInfo.hasSpot) ||
559
+ (key === 'Engagement' && !analyticInfo.hasEg) ||
560
+ (key === 'Click' && !analyticInfo.hasClick))
561
+ return false;
562
+ var data = (0, lodash_1.default)(value.chartData)
563
+ .groupBy('x')
564
+ .map(function (value, key) { return ({ x: key, y: (0, lodash_1.sumBy)(value, 'y') }); })
565
+ .value();
566
+ return {
567
+ label: "".concat(i18n_1.default.t(translate[key]), " ").concat((0, Helpers_1.roundDecimalNumber)(value.total)),
568
+ type: 'line',
569
+ data: (0, Helpers_1.fillMissingDates)(data, time.startDate, time.endDate, timelineType),
570
+ fill: false,
571
+ pointStyle: 'circle',
572
+ yAxisID: 'y',
573
+ variant: key,
574
+ };
575
+ })
576
+ .filter(Boolean);
364
577
  };
365
578
  exports.convertToChartData = convertToChartData;
366
579
  function groupBy(array, key) {
@@ -72,6 +72,6 @@ var Analytic = function (props) {
72
72
  };
73
73
  return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(ChartFilter_1.default, { subCampaigns: subCampaigns, queryInput: queryInput, onChangeQueryInput: changeQueryInput, onQueryData: queryData, isExportType: true, onExportData: function (exportType) {
74
74
  return exportData(queryInput.time, queryInput.placeIds, queryInput.timelineType, exportType, queryInput.ids);
75
- }, domains: domains }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, style: { marginTop: '20px' }, children: isLoading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(ChartWithType_1.default, { statisticalData: statisticalData, subCampaigns: subCampaigns, ids: queryInput.ids, onCampaignAdGroupIdChange: handleChangeAdGroupId, statisticType: queryInput.statisticType, setStatisticType: changeStatisticType, timelineType: queryInput.timelineType, setTimelineType: changeTimelineType })) })] }));
75
+ }, domains: domains }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, style: { marginTop: '20px' }, children: isLoading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(ChartWithType_1.default, { statisticalData: statisticalData, subCampaigns: subCampaigns, ids: queryInput.ids, onCampaignAdGroupIdChange: handleChangeAdGroupId, statisticType: queryInput.statisticType, setStatisticType: changeStatisticType, timelineType: queryInput.timelineType, setTimelineType: changeTimelineType, time: queryInput.time })) })] }));
76
76
  };
77
77
  exports.default = Analytic;
@@ -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;