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,11 +46,21 @@ var react_1 = __importStar(require("react"));
46
46
  var Context_1 = __importDefault(require("../Context"));
47
47
  var Util_1 = require("./Util");
48
48
  var component_1 = __importDefault(require("./component"));
49
+ var recoil_1 = require("recoil");
50
+ var Recoils_1 = require("../../Recoils");
51
+ var PasswordDialog_1 = __importDefault(require("./PasswordDialog"));
52
+ var react_i18next_1 = require("react-i18next");
53
+ var i18n_1 = __importDefault(require("../../../../../i18n"));
49
54
  var EventContainer = function (props) {
50
55
  var campaignId = props.campaignId, startDate = props.startDate, endDate = props.endDate, subCampaigns = props.subCampaigns, domains = props.domains;
51
56
  var client = (0, Context_1.default)().services;
52
57
  var _a = react_1.default.useState(true), isLoading = _a[0], setIsLoading = _a[1];
53
58
  var _b = react_1.default.useState([]), eventData = _b[0], setEventData = _b[1];
59
+ var _c = react_1.default.useState(false), openPasswordDialog = _c[0], setOpenPasswordDialog = _c[1];
60
+ var _d = react_1.default.useState(null), currentExportParams = _d[0], setCurrentExportParams = _d[1];
61
+ var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
62
+ var _e = react_1.default.useState(undefined), errrorExport = _e[0], setErrorExport = _e[1];
63
+ var campaignInfo = (0, recoil_1.useRecoilValue)(Recoils_1.campaignState);
54
64
  var placesOfCampaign = (0, react_1.useMemo)(function () {
55
65
  var result = [];
56
66
  subCampaigns.forEach(function (sub) {
@@ -73,9 +83,7 @@ var EventContainer = function (props) {
73
83
  startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
74
84
  endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
75
85
  timelineType: Enum_2.TimelineType.Day,
76
- campaignAdGroups: [
77
- __assign({ campaignId: campaignId }, ids),
78
- ],
86
+ campaignAdGroups: [__assign({ campaignId: campaignId }, ids)],
79
87
  analyticGroupBies: [
80
88
  Enum_2.AnalyticGroupBy.GbEventLabel,
81
89
  Enum_2.AnalyticGroupBy.GbTimeline,
@@ -86,26 +94,69 @@ var EventContainer = function (props) {
86
94
  .then(function (res) { return setEventData((0, Util_1.convertEventData)(res)); })
87
95
  .finally(function () { return setIsLoading(false); });
88
96
  };
89
- var exportData = function (time, placeIds, ids) {
90
- var places = placeIds.length ? placesOfCampaign.filter(function (p) {
91
- return placeIds.includes(p.placeId);
92
- }) : placesOfCampaign;
93
- client
97
+ // Hàm này được tách riêng để có thể gọi từ callback của PasswordDialog
98
+ var handleExportWithParams = function (time, placeIds, ids, campaignPassword) {
99
+ var places = placeIds.length
100
+ ? placesOfCampaign.filter(function (p) { return placeIds.includes(p.placeId); })
101
+ : placesOfCampaign;
102
+ return client
94
103
  .campaignStatisticGetEvents({
95
104
  startDate: (0, moment_1.default)(time.startDate).format(Enum_1.DATE_FORMAT),
96
105
  endDate: (0, moment_1.default)(time.endDate).format(Enum_1.DATE_FORMAT),
97
106
  timelineType: Enum_2.TimelineType.Day,
98
- campaignAdGroups: [
99
- __assign({ campaignId: campaignId }, ids),
100
- ],
107
+ campaignAdGroups: [__assign({ campaignId: campaignId }, ids)],
101
108
  analyticGroupBies: Object.values(Enum_2.AnalyticGroupBy).filter(function (g) { return !isNaN(Number(g)); }),
102
109
  ignoredEventLabels: Object.values(Enum_1.BaseEvent),
103
110
  placeIds: placeIds,
111
+ campaignPasswords: [
112
+ {
113
+ campaignId: campaignId,
114
+ password: campaignPassword,
115
+ },
116
+ ],
104
117
  })
105
118
  .then(function (res) {
119
+ setOpenPasswordDialog(false);
120
+ setErrorExport(undefined); // Reset error message on successful export
106
121
  (0, exportFile_1.downloadWithDataSet)("export_analytic_event_campaign_".concat(campaignId), (0, Util_1.convertToExportData)(res, places));
122
+ })
123
+ .catch(function (error) {
124
+ var _a;
125
+ if ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data.includes('Invalid password')) {
126
+ setErrorExport(t('Campaign.Password.ErrorMessage'));
127
+ }
107
128
  });
108
129
  };
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 }));
130
+ var exportData = function (time, placeIds, ids) {
131
+ // Lưu lại các tham số xuất dữ liệu để sử dụng sau khi xác thực mật khẩu
132
+ setCurrentExportParams({ time: time, placeIds: placeIds, ids: ids });
133
+ // Check if campaign has password protection
134
+ if ((campaignInfo === null || campaignInfo === void 0 ? void 0 : campaignInfo.password) && campaignInfo.hasPassword) {
135
+ setOpenPasswordDialog(true);
136
+ // Return a promise that will be resolved by the dialog callbacks
137
+ return new Promise(function (resolve) {
138
+ // This promise will be handled by the dialog callbacks
139
+ // The actual export will happen in the onConfirm callback if password is correct
140
+ resolve(true);
141
+ });
142
+ }
143
+ else {
144
+ // No password required
145
+ return handleExportWithParams(time, placeIds, ids);
146
+ }
147
+ };
148
+ // Xử lý khi xác nhận mật khẩu thành công
149
+ var handlePasswordConfirm = function (password) {
150
+ // setOpenPasswordDialog(false)
151
+ if (password && currentExportParams) {
152
+ var time = currentExportParams.time, placeIds = currentExportParams.placeIds, ids = currentExportParams.ids;
153
+ handleExportWithParams(time, placeIds, ids, password);
154
+ }
155
+ };
156
+ var resetErrorExport = function () {
157
+ if (errrorExport) // Only reset if there is an error
158
+ setErrorExport(undefined);
159
+ };
160
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(component_1.default, { startDate: startDate, endDate: endDate, subCampaigns: subCampaigns, isLoading: isLoading, eventData: eventData, getEventData: getEventData, exportData: exportData, domains: domains }), (0, jsx_runtime_1.jsx)(PasswordDialog_1.default, { open: openPasswordDialog, onConfirm: handlePasswordConfirm, onCancel: function () { return setOpenPasswordDialog(false); }, errorExport: errrorExport, resetErrorExport: resetErrorExport })] }));
110
161
  };
111
162
  exports.default = EventContainer;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  interface Props {
3
3
  onSubmit: (value: string) => void;
4
+ loading?: boolean;
4
5
  }
5
6
  declare const SplitButtonExportType: React.FC<Props>;
6
7
  export default SplitButtonExportType;
@@ -20,13 +20,25 @@ var material_1 = require("@mui/material");
20
20
  var ArrowDropDown_1 = __importDefault(require("@mui/icons-material/ArrowDropDown"));
21
21
  var common_1 = require("./common");
22
22
  var react_i18next_1 = require("react-i18next");
23
- var options = Object.values(common_1.EXPORT_TYPES).map(function (type, idx) { return type; });
23
+ var i18n_1 = __importDefault(require("../../../../i18n"));
24
+ var lab_1 = require("@mui/lab");
25
+ var Context_1 = __importDefault(require("./Context"));
24
26
  var SplitButtonExportType = function (props) {
25
- var onSubmit = props.onSubmit;
27
+ var onSubmit = props.onSubmit, loading = props.loading;
28
+ var services = (0, Context_1.default)().services;
26
29
  var _a = react_1.default.useState(false), open = _a[0], setOpen = _a[1];
27
30
  var anchorRef = react_1.default.useRef(null);
28
31
  var _b = react_1.default.useState(0), selectedIndex = _b[0], setSelectedIndex = _b[1];
29
- var t = (0, react_i18next_1.useTranslation)().t;
32
+ var options = react_1.default.useMemo(function () {
33
+ return Object.values(common_1.EXPORT_TYPES)
34
+ .map(function (type, idx) { return type; })
35
+ .filter(function (type) {
36
+ return services.domainsGetAll ? true : type !== 'Domain';
37
+ });
38
+ },
39
+ // eslint-disable-next-line react-hooks/exhaustive-deps
40
+ []);
41
+ var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
30
42
  var handleClick = function () {
31
43
  onSubmit(options[selectedIndex]);
32
44
  };
@@ -49,8 +61,9 @@ var SplitButtonExportType = function (props) {
49
61
  Domain: t("Campaign.ExportType.Domain"),
50
62
  Location: t('Campaign.ExportType.Location'),
51
63
  LocationGroup: t('Campaign.ExportType.LocationGroup'),
64
+ Ad: t('Campaign.ExportType.Ad'),
52
65
  };
53
- return ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, direction: "column", alignItems: "center", children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, xs: 12, children: [(0, jsx_runtime_1.jsxs)(material_1.ButtonGroup, { variant: "outlined", color: "inherit", ref: anchorRef, "aria-label": "split button", children: [(0, jsx_runtime_1.jsx)(material_1.Button, { onClick: handleClick, children: translationText[options[selectedIndex]] }), (0, jsx_runtime_1.jsx)(material_1.Button, { size: "small", "aria-controls": open ? 'split-button-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-label": "select merge strategy", "aria-haspopup": "menu", onClick: handleToggle, children: (0, jsx_runtime_1.jsx)(ArrowDropDown_1.default, {}) })] }), (0, jsx_runtime_1.jsx)(material_1.Popper, { style: { zIndex: 99999 }, open: open, anchorEl: anchorRef.current, transition: true, children: function (_a) {
66
+ return ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, direction: "column", alignItems: "center", children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, xs: 12, children: [(0, jsx_runtime_1.jsxs)(material_1.ButtonGroup, { disabled: loading, variant: "outlined", color: "inherit", ref: anchorRef, "aria-label": "split button", children: [(0, jsx_runtime_1.jsx)(lab_1.LoadingButton, { variant: 'outlined', onClick: handleClick, loading: loading, children: translationText[options[selectedIndex]] }), (0, jsx_runtime_1.jsx)(material_1.Button, { size: "small", "aria-controls": open ? 'split-button-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-label": "select merge strategy", "aria-haspopup": "menu", onClick: handleToggle, children: (0, jsx_runtime_1.jsx)(ArrowDropDown_1.default, {}) })] }), (0, jsx_runtime_1.jsx)(material_1.Popper, { style: { zIndex: 99999 }, open: open, anchorEl: anchorRef.current, transition: true, children: function (_a) {
54
67
  var TransitionProps = _a.TransitionProps, placement = _a.placement;
55
68
  return ((0, jsx_runtime_1.jsx)(material_1.Grow, __assign({}, TransitionProps, { style: {
56
69
  transformOrigin: placement === 'bottom'
@@ -2,6 +2,7 @@
2
2
  import { CampaignGroupModel, PlaceFilter } from '../../../../ACM-AXN/Campaign/Types';
3
3
  import { ShareType } from '../../../../ACM-AXN/Common/Enum';
4
4
  import { IStatisticDTO, Timestamp } from '../../../../ACM-AXN/Common/Types';
5
+ import { AdministrativeUnitType } from '../../../../ACM-AXN/Page/enums';
5
6
  import { BaseChartComponent } from 'react-chartjs-2/dist/types';
6
7
  export interface IAudienceObjectOverview {
7
8
  timeline?: number;
@@ -81,6 +82,12 @@ export type DateRange = {
81
82
  startDate: Date;
82
83
  endDate: Date;
83
84
  };
85
+ export type AdministrativeUnit = {
86
+ code?: string | undefined;
87
+ parentUnitCode?: string | undefined;
88
+ name?: string | undefined;
89
+ type?: AdministrativeUnitType;
90
+ };
84
91
  export interface CampaignAnalyticService {
85
92
  campaignStatisticGetEvents(body: IStatisticDTO | undefined): Promise<AnalyticEvent[]>;
86
93
  campaignStatisticGetCustomer(startDate: string | undefined, endDate: string | undefined, campaignId: string | undefined): Promise<AudienceObjectReply>;
@@ -88,12 +95,15 @@ export interface CampaignAnalyticService {
88
95
  domainsGetAll?: () => Promise<IDomain[]>;
89
96
  placesGetPagingByPlaceFilter: (pageIndex?: number, pageSize?: number, body?: PlaceFilter) => Promise<any>;
90
97
  placesGetByPlaceFilter: (body?: PlaceFilter) => Promise<any[]>;
98
+ administrativeUnitsGet: () => Promise<AdministrativeUnit[]>;
91
99
  }
92
100
  export interface CampaignAnalyticProps {
93
101
  placeMultiSelectComponent: (p?: any) => JSX.Element;
102
+ fullPlaces?: AdministrativeUnit[];
94
103
  chart: BaseChartComponent;
95
104
  services: CampaignAnalyticService;
96
105
  campaignId: string;
106
+ campaignName?: string;
97
107
  isNetwork?: boolean;
98
108
  subCampaigns: CampaignGroupModel[];
99
109
  }
@@ -27,7 +27,10 @@ var getTime = function (subCampaigns) {
27
27
  exports.getTime = getTime;
28
28
  var extractEvent = function (eventLabel) {
29
29
  if (eventLabel === void 0) { eventLabel = ''; }
30
- var _a = eventLabel.match(/^(\d+)_([\s\S]*)$/) || [], view = _a[1], eventName = _a[2];
30
+ if (!eventLabel) {
31
+ throw new Error('Event label is required');
32
+ }
33
+ var _a = eventLabel.match(/^(\d+)_([\s\S]*)$/) || ['', '1', eventLabel], view = _a[1], eventName = _a[2];
31
34
  return { view: view, eventName: eventName };
32
35
  };
33
36
  exports.extractEvent = extractEvent;
@@ -3,4 +3,5 @@ export declare const EXPORT_TYPES: {
3
3
  Domain: string;
4
4
  LocationGroup: string;
5
5
  Location: string;
6
+ Ad: string;
6
7
  };
@@ -4,6 +4,7 @@ exports.EXPORT_TYPES = void 0;
4
4
  exports.EXPORT_TYPES = {
5
5
  Export: "Export",
6
6
  Domain: "Domain",
7
- LocationGroup: "LocationGroup",
8
- Location: "Location",
7
+ LocationGroup: "LocationGroup", // Chiến dịch con
8
+ Location: "Location", // Địa điểm
9
+ Ad: "Ad" // Quảng cáo
9
10
  };
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  var jsx_runtime_1 = require("react/jsx-runtime");
4
7
  var react_i18next_1 = require("react-i18next");
5
8
  var material_1 = require("@mui/material");
6
9
  var react_1 = require("react");
7
10
  var container_1 = require("./container");
11
+ var i18n_1 = __importDefault(require("../../../../i18n"));
8
12
  var color = ['inherit', 'primary'];
9
13
  var variant = ['outlined', 'contained'];
10
14
  var TabStatistic = function (props) {
11
- var t = (0, react_i18next_1.useTranslation)().t;
15
+ var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18n_1.default }).t;
12
16
  var tabIndex = props.tabIndex, onChangeTab = props.onChangeTab, tabPanel = props.tabPanel, isNetwork = props.isNetwork;
13
17
  var translationText = (0, react_1.useMemo)(function () { return ({
14
18
  analytic: t('Campaign.Analytic'),
@@ -19,7 +23,7 @@ var TabStatistic = function (props) {
19
23
  var handleChangeTab = function (event) {
20
24
  onChangeTab(Number(event.target.tabIndex));
21
25
  };
22
- return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, sx: { padding: function (theme) { return theme.spacing(2); } }, className: "ahihu", children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", sx: {
26
+ return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, sx: { padding: function (theme) { return theme.spacing(2); } }, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", sx: {
23
27
  marginTop: function (theme) { return theme.spacing(1); },
24
28
  marginLeft: function (theme) { return theme.spacing(2); },
25
29
  }, children: translationText.title }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.ButtonGroup, { sx: {
@@ -39,13 +39,42 @@ var Context_1 = __importStar(require("./Context"));
39
39
  var Hooks_1 = require("../../../../AWING/Hooks");
40
40
  exports.tabs = { ANALYTIC: 0, EVENT: 1, CUSTOMER: 2 };
41
41
  function TabStatisticsContainer() {
42
- var _a = (0, Context_1.default)(), client = _a.services, campaignId = _a.campaignId, subCampaigns = _a.subCampaigns, isNetwork = _a.isNetwork;
42
+ var _a = (0, Context_1.default)(), client = _a.services, campaignId = _a.campaignId, subCampaigns = _a.subCampaigns, isNetwork = _a.isNetwork, campaignName = _a.campaignName, fullPlaces = _a.fullPlaces;
43
43
  var _b = (0, react_1.useState)(exports.tabs.ANALYTIC), tabIndex = _b[0], setTabIndex = _b[1];
44
44
  var time = (0, react_1.useMemo)(function () { return (0, Utils_1.getTime)(subCampaigns); }, [subCampaigns]);
45
+ var _c = (0, Hooks_1.useGetData)([], function () {
46
+ return client.domainsGetAll
47
+ ? client === null || client === void 0 ? void 0 : client.domainsGetAll().then(function (res) {
48
+ var campaignDomains = [];
49
+ subCampaigns.forEach(function (s) {
50
+ var _a;
51
+ (_a = s === null || s === void 0 ? void 0 : s.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
52
+ var _a;
53
+ (_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.forEach(function (p) {
54
+ var _a;
55
+ var idx = campaignDomains.findIndex(function (c) { return c.domainId === p.domainId; });
56
+ if (idx > -1) {
57
+ campaignDomains[idx].places.push(p);
58
+ }
59
+ else {
60
+ var domainName = (_a = res.find(function (d) { return d.domainId === p.domainId; })) === null || _a === void 0 ? void 0 : _a.name;
61
+ campaignDomains.push({
62
+ domainId: p.domainId,
63
+ domainName: domainName,
64
+ places: [p],
65
+ });
66
+ }
67
+ });
68
+ });
69
+ });
70
+ return campaignDomains;
71
+ })
72
+ : Promise.resolve([]);
73
+ }), isLoading = _c.isLoading, data = _c.data;
45
74
  var tabPanel = function () {
46
75
  switch (tabIndex) {
47
76
  case exports.tabs.ANALYTIC:
48
- return ((0, jsx_runtime_1.jsx)(Analytic_1.default, { campaignId: campaignId, subCampaigns: subCampaigns, startDate: time.startDate, endDate: time.endDate, domains: data }));
77
+ return ((0, jsx_runtime_1.jsx)(Analytic_1.default, { campaignId: campaignId, subCampaigns: subCampaigns, startDate: time.startDate, endDate: time.endDate, domains: data, campaignName: campaignName, fullPlaces: fullPlaces }));
49
78
  case exports.tabs.EVENT:
50
79
  return ((0, jsx_runtime_1.jsx)(Event_1.default, { campaignId: campaignId, startDate: time.startDate, endDate: time.endDate, subCampaigns: subCampaigns, domains: data }));
51
80
  case exports.tabs.CUSTOMER:
@@ -54,33 +83,6 @@ function TabStatisticsContainer() {
54
83
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
55
84
  }
56
85
  };
57
- var _c = (0, Hooks_1.useGetData)([], function () {
58
- return client.domainsGetAll ? client === null || client === void 0 ? void 0 : client.domainsGetAll().then(function (res) {
59
- var campaignDomains = [];
60
- subCampaigns.forEach(function (s) {
61
- var _a;
62
- (_a = s === null || s === void 0 ? void 0 : s.ads) === null || _a === void 0 ? void 0 : _a.forEach(function (ad) {
63
- var _a;
64
- (_a = ad === null || ad === void 0 ? void 0 : ad.places) === null || _a === void 0 ? void 0 : _a.forEach(function (p) {
65
- var _a;
66
- var idx = campaignDomains.findIndex(function (c) { return c.domainId === p.domainId; });
67
- if (idx > -1) {
68
- campaignDomains[idx].places.push(p);
69
- }
70
- else {
71
- var domainName = (_a = res.find(function (d) { return d.domainId === p.domainId; })) === null || _a === void 0 ? void 0 : _a.name;
72
- campaignDomains.push({
73
- domainId: p.domainId,
74
- domainName: domainName,
75
- places: [p],
76
- });
77
- }
78
- });
79
- });
80
- });
81
- return campaignDomains;
82
- }) : Promise.resolve([]);
83
- }), isLoading = _c.isLoading, data = _c.data;
84
86
  var handleChangeTab = function (newValue) {
85
87
  setTabIndex(newValue);
86
88
  };
@@ -348,7 +348,7 @@ function AdList(props) {
348
348
  } }, idx));
349
349
  }) })] })] }), open &&
350
350
  (0, jsx_runtime_1.jsx)(PreviewButton_1.default, { anchorEl: anchorEl, open: open, domainIds: previewId.domainIds, handlePreviewClose: handlePreviewClose, handlePreviewDomain: function (event, domainId) {
351
- handlePreview(event, ads.find(function (x) { return x.loginId === previewId.loginId; }), domainId);
351
+ handlePreview(event, ads.find(function (x) { return x.loginId === previewId.loginId && x.welcomeId === previewId.welcomeId; }), domainId);
352
352
  // handlePreview(previewId, domainId)
353
353
  }, service: service })] }));
354
354
  }
@@ -200,6 +200,6 @@ function AdRow(props) {
200
200
  paddingBottom: 0,
201
201
  paddingTop: 0,
202
202
  borderBottomWidth: open ? 1 : 0,
203
- }, colSpan: 3, children: (0, jsx_runtime_1.jsx)(material_1.Collapse, { in: open, timeout: "auto", unmountOnExit: true, children: (0, jsx_runtime_1.jsx)(material_1.Box, { margin: 1, children: (0, jsx_runtime_1.jsx)(AdDetail_1.default, __assign({ ad: ad, onChange: onChange }, other)) }) }) })] })] }));
203
+ }, colSpan: 3, children: (0, jsx_runtime_1.jsx)(material_1.Collapse, { in: open, timeout: "auto", unmountOnExit: true, children: (0, jsx_runtime_1.jsx)(material_1.Box, { margin: 1, sx: { height: '416px' }, children: (0, jsx_runtime_1.jsx)(AdDetail_1.default, __assign({ ad: ad, onChange: onChange }, other)) }) }) })] })] }));
204
204
  }
205
205
  exports.default = AdRow;
@@ -35,7 +35,6 @@ var LimitEvent = function (props) {
35
35
  var _a;
36
36
  onChange(__assign(__assign({}, rule), (_a = {}, _a[fieldName] = fieldValue, _a)));
37
37
  };
38
- console.log("rule", rule);
39
38
  var _g = (0, Hooks_2.useGetData)([loginPageIds], service.pagesGetPageViewEventByPageIds), data = _g.data, isLoading = _g.isLoading;
40
39
  var eventSelected = react_1.default.useMemo(function () {
41
40
  return (0, lodash_1.default)(data)
@@ -79,7 +78,7 @@ var LimitEvent = function (props) {
79
78
  return handleChangeParameter('eventLabel', e.target.value);
80
79
  }, error: valids && !valids.eventLabel, helperText: valids && !valids.eventLabel
81
80
  ? translationText.helperText
82
- : '', children: Object.keys(eventSelected).map(function (event, index) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: event, children: event }, index)); }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "viewNumber", name: "viewNumber", variant: "standard", disabled: !((_c = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _c === void 0 ? void 0 : _c.eventLabel), required: true, select: true, fullWidth: true, label: translationText.viewNumber, value: (_e = (_d = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _d === void 0 ? void 0 : _d.viewNumber) !== null && _e !== void 0 ? _e : '', onChange: function (e) {
81
+ : '', children: Object.keys(eventSelected).map(function (event, index) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: event, children: event }, index)); }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { id: "viewNumber", name: "viewNumber", variant: "standard", disabled: !((_c = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _c === void 0 ? void 0 : _c.eventLabel), required: true, select: true, fullWidth: true, label: translationText.viewNumber, value: (_e = (_d = rule === null || rule === void 0 ? void 0 : rule.parameter) === null || _d === void 0 ? void 0 : _d.viewNumber) !== null && _e !== void 0 ? _e : "", onChange: function (e) {
83
82
  return handleChangeParameter('viewNumber', e.target.value);
84
83
  }, error: valids && !valids.viewNumber, helperText: valids && !valids.viewNumber
85
84
  ? translationText.helperText
@@ -39,9 +39,9 @@ var TargetOSContainer = function (props) {
39
39
  if (!rule ||
40
40
  !osVerList.some(function (x) { return x.value === rule.value; }) ||
41
41
  !osVerList.some(function (x) { return x.osName === rule.parameter.os; })) {
42
- onChange(__assign(__assign({}, rule), { value: osVerList[0].value, parameter: JSON.stringify({
42
+ onChange(__assign(__assign({}, rule), { value: osVerList[0].value, parameter: {
43
43
  os: osVerList[0].osName,
44
- }) }));
44
+ } }));
45
45
  }
46
46
  });
47
47
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -180,6 +180,7 @@ var Advanced = function (props) {
180
180
  type: {
181
181
  LimitView: t('Campaign.RuleType.LimitView'),
182
182
  LimitClick: t('Campaign.RuleType.LimitClick'),
183
+ Authentication: t('Campaign.RuleType.Engagement'),
183
184
  LimitEvent: t('Campaign.RuleType.LimitEvent'),
184
185
  TargetGender: t('Campaign.RuleType.TargetGender'),
185
186
  TargetAge: t('Campaign.RuleType.TargetAge'),
@@ -189,7 +190,6 @@ var Advanced = function (props) {
189
190
  RetargetPlace: t('Campaign.RuleType.RetargetPlace'),
190
191
  RetargetDomain: t('Campaign.RuleType.RetargetDomain'),
191
192
  RetargetMacAddress: t('Campaign.RuleType.RetargetMacAddress'),
192
- Authentication: t('Campaign.RuleType.Engagement'),
193
193
  },
194
194
  };
195
195
  var handleSubmit = function () {
@@ -77,11 +77,11 @@ function EditAds(props) {
77
77
  label: t('Campaign.Ad.Time'),
78
78
  required: true,
79
79
  },
80
- {
81
- fieldName: 'isReserved',
82
- type: 'checkbox',
83
- label: t('Campaign.Ad.Reserved'),
84
- },
80
+ // {
81
+ // fieldName: 'isReserved',
82
+ // type: 'checkbox',
83
+ // label: t('Campaign.Ad.Reserved'),
84
+ // },
85
85
  {
86
86
  fieldName: 'placeFilter',
87
87
  type: 'text',