awing-library 2.1.128-beta → 2.1.128

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 (217) hide show
  1. package/lib/ACM-AXN/Campaign/Container.js +52 -54
  2. package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
  3. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +8 -1
  4. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +27 -3
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +17 -0
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +121 -0
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +1 -0
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +219 -0
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.d.ts +2 -0
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.js +306 -0
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.d.ts +1 -0
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.js +230 -0
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +1 -0
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +123 -0
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.d.ts +1 -0
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +253 -0
  17. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +2 -2
  18. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.d.ts +1 -1
  19. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.js +47 -78
  20. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +6 -1
  21. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +3 -22
  22. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +2 -1
  23. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +2 -3
  24. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +22 -43
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +321 -103
  26. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +1 -1
  27. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
  28. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +122 -58
  29. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
  30. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
  31. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +11 -8
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +13 -19
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +7 -0
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +98 -0
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +35 -70
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +26 -8
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -32
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +5 -2
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +2 -2
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts +8 -0
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js +47 -0
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +52 -6
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.d.ts +1 -0
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.js +3 -1
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.d.ts +4 -3
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +13 -7
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.d.ts +1 -1
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +75 -123
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +8 -3
  64. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  65. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  66. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  67. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  68. package/lib/ACM-AXN/Campaign/Enum.d.ts +23 -4
  69. package/lib/ACM-AXN/Campaign/Enum.js +30 -10
  70. package/lib/ACM-AXN/Campaign/Types.d.ts +52 -6
  71. package/lib/ACM-AXN/Campaign/Utils.d.ts +5 -0
  72. package/lib/ACM-AXN/Campaign/Utils.js +29 -2
  73. package/lib/ACM-AXN/Campaign/index.js +2 -2
  74. package/lib/ACM-AXN/CampaignPlan/Container.js +21 -10
  75. package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
  76. package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
  77. package/lib/ACM-AXN/CampaignPlan/Detail.js +5 -7
  78. package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
  79. package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
  80. package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
  81. package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
  82. package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
  83. package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
  84. package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
  85. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  86. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +7 -5
  87. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  88. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  89. package/lib/ACM-AXN/CampaignSchedule/Enum.d.ts +1 -1
  90. package/lib/ACM-AXN/CampaignSchedule/Enum.js +1 -1
  91. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  92. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  93. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  94. package/lib/ACM-AXN/Common/Constant.js +2 -0
  95. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  96. package/lib/ACM-AXN/Common/Enum.js +19 -4
  97. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  98. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  99. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  100. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  101. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  102. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  103. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  104. package/lib/ACM-AXN/Page/Container.js +3 -3
  105. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  106. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  107. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -1
  108. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -1
  109. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  110. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  111. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  112. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  113. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +6 -9
  114. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  115. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +40 -61
  116. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +26 -30
  117. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +6 -8
  118. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +5 -3
  119. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  120. package/lib/ACM-AXN/Page/enums.js +7 -1
  121. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  122. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  123. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  124. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  125. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  126. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  127. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  131. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  132. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  133. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  134. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  135. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  136. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  137. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +14 -11
  138. package/lib/ACM-AXN/Statistics/ControlPanel.js +16 -4
  139. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  140. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  141. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  142. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +3 -3
  143. package/lib/ACM-AXN/Template/Container.js +1 -1
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  146. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  147. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  148. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  149. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  150. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  151. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  152. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  153. package/lib/ACM-AXN/Template/Import.js +6 -3
  154. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  155. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  156. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  157. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  158. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  159. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +46 -160
  160. package/lib/ACM-AXN/ViewTemplate/common.js +2 -3
  161. package/lib/ACM-AXN/ViewTemplate/container.js +23 -24
  162. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  163. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  164. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  165. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  166. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  167. package/lib/ACM-AXN/index.d.ts +1 -0
  168. package/lib/ACM-AXN/index.js +1 -0
  169. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  170. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  171. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  172. package/lib/AWING/Chart/BarLineComponent.js +29 -11
  173. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  174. package/lib/AWING/Chart/PieComponent.js +16 -16
  175. package/lib/AWING/Chart/Styles.js +51 -16
  176. package/lib/AWING/DataForm/DataInput.js +63 -20
  177. package/lib/AWING/DataForm/interface.d.ts +1 -0
  178. package/lib/AWING/DataGrid/index.js +8 -13
  179. package/lib/AWING/DateRangePicker/component.js +42 -23
  180. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  181. package/lib/AWING/Form/useForm.js +3 -2
  182. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  183. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  184. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  185. package/lib/AWING/GoogleMap/index.js +41 -0
  186. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  187. package/lib/AWING/GoogleMap/interface.js +2 -0
  188. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  189. package/lib/AWING/GoogleMap/utils.js +135 -0
  190. package/lib/AWING/GroupTable/GroupTable.js +4 -5
  191. package/lib/AWING/GroupTable/component.d.ts +1 -0
  192. package/lib/AWING/GroupTable/component.js +2 -2
  193. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  194. package/lib/AWING/NumberFormat/index.js +2 -2
  195. package/lib/AWING/PageManagement/PageManagement.js +2 -2
  196. package/lib/AWING/Pagination/index.js +10 -3
  197. package/lib/AWING/index.d.ts +1 -0
  198. package/lib/AWING/index.js +1 -0
  199. package/lib/AWING/ultis/validation.d.ts +1 -0
  200. package/lib/AWING/ultis/validation.js +21 -5
  201. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  202. package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
  203. package/lib/Commons/Hooks/usePath.js +3 -3
  204. package/lib/Utils/Helpers.d.ts +4 -2
  205. package/lib/Utils/Helpers.js +58 -7
  206. package/lib/i18n.js +14 -2
  207. package/lib/translate/en/translation.json +114 -71
  208. package/lib/translate/id/translation.json +870 -0
  209. package/lib/translate/jp/translation.json +870 -0
  210. package/lib/translate/tha/translation.json +870 -0
  211. package/lib/translate/vi/translation.json +78 -35
  212. package/package.json +131 -126
  213. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/fakeCampaignData.json +0 -397
  214. package/lib/ACM-AXN/ScheduleCompletionRate/json.d.ts +0 -61
  215. package/lib/ACM-AXN/ScheduleCompletionRate/json.js +0 -268
  216. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  217. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -1,4 +1,3 @@
1
- export declare const ACTIVE_CAMPAIGN_TICKET = 0;
2
1
  export declare const EnumOperator: {
3
2
  Equality: {
4
3
  id: number;
@@ -111,11 +110,16 @@ export declare const BaseEvent: {
111
110
  readonly 0: "View";
112
111
  readonly 2: "Click";
113
112
  readonly 1: "Authentication";
113
+ readonly 4: "AuthenticationSuccess";
114
114
  };
115
- export declare enum CampaignTicket {
116
- ACTIVE = 0,
117
- INACTIVE = 1
115
+ export declare enum CampaignStatus {
116
+ Draft = 0,
117
+ Reserved = 1,
118
+ Pending = 2,
119
+ Active = 3,
120
+ Done = 4
118
121
  }
122
+ export declare const ACTIVE_CAMPAIGN_TICKET = CampaignStatus.Active;
119
123
  export declare enum AdType {
120
124
  BANNER_STATIC = 1,
121
125
  BANNER_EFFECT = 2,
@@ -130,6 +134,7 @@ export declare enum AdType {
130
134
  export declare enum CampaignRuleType {
131
135
  LimitView = 0,
132
136
  LimitClick = 1,
137
+ Authentication = 8,
133
138
  LimitEvent = 2,
134
139
  TargetGender = 3,
135
140
  TargetAge = 4,
@@ -174,3 +179,17 @@ export declare enum Operator {
174
179
  */
175
180
  In = 7
176
181
  }
182
+ export declare enum CampaignApprovalStatus {
183
+ Draft = 0,
184
+ PendingApproval = 1,
185
+ Approval = 2,
186
+ Rejected = 3
187
+ }
188
+ export declare const ColorCampaignStatus: {
189
+ Draft: string;
190
+ Reserved: string;
191
+ UnderApproval: string;
192
+ Active: string;
193
+ UnActive: string;
194
+ Done: string;
195
+ };
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Operator = exports.CampaignRuleType = exports.AdType = exports.CampaignTicket = exports.BaseEvent = exports.CampaignPriority = exports.DATE_FORMAT = exports.PlaceFilterOperandType = exports.DirectoryRoot = exports.CAMPAIGN_ANALYTIC_TYPE = exports.CAMPAIGN_STATUS = exports.EnumOperator = exports.ACTIVE_CAMPAIGN_TICKET = void 0;
4
+ exports.ColorCampaignStatus = exports.CampaignApprovalStatus = exports.Operator = exports.CampaignRuleType = exports.AdType = exports.ACTIVE_CAMPAIGN_TICKET = exports.CampaignStatus = exports.BaseEvent = exports.CampaignPriority = exports.DATE_FORMAT = exports.PlaceFilterOperandType = exports.DirectoryRoot = exports.CAMPAIGN_ANALYTIC_TYPE = exports.CAMPAIGN_STATUS = exports.EnumOperator = void 0;
5
5
  var Enum_1 = require("../../ACM-AXN/Common/Enum");
6
- exports.ACTIVE_CAMPAIGN_TICKET = 0;
7
6
  exports.EnumOperator = {
8
7
  Equality: { id: 0, text: "=", value: "Equality", type: "Comparison" },
9
8
  NotEqual: { id: 1, text: "≠", value: "NotEqual", type: "Comparison" },
@@ -91,15 +90,20 @@ var CampaignPriority;
91
90
  CampaignPriority["ClassC"] = "ClassC";
92
91
  })(CampaignPriority || (exports.CampaignPriority = CampaignPriority = {}));
93
92
  exports.BaseEvent = (_a = {},
94
- _a[Enum_1.AnalyticType.VIEW] = 'View',
95
- _a[Enum_1.AnalyticType.CLICK] = 'Click',
96
- _a[Enum_1.AnalyticType.AUTHENTICATION] = 'Authentication',
93
+ _a[Enum_1.AnalyticType.View] = 'View',
94
+ _a[Enum_1.AnalyticType.Click] = 'Click',
95
+ _a[Enum_1.AnalyticType.Authentication] = 'Authentication',
96
+ _a[Enum_1.AnalyticType.AuthenticationSuccess] = 'AuthenticationSuccess',
97
97
  _a);
98
- var CampaignTicket;
99
- (function (CampaignTicket) {
100
- CampaignTicket[CampaignTicket["ACTIVE"] = 0] = "ACTIVE";
101
- CampaignTicket[CampaignTicket["INACTIVE"] = 1] = "INACTIVE";
102
- })(CampaignTicket || (exports.CampaignTicket = CampaignTicket = {}));
98
+ var CampaignStatus;
99
+ (function (CampaignStatus) {
100
+ CampaignStatus[CampaignStatus["Draft"] = 0] = "Draft";
101
+ CampaignStatus[CampaignStatus["Reserved"] = 1] = "Reserved";
102
+ CampaignStatus[CampaignStatus["Pending"] = 2] = "Pending";
103
+ CampaignStatus[CampaignStatus["Active"] = 3] = "Active";
104
+ CampaignStatus[CampaignStatus["Done"] = 4] = "Done";
105
+ })(CampaignStatus || (exports.CampaignStatus = CampaignStatus = {}));
106
+ exports.ACTIVE_CAMPAIGN_TICKET = CampaignStatus.Active;
103
107
  var AdType;
104
108
  (function (AdType) {
105
109
  // DEFAULT = 0,
@@ -117,6 +121,7 @@ var CampaignRuleType;
117
121
  (function (CampaignRuleType) {
118
122
  CampaignRuleType[CampaignRuleType["LimitView"] = 0] = "LimitView";
119
123
  CampaignRuleType[CampaignRuleType["LimitClick"] = 1] = "LimitClick";
124
+ CampaignRuleType[CampaignRuleType["Authentication"] = 8] = "Authentication";
120
125
  CampaignRuleType[CampaignRuleType["LimitEvent"] = 2] = "LimitEvent";
121
126
  CampaignRuleType[CampaignRuleType["TargetGender"] = 3] = "TargetGender";
122
127
  CampaignRuleType[CampaignRuleType["TargetAge"] = 4] = "TargetAge";
@@ -162,3 +167,18 @@ var Operator;
162
167
  */
163
168
  Operator[Operator["In"] = 7] = "In";
164
169
  })(Operator || (exports.Operator = Operator = {}));
170
+ var CampaignApprovalStatus;
171
+ (function (CampaignApprovalStatus) {
172
+ CampaignApprovalStatus[CampaignApprovalStatus["Draft"] = 0] = "Draft";
173
+ CampaignApprovalStatus[CampaignApprovalStatus["PendingApproval"] = 1] = "PendingApproval";
174
+ CampaignApprovalStatus[CampaignApprovalStatus["Approval"] = 2] = "Approval";
175
+ CampaignApprovalStatus[CampaignApprovalStatus["Rejected"] = 3] = "Rejected";
176
+ })(CampaignApprovalStatus || (exports.CampaignApprovalStatus = CampaignApprovalStatus = {}));
177
+ exports.ColorCampaignStatus = {
178
+ Draft: '#B0BEC5',
179
+ Reserved: '#FFD54F',
180
+ UnderApproval: '#FF7043',
181
+ Active: '#4CAF50',
182
+ UnActive: '#8D8D8D',
183
+ Done: '#1E88E5'
184
+ };
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { AlertColor } from '@mui/material';
3
3
  import { CampaignType } from './Utils';
4
- import { AdType, CampaignPriority, CampaignRuleType, CampaignTicket, DirectoryRoot, Operator } from './Enum';
4
+ import { AdType, CampaignPriority, CampaignRuleType, CampaignStatus, DirectoryRoot, Operator } from './Enum';
5
5
  import { PrmissionService } from '../Permission/Types';
6
- import { PageService } from '../Page/Types';
6
+ import { PageService, PageViewEvent } from '../Page/Types';
7
7
  import { BaseChartComponent } from 'react-chartjs-2/dist/types';
8
8
  import { Timestamp } from '../../ACM-AXN/Common/Types';
9
9
  import { CampaignAnalyticService } from './CreateOrEdit/TabStatistic/Types';
@@ -43,6 +43,13 @@ export type CampaignModel = {
43
43
  campaignGroups: CampaignGroupModel[];
44
44
  campaignAttributes: CampaignAttribute[];
45
45
  campaignPartner?: CampaignPartner;
46
+ campaignWizard?: {
47
+ id?: number;
48
+ campaignId?: string;
49
+ wizardGroupId?: number;
50
+ wizardId?: string;
51
+ };
52
+ campaignApprovals?: CampaignApproval[];
46
53
  };
47
54
  export type Campaign = {
48
55
  id: string;
@@ -59,7 +66,7 @@ export type CampaignGroup = {
59
66
  id: number;
60
67
  campaignId?: string;
61
68
  name: string;
62
- ticket: CampaignTicket;
69
+ status: CampaignStatus;
63
70
  /**
64
71
  * Mức độ ưu tiên (A, B, C)
65
72
  */
@@ -69,7 +76,6 @@ export type CampaignGroup = {
69
76
  /**
70
77
  * Đặt chỗ
71
78
  */
72
- isReserved: boolean;
73
79
  /**
74
80
  * Số lượng đã chạy (nếu có)
75
81
  */
@@ -79,6 +85,7 @@ export type CampaignGroup = {
79
85
  */
80
86
  cantBeDelete?: boolean;
81
87
  billingUnit: AnalyticType;
88
+ billingUnitLabel?: string;
82
89
  };
83
90
  export type CampaignAd = {
84
91
  id: number;
@@ -206,6 +213,17 @@ export type CampaignPartner = {
206
213
  email?: string;
207
214
  emailInterval: number;
208
215
  };
216
+ export type CampaignApproval = {
217
+ id?: number;
218
+ campaignId?: string;
219
+ domainId?: string;
220
+ campaignGroupId?: number;
221
+ campaignAdId?: number;
222
+ status: number;
223
+ description: string;
224
+ loginId?: string;
225
+ welcomeId?: string;
226
+ };
209
227
  export type DateRange = {
210
228
  startDate: Date;
211
229
  endDate: Date;
@@ -232,7 +250,6 @@ export interface CampaignFilter {
232
250
  endDate?: string;
233
251
  pageIndex?: number;
234
252
  pageSize?: number;
235
- isReserved?: boolean;
236
253
  placeIds?: string[];
237
254
  priorities?: CampaignPriority[];
238
255
  status?: number[];
@@ -252,6 +269,7 @@ export interface AppHelper {
252
269
  confirm: (okFunction?: () => void, cancelFunction?: () => void, message?: string, title?: string) => void;
253
270
  }
254
271
  interface CampaignService extends PrmissionService {
272
+ pagesGetPageViewEventByPageIds(body: string[] | undefined): Promise<PageViewEvent[]>;
255
273
  directoriesGetByObjectTypeCode: (type: DirectoryRoot) => Promise<Directory[]>;
256
274
  campaignsPaging: (body: CampaignFilter) => Promise<IPagedListOfCampaignModel>;
257
275
  campaignsDelete: (id: string) => Promise<void>;
@@ -259,11 +277,11 @@ interface CampaignService extends PrmissionService {
259
277
  campaignsPut: (id: string, body: CampaignModel) => Promise<void>;
260
278
  campaignsPost: (body: CampaignModel) => Promise<void>;
261
279
  directoriesPost: (body: Directory) => Promise<void>;
262
- pagesPaging: (searchString?: string, pageSize?: number, pageIndex?: number, directoryId?: string) => Promise<any>;
263
280
  pagesGetSources: (loginId?: string, welcomeId?: string) => Promise<any>;
264
281
  deviceInfoGetAllRuleOsVersions: () => Promise<RuleOsVersion[]>;
265
282
  deviceInfoGetAllRuleDevices: () => Promise<RuleDevice[]>;
266
283
  attributesGetByObjectTypeCode?: (objectTypeCode: string) => Promise<Attribute[]>;
284
+ campaignsManualSendMail?: (campaignId: string, body: CampaignApproval[]) => Promise<void>;
267
285
  }
268
286
  export interface CampaignFeatureProps {
269
287
  service: CampaignService & PageService & CampaignAnalyticService;
@@ -272,5 +290,33 @@ export interface CampaignFeatureProps {
272
290
  domainId: string;
273
291
  configs: any;
274
292
  isAxn?: boolean;
293
+ quickWizard?: (p?: any) => JSX.Element;
294
+ }
295
+ interface ICampaignApprovalItemSubRow {
296
+ id?: number;
297
+ name?: string;
298
+ status?: CampaignStatus;
299
+ }
300
+ export interface ICampaignApprovalSubRow {
301
+ subCampaigns: ICampaignApprovalItemSubRow[];
302
+ ads: ICampaignApprovalItemSubRow[];
303
+ }
304
+ export interface ICampaignApprovalTableRow {
305
+ id?: string;
306
+ status: number;
307
+ linkPreview: string;
308
+ subCampaigns?: ICampaignApprovalItemSubRow[];
309
+ loginId?: string;
310
+ welcomeId?: string;
311
+ campaign: ICampaignApprovalSubRow[];
312
+ description: string;
313
+ }
314
+ export interface ICampaignApprovalTable {
315
+ id: string;
316
+ domain: {
317
+ domainName?: string;
318
+ domainId?: string;
319
+ };
320
+ detail: ICampaignApprovalTableRow[];
275
321
  }
276
322
  export {};
@@ -77,6 +77,7 @@ export declare const nextChar: (c: string) => string;
77
77
  export declare const RuleType: {
78
78
  LimitView: number;
79
79
  LimitClick: number;
80
+ Authentication: number;
80
81
  LimitEvent: number;
81
82
  TargetGender: number;
82
83
  TargetAge: number;
@@ -135,3 +136,7 @@ export declare enum adAnalyticType {
135
136
  Spot = 0,
136
137
  Engagements = 1
137
138
  }
139
+ export declare const getCampaignStatus: (isAcm?: boolean) => {
140
+ key: string;
141
+ value: number;
142
+ }[];
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.adAnalyticType = exports.CampaignType = exports.ageRangeValueToText = exports.RuleAgeRange = exports.DEMO_GRAPHIC_AGE_RANGE = exports.getDescription = exports.isAdActive = exports.RuleGender = exports.RuleTypeOfCalculatorAXN = exports.RuleTypeOfCalculator = exports.RuleType = exports.nextChar = exports.getName = exports.getDefaultRule = exports.bonusValid = exports.bookingValid = exports.adsClassCValid = exports.groupClassCValid = exports.groupClassBValid = exports.campaignAdsValid = exports.ruleValid = exports.verifyExpr = exports.advancedValid = exports.weightsValid = exports.placeFilterValid = exports.dateRangeValid = exports.pageValid = exports.campaignAdValid = exports.validateAnalyticTypes = exports.checkValidUrl = exports.tabPartnerValid = exports.tabInfomationValid = exports.attributesValid = exports.nameValid = exports.directoryValid = exports.advancedSearchFormatDate = exports.getCampaignPriority = exports.checkCampaignIsRunning = exports.formatListCampaign = exports.getTotalBooking = exports.checkPriority = exports.getIndexPriority = void 0;
15
+ exports.getCampaignStatus = exports.adAnalyticType = exports.CampaignType = exports.ageRangeValueToText = exports.RuleAgeRange = exports.DEMO_GRAPHIC_AGE_RANGE = exports.getDescription = exports.isAdActive = exports.RuleGender = exports.RuleTypeOfCalculatorAXN = exports.RuleTypeOfCalculator = exports.RuleType = exports.nextChar = exports.getName = exports.getDefaultRule = exports.bonusValid = exports.bookingValid = exports.adsClassCValid = exports.groupClassCValid = exports.groupClassBValid = exports.campaignAdsValid = exports.ruleValid = exports.verifyExpr = exports.advancedValid = exports.weightsValid = exports.placeFilterValid = exports.dateRangeValid = exports.pageValid = exports.campaignAdValid = exports.validateAnalyticTypes = exports.checkValidUrl = exports.tabPartnerValid = exports.tabInfomationValid = exports.attributesValid = exports.nameValid = exports.directoryValid = exports.advancedSearchFormatDate = exports.getCampaignPriority = exports.checkCampaignIsRunning = exports.formatListCampaign = exports.getTotalBooking = exports.checkPriority = exports.getIndexPriority = void 0;
16
16
  var Enum_1 = require("./Enum");
17
17
  var Helpers_1 = require("../../Utils/Helpers");
18
18
  var i18n_1 = __importDefault(require("../../i18n"));
@@ -66,7 +66,7 @@ var checkCampaignIsRunning = function (campaignGroupModel) {
66
66
  var localTime = (0, moment_1.default)().format('YYYY-MM-DD');
67
67
  var dateTimeNow = Number((0, moment_1.default)(localTime).format('X'));
68
68
  //Check chỉ cần trong ad có chứa ngày hiện tại là được
69
- var campaignTicket = campaignGroupModel.campaignGroup.ticket === Enum_1.ACTIVE_CAMPAIGN_TICKET;
69
+ var campaignTicket = campaignGroupModel.campaignGroup.status === Enum_1.ACTIVE_CAMPAIGN_TICKET;
70
70
  var campaignContainsCurrentDate = ((_a = campaignGroupModel.ads.filter(function (y) {
71
71
  var _a, _b;
72
72
  return dateTimeNow >= Number((_a = y.startDate) === null || _a === void 0 ? void 0 : _a.seconds) &&
@@ -297,6 +297,7 @@ var getDefaultRule = function (type) {
297
297
  switch (type) {
298
298
  case exports.RuleType.LimitView:
299
299
  case exports.RuleType.LimitClick:
300
+ case exports.RuleType.Authentication:
300
301
  return {
301
302
  type: type,
302
303
  operator: Enum_1.EnumOperator.LessThan.id,
@@ -367,6 +368,7 @@ exports.nextChar = nextChar;
367
368
  exports.RuleType = {
368
369
  LimitView: 0,
369
370
  LimitClick: 1,
371
+ Authentication: 8,
370
372
  LimitEvent: 2,
371
373
  TargetGender: 3,
372
374
  TargetAge: 4,
@@ -439,6 +441,14 @@ var getDescription = function (rule) {
439
441
  value = JSON.parse(value);
440
442
  }
441
443
  switch (rule.type) {
444
+ case exports.RuleType.Authentication:
445
+ {
446
+ var textFormat = i18n_1.default.t('Campaign.Rule.DescriptionFormat.LimitEngagement');
447
+ result += textFormat.replace('{0}', operatorText);
448
+ result = result.replace('{1}', value);
449
+ result = result.replace('{2}', params.period <= 0 ? unlimit : params.period);
450
+ }
451
+ break;
442
452
  case exports.RuleType.LimitView:
443
453
  {
444
454
  var textFormat = i18n_1.default.t('Campaign.Rule.DescriptionFormat.LimitView');
@@ -459,6 +469,7 @@ var getDescription = function (rule) {
459
469
  {
460
470
  var textFormat = i18n_1.default.t('Campaign.Rule.DescriptionFormat.LimitEvent');
461
471
  result += textFormat.replace('{0}', params.eventLabel);
472
+ result = result.replace('{x}', params.viewNumber);
462
473
  result = result.replace('{1}', operatorText);
463
474
  result = result.replace('{2}', value);
464
475
  result = result.replace('{3}', params.period <= 0 ? unlimit : params.period);
@@ -625,3 +636,19 @@ var adAnalyticType;
625
636
  adAnalyticType[adAnalyticType["Spot"] = 0] = "Spot";
626
637
  adAnalyticType[adAnalyticType["Engagements"] = 1] = "Engagements";
627
638
  })(adAnalyticType || (exports.adAnalyticType = adAnalyticType = {}));
639
+ var getCampaignStatus = function (isAcm) {
640
+ var allStatuses = Object.keys(Enum_1.CampaignStatus)
641
+ .filter(function (key) { return isNaN(Number(key)); })
642
+ .map(function (key) { return ({ key: key, value: Enum_1.CampaignStatus[key] }); });
643
+ if (isAcm) {
644
+ return allStatuses.filter(function (status) {
645
+ return status.value === Enum_1.CampaignStatus.Draft ||
646
+ status.value === Enum_1.CampaignStatus.Active ||
647
+ status.value === Enum_1.CampaignStatus.Done;
648
+ });
649
+ }
650
+ else {
651
+ return allStatuses;
652
+ }
653
+ };
654
+ exports.getCampaignStatus = getCampaignStatus;
@@ -52,11 +52,11 @@ var Campaign = function (props) {
52
52
  },
53
53
  {
54
54
  param: Constant_1.Constants.CAMPAIGN_DETAIL + '/:campaignId/:tabName/*',
55
- element: (0, jsx_runtime_1.jsx)(CreateOrEdit_1.default, {}),
55
+ element: (0, jsx_runtime_1.jsx)(CreateOrEdit_1.default, { quickWizard: props.quickWizard }),
56
56
  },
57
57
  {
58
58
  param: Constant_1.Constants.CAMPAIGN_CLONE + '/:campaignId/:tabName/*',
59
- element: (0, jsx_runtime_1.jsx)(CreateOrEdit_1.default, {}),
59
+ element: ((0, jsx_runtime_1.jsx)(CreateOrEdit_1.default, { quickWizard: props.quickWizard, type: Constant_1.Constants.CAMPAIGN_CLONE })),
60
60
  },
61
61
  ];
62
62
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Container_1.default, {}), (0, jsx_runtime_1.jsx)(Router_1.Routes, { children: paths.map(function (p) { return ((0, jsx_runtime_1.jsx)(Router_1.Route, { path: p.param, element: p.element }, p.param)); }) })] }));
@@ -66,10 +66,13 @@ function Container() {
66
66
  });
67
67
  }
68
68
  };
69
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_helmet_async_1.HelmetProvider, { children: (0, jsx_runtime_1.jsx)(react_helmet_async_1.Helmet, { children: (0, jsx_runtime_1.jsx)("title", { children: t('CampaignPlan.Title') }) }) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h5", component: "h1", color: "inherit", noWrap: true, fontWeight: 'bold', sx: { marginBottom: function (theme) { return theme.spacing(2); } }, children: t('CampaignPlan.Title') }), (0, jsx_runtime_1.jsxs)(material_1.Paper, { elevation: 1, children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
69
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_helmet_async_1.HelmetProvider, { children: (0, jsx_runtime_1.jsx)(react_helmet_async_1.Helmet, { children: (0, jsx_runtime_1.jsx)("title", { children: t('CampaignPlan.Title') }) }) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h5", component: "h1", color: "inherit", noWrap: true, fontWeight: 'bold', sx: { mb: 2 }, children: t('CampaignPlan.Title') }), (0, jsx_runtime_1.jsxs)(material_1.Paper, { elevation: 1, children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
70
70
  display: 'flex',
71
71
  justifyContent: 'flex-end',
72
- padding: '24px 16px 8px',
72
+ pt: 3,
73
+ pb: 1,
74
+ pl: 2,
75
+ pr: 2,
73
76
  }, children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
74
77
  width: '50%',
75
78
  display: 'flex',
@@ -84,7 +87,17 @@ function Container() {
84
87
  {
85
88
  field: 'name',
86
89
  headerName: t('CampaignPlan.CampaignName'),
87
- width: 200,
90
+ width: 260,
91
+ valueGetter: function (row) {
92
+ return ((0, jsx_runtime_1.jsxs)("span", { children: [row.name, (row === null || row === void 0 ? void 0 : row.isNetWork) && ((0, jsx_runtime_1.jsx)("span", { style: {
93
+ backgroundColor: '#c49f47',
94
+ color: '#ffffff',
95
+ fontSize: '13px',
96
+ marginLeft: '4px',
97
+ padding: '1px 4px',
98
+ borderRadius: '2px',
99
+ }, children: "Network" }))] }));
100
+ },
88
101
  },
89
102
  {
90
103
  field: 'endDate',
@@ -96,10 +109,8 @@ function Container() {
96
109
  },
97
110
  {
98
111
  field: 'totalRun',
99
- headerName: "".concat(t('CampaignPlan.HasRun'), " (").concat(t('CampaignPlan.NumberOfConnections'), ")"),
100
- valueGetter: function (row) {
101
- return (0, Helpers_1.formatNumber)(row.totalRun);
102
- },
112
+ headerName: "".concat(t('CampaignPlan.HasRun')),
113
+ type: 'number',
103
114
  width: 200,
104
115
  TableCellProps: {
105
116
  align: 'right',
@@ -107,7 +118,7 @@ function Container() {
107
118
  },
108
119
  {
109
120
  field: 'totalExpected',
110
- headerName: "".concat(t('CampaignPlan.WillRun'), " (").concat(t('CampaignPlan.NumberOfConnections'), ")"),
121
+ headerName: "".concat(t('CampaignPlan.WillRun')),
111
122
  valueGetter: function (row) {
112
123
  return row.isContainClassB
113
124
  ? (0, Helpers_1.formatNumber)(row.totalExpected)
@@ -120,13 +131,13 @@ function Container() {
120
131
  },
121
132
  {
122
133
  field: 'total',
123
- headerName: "".concat(t('CampaignPlan.AmountBooking'), " (+").concat(t('CampaignPlan.BonusText'), ")"),
134
+ headerName: "".concat(t('CampaignPlan.AmountBooking'), " (").concat(t('CampaignPlan.BonusText'), ")"),
124
135
  valueGetter: function (row) {
125
136
  return row.isContainClassB
126
137
  ? (0, Helpers_1.formatNumber)(Number(row.total))
127
138
  : 'N/A';
128
139
  },
129
- width: 180,
140
+ width: 190,
130
141
  TableCellProps: {
131
142
  align: 'right',
132
143
  },
@@ -3,4 +3,4 @@
3
3
  * @author dauquan1108@gmail.com on 03/12/2024.
4
4
  *
5
5
  **/
6
- import '@testing-library/jest-dom';
6
+ export {};
@@ -57,7 +57,6 @@ var jsx_runtime_1 = require("react/jsx-runtime");
57
57
  * @author dauquan1108@gmail.com on 03/12/2024.
58
58
  *
59
59
  **/
60
- require("@testing-library/jest-dom");
61
60
  var react_router_dom_1 = require("react-router-dom");
62
61
  var react_1 = require("@testing-library/react");
63
62
  var Container_1 = __importDefault(require("./Container"));
@@ -137,7 +136,7 @@ jest.mock('./Filter', function () { return function (props) {
137
136
  return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { children: "Filter component" }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onUpdateFilterBy", onClick: function () { return props.onUpdateFilterBy('campaignId', '0'); }, children: "onUpdateFilterBy" })] }));
138
137
  }; });
139
138
  // Mock DataGrid
140
- jest.mock('../../AWING', function () { return ({
139
+ jest.mock('AWING', function () { return ({
141
140
  DataGrid: function (props) { return ((0, jsx_runtime_1.jsxs)("div", { children: [props.columns
142
141
  .filter(function (item) { return item.valueGetter; })
143
142
  .map(function (getter, idx) { return ((0, jsx_runtime_1.jsx)("span", { children: getter.valueGetter('a', idx, '1') }, idx)); }), (0, jsx_runtime_1.jsx)("span", { children: props.getRowId(mockPagedList.items[0]) }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onPageIndexChange", onClick: function () { return props.onPageIndexChange(0); } }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onPageSizeChange", onClick: function () { return props.onPageSizeChange(2); } }), (0, jsx_runtime_1.jsx)("p", { "data-testid": "rowsPaginate", children: JSON.stringify(props.rows) }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onRowClick", onClick: props.onRowClick, children: "onRowClick" })] })); },
@@ -70,7 +70,7 @@ function CampaignPlanDetail() {
70
70
  field: 'name',
71
71
  headerName: t('CampaignPlan.Group'),
72
72
  valueGetter: function (row) {
73
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [row.name, ' ', (0, jsx_runtime_1.jsx)(material_1.Typography, { component: 'span', sx: {
73
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [row.name, (0, jsx_runtime_1.jsx)(material_1.Typography, { component: 'span', sx: {
74
74
  fontFamily: '"Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2" !important',
75
75
  fontSize: 18,
76
76
  }, children: getCampaignPriority(row.priority) })] }));
@@ -78,17 +78,15 @@ function CampaignPlanDetail() {
78
78
  },
79
79
  {
80
80
  field: 'totalRun',
81
- headerName: t('CampaignPlan.HasRun'),
82
- valueGetter: function (row) {
83
- return (0, Helpers_1.formatNumber)(row.totalRun);
84
- },
81
+ headerName: "".concat(t('CampaignPlan.HasRun')),
82
+ type: 'number',
85
83
  TableCellProps: {
86
84
  align: 'right',
87
85
  },
88
86
  },
89
87
  {
90
88
  field: 'totalExpected',
91
- headerName: t('CampaignPlan.WillRun'),
89
+ headerName: "".concat(t('CampaignPlan.WillRun')),
92
90
  valueGetter: function (row) {
93
91
  return row.priority ===
94
92
  Utils_1.CAMPAIGN_PRIORITY.CLASS_B
@@ -101,7 +99,7 @@ function CampaignPlanDetail() {
101
99
  },
102
100
  {
103
101
  field: 'total',
104
- headerName: "".concat(t('CampaignPlan.AmountBooking'), " (+").concat(t('CampaignPlan.BonusText'), ")"),
102
+ headerName: "".concat(t('CampaignPlan.AmountBooking'), " (").concat(t('CampaignPlan.BonusText'), ")"),
105
103
  valueGetter: function (row) {
106
104
  return row.priority ===
107
105
  Utils_1.CAMPAIGN_PRIORITY.CLASS_B
@@ -3,4 +3,4 @@
3
3
  * @author dauquan1108@gmail.com on 03/11/2024.
4
4
  *
5
5
  **/
6
- import '@testing-library/jest-dom';
6
+ export {};
@@ -58,7 +58,6 @@ var jsx_runtime_1 = require("react/jsx-runtime");
58
58
  **/
59
59
  var react_1 = require("@testing-library/react");
60
60
  var Detail_1 = __importDefault(require("./Detail"));
61
- require("@testing-library/jest-dom");
62
61
  var mockCampaignPlan = {
63
62
  scheduleCampaignPlanModel: {
64
63
  campaignId: '5391179157958735137',
@@ -105,9 +104,9 @@ jest.mock('./Hooks', function () { return ({
105
104
  // Mock đa ngữ
106
105
  jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requireActual('react-i18next')), { useTranslation: function () { return ({ t: jest.fn(function (key) { return key; }) }); } })); });
107
106
  // Mock Drawer
108
- jest.mock('../../Commons/Components/ClassicDrawer', function () { return function (props) { return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { "data-testid": "title-drawer", children: props.title }), props.children] })); }; });
107
+ jest.mock('Commons/Components/ClassicDrawer', function () { return function (props) { return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { "data-testid": "title-drawer", children: props.title }), props.children] })); }; });
109
108
  // Mock PageManagement
110
- jest.mock('../../AWING', function () { return ({
109
+ jest.mock('AWING', function () { return ({
111
110
  PageManagement: function (props) {
112
111
  props.onChangeQueryInput({
113
112
  searchString: '',
@@ -47,7 +47,7 @@ function Filters(props) {
47
47
  });
48
48
  // eslint-disable-next-line react-hooks/exhaustive-deps
49
49
  }, []);
50
- var reserveTypes = [
50
+ var reserveTypes = (0, react_1.useMemo)(function () { return [
51
51
  {
52
52
  id: 0,
53
53
  name: t('CampaignPlan.AdvanceSearchOptionAll'),
@@ -63,10 +63,17 @@ function Filters(props) {
63
63
  name: t('CampaignPlan.NoneReserved'),
64
64
  value: Utils_1.CAMPAIGN_RESERVETYPES.NONERESERVED,
65
65
  },
66
- ];
67
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Autocomplete, { fullWidth: true, size: "small", options: campaign, id: Utils_1.FilterByType.campaignId, "data-testid": Utils_1.FilterByType.campaignId, getOptionLabel: function (option) { return (option === null || option === void 0 ? void 0 : option.name) || ''; }, onChange: function (event, campaignItem) {
66
+ ]; }, [t]);
67
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Autocomplete, { fullWidth: true, size: "small", options: campaign, id: Utils_1.FilterByType.campaignId, "data-testid": Utils_1.FilterByType.campaignId, getOptionLabel: function (option) { return (option === null || option === void 0 ? void 0 : option.name) || ''; }, renderOption: function (props, option) { return ((0, jsx_runtime_1.jsx)(material_1.Box, __assign({ component: "li" }, props, { sx: { width: '100%' }, children: (0, jsx_runtime_1.jsxs)("span", { children: [option.name, option.isNetWork && ((0, jsx_runtime_1.jsx)("span", { style: {
68
+ backgroundColor: '#c49f47',
69
+ color: '#ffffff',
70
+ fontSize: '13px',
71
+ marginLeft: '4px',
72
+ padding: '1px 4px',
73
+ borderRadius: '2px',
74
+ }, children: "Network" }))] }) }))); }, onChange: function (event, campaignItem) {
68
75
  onUpdateFilterBy(Utils_1.FilterByType.campaignId, (campaignItem === null || campaignItem === void 0 ? void 0 : campaignItem.id) || '0');
69
- }, renderInput: function (params) { return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({}, params, { label: t('CampaignPlan.CampaignName') }))); }, sx: { marginRight: function (theme) { return theme.spacing(2); } }, value: campaign.find(function (x) { return x.id === filterBy.campaignId; }) }), (0, jsx_runtime_1.jsx)(material_1.Autocomplete, { fullWidth: true, size: "small", options: reserveTypes, id: Utils_1.FilterByType.campaignReserved, "data-testid": Utils_1.FilterByType.campaignReserved, getOptionLabel: function (option) { return (option === null || option === void 0 ? void 0 : option.name) || ''; }, onChange: function (event, campaignItem) {
76
+ }, renderInput: function (params) { return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({}, params, { label: t('CampaignPlan.CampaignName') }))); }, sx: { marginRight: function (theme) { return theme.spacing(2); } }, value: campaign.find(function (x) { return x.id === filterBy.campaignId; }) }), (0, jsx_runtime_1.jsx)(material_1.Autocomplete, { fullWidth: true, size: "small", sx: { maxWidth: 250 }, options: reserveTypes, id: Utils_1.FilterByType.campaignReserved, "data-testid": Utils_1.FilterByType.campaignReserved, getOptionLabel: function (option) { return (option === null || option === void 0 ? void 0 : option.name) || ''; }, onChange: function (event, campaignItem) {
70
77
  onUpdateFilterBy(Utils_1.FilterByType.campaignReserved, (campaignItem === null || campaignItem === void 0 ? void 0 : campaignItem.value) || 0);
71
78
  }, renderInput: function (params) { return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({}, params, { label: t('CampaignPlan.ReserveType') }))); }, value: reserveTypes.find(function (x) { return x.value === filterBy.campaignReserved; }) })] }));
72
79
  }
@@ -3,4 +3,4 @@
3
3
  * @author dauquan1108@gmail.com on 03/12/2024.
4
4
  *
5
5
  **/
6
- import '@testing-library/jest-dom';
6
+ export {};
@@ -24,7 +24,6 @@ var jsx_runtime_1 = require("react/jsx-runtime");
24
24
  var react_1 = require("@testing-library/react");
25
25
  // import { BrowserRouter, useParams } from 'react-router-dom'
26
26
  var Filter_1 = __importDefault(require("./Filter"));
27
- require("@testing-library/jest-dom");
28
27
  var mockCampaign = [
29
28
  {
30
29
  id: '5391179157958735137',