awing-library 2.1.131-beta → 2.1.131

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 (219) 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 -42
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +316 -96
  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 +119 -55
  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 +1 -1
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +4 -7
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +3 -3
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +5 -2
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +2 -2
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +6 -0
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.d.ts +8 -0
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/Authentication.js +47 -0
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +52 -6
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.d.ts +1 -0
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/index.js +3 -1
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.d.ts +4 -3
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +13 -7
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.d.ts +1 -1
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +75 -123
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +8 -3
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  64. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  65. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  66. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  67. package/lib/ACM-AXN/Campaign/Enum.d.ts +23 -4
  68. package/lib/ACM-AXN/Campaign/Enum.js +30 -10
  69. package/lib/ACM-AXN/Campaign/Types.d.ts +52 -6
  70. package/lib/ACM-AXN/Campaign/Utils.d.ts +5 -0
  71. package/lib/ACM-AXN/Campaign/Utils.js +29 -2
  72. package/lib/ACM-AXN/Campaign/index.js +2 -2
  73. package/lib/ACM-AXN/CampaignPlan/Container.js +21 -10
  74. package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
  75. package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
  76. package/lib/ACM-AXN/CampaignPlan/Detail.js +5 -7
  77. package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
  78. package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
  79. package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
  80. package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
  81. package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
  82. package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
  83. package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
  84. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  85. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  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/Recoil/Atom.d.ts +1 -2
  90. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  91. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  92. package/lib/ACM-AXN/Common/Constant.js +2 -0
  93. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  94. package/lib/ACM-AXN/Common/Enum.js +19 -4
  95. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  96. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  97. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  98. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  99. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  100. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  101. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  102. package/lib/ACM-AXN/Page/Constant.js +2 -0
  103. package/lib/ACM-AXN/Page/Container.js +3 -3
  104. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  105. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  106. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  107. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  108. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  109. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  110. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  111. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  112. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -45
  113. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  114. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  115. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  116. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +10 -9
  117. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +17 -4
  118. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  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/Event.js +23 -11
  158. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  159. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  160. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +46 -160
  161. package/lib/ACM-AXN/ViewTemplate/common.js +2 -3
  162. package/lib/ACM-AXN/ViewTemplate/container.js +23 -24
  163. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  164. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  165. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  166. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  167. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  168. package/lib/ACM-AXN/index.d.ts +1 -0
  169. package/lib/ACM-AXN/index.js +1 -0
  170. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  171. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  172. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  173. package/lib/AWING/Chart/BarLineComponent.js +29 -11
  174. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  175. package/lib/AWING/Chart/PieComponent.js +16 -16
  176. package/lib/AWING/Chart/Styles.js +51 -16
  177. package/lib/AWING/DataForm/DataInput.js +63 -20
  178. package/lib/AWING/DataForm/interface.d.ts +1 -0
  179. package/lib/AWING/DataGrid/index.js +8 -13
  180. package/lib/AWING/DateRangePicker/component.js +55 -30
  181. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  182. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  183. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  184. package/lib/AWING/Form/useForm.js +3 -2
  185. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  186. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  187. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  188. package/lib/AWING/GoogleMap/index.js +41 -0
  189. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  190. package/lib/AWING/GoogleMap/interface.js +2 -0
  191. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  192. package/lib/AWING/GoogleMap/utils.js +135 -0
  193. package/lib/AWING/GroupTable/GroupTable.js +4 -5
  194. package/lib/AWING/GroupTable/component.d.ts +1 -0
  195. package/lib/AWING/GroupTable/component.js +2 -2
  196. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  197. package/lib/AWING/NumberFormat/index.js +2 -2
  198. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  199. package/lib/AWING/Pagination/index.js +11 -3
  200. package/lib/AWING/index.d.ts +1 -0
  201. package/lib/AWING/index.js +1 -0
  202. package/lib/AWING/ultis/validation.d.ts +1 -0
  203. package/lib/AWING/ultis/validation.js +21 -5
  204. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  205. package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
  206. package/lib/Commons/Hooks/usePath.js +3 -3
  207. package/lib/Utils/Helpers.d.ts +3 -2
  208. package/lib/Utils/Helpers.js +48 -8
  209. package/lib/i18n.js +14 -2
  210. package/lib/translate/en/translation.json +112 -71
  211. package/lib/translate/id/translation.json +870 -0
  212. package/lib/translate/ja/translation.json +870 -0
  213. package/lib/translate/th/translation.json +870 -0
  214. package/lib/translate/vi/translation.json +76 -35
  215. package/package.json +131 -126
  216. package/lib/ACM-AXN/ScheduleCompletionRate/json.d.ts +0 -61
  217. package/lib/ACM-AXN/ScheduleCompletionRate/json.js +0 -268
  218. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  219. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -26,18 +26,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  var jsx_runtime_1 = require("react/jsx-runtime");
27
27
  var icons_material_1 = require("@mui/icons-material");
28
28
  var material_1 = require("@mui/material");
29
- var AWING_1 = require("../../AWING");
29
+ var Constant_1 = require("../../ACM-AXN/Common/Constant");
30
30
  var lodash_1 = require("lodash");
31
31
  var react_1 = require("react");
32
32
  var react_i18next_1 = require("react-i18next");
33
+ var AWING_1 = require("../../AWING");
33
34
  var Router_1 = require("../../AWING/Router");
34
- var Utils_1 = require("./Utils");
35
- var Hooks_1 = __importDefault(require("./Hooks"));
36
- var Enum_1 = require("./Enum");
37
35
  var CopyButton_1 = __importDefault(require("../../Commons/Components/CopyButton"));
38
- var Helpers_1 = require("../../Utils/Helpers");
39
- var Constant_1 = require("../../ACM-AXN/Common/Constant");
40
36
  var Context_1 = require("../../Context");
37
+ var Helpers_1 = require("../../Utils/Helpers");
38
+ var Enum_1 = require("./Enum");
39
+ var Hooks_1 = __importDefault(require("./Hooks"));
40
+ var Utils_1 = require("./Utils");
41
41
  var CampaignContainer = function () {
42
42
  var _a;
43
43
  var t = (0, react_i18next_1.useTranslation)().t;
@@ -50,7 +50,7 @@ var CampaignContainer = function () {
50
50
  var _e = (0, react_1.useState)(), listCampaign = _e[0], setListCampaign = _e[1];
51
51
  var _f = (0, react_1.useState)(true), loading = _f[0], setLoading = _f[1];
52
52
  (0, react_1.useEffect)(function () {
53
- if (location.pathname.endsWith(Constant_1.Constants.CAMPAIGN_PATH)) {
53
+ if (location.pathname.endsWith("/" + Constant_1.Constants.CAMPAIGN_PATH)) {
54
54
  fetchDirectories();
55
55
  }
56
56
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -63,7 +63,7 @@ var CampaignContainer = function () {
63
63
  var getCampaign = (0, react_1.useCallback)(function (params) {
64
64
  var advancedObject = params.advancedObject, id = params.id, searchString = params.searchString, pageIndex = params.pageIndex, pageSize = params.pageSize;
65
65
  setCollapseId([]);
66
- var _a = advancedObject || {}, directoryId = _a.directoryId, isReserved = _a.isReserved, priority = _a.priority, status = _a.status, type = _a.type;
66
+ var _a = advancedObject || {}, directoryId = _a.directoryId, priority = _a.priority, status = _a.status, type = _a.type;
67
67
  var startDate = '';
68
68
  var endDate = '';
69
69
  if (advancedObject === null || advancedObject === void 0 ? void 0 : advancedObject.date) {
@@ -80,10 +80,9 @@ var CampaignContainer = function () {
80
80
  endDate: endDate,
81
81
  pageIndex: pageIndex,
82
82
  pageSize: pageSize,
83
- isReserved: isReserved,
84
83
  // placeIds: ,
85
84
  priorities: priority && [priority],
86
- status: status && [status],
85
+ status: status !== undefined ? [status] : undefined,
87
86
  types: type && [type],
88
87
  })
89
88
  .then(setListCampaign)
@@ -118,6 +117,42 @@ var CampaignContainer = function () {
118
117
  var handleDelete = function (id) {
119
118
  return service.campaignsDelete(id);
120
119
  };
120
+ var renderStatus = function (row) {
121
+ var _a;
122
+ var statusConfig = (_a = {},
123
+ _a[Enum_1.CampaignStatus.Draft] = {
124
+ label: 'Campaign.Status.Draft',
125
+ color: Enum_1.ColorCampaignStatus.Draft
126
+ },
127
+ _a[Enum_1.CampaignStatus.Reserved] = {
128
+ label: 'Campaign.Status.Reserved',
129
+ color: Enum_1.ColorCampaignStatus.Reserved
130
+ },
131
+ _a[Enum_1.CampaignStatus.Pending] = {
132
+ label: 'Campaign.Status.Pending',
133
+ color: Enum_1.ColorCampaignStatus.UnderApproval
134
+ },
135
+ _a[Enum_1.CampaignStatus.Active] = {
136
+ label: 'Campaign.Status.Active',
137
+ color: function (row) { return (0, Utils_1.checkCampaignIsRunning)(row) ? Enum_1.ColorCampaignStatus.Active : Enum_1.ColorCampaignStatus.UnActive; }
138
+ },
139
+ _a[Enum_1.CampaignStatus.Done] = {
140
+ label: 'Campaign.Status.Done',
141
+ color: Enum_1.ColorCampaignStatus.Done
142
+ },
143
+ _a);
144
+ var status = row === null || row === void 0 ? void 0 : row.campaignGroup.status;
145
+ var config = statusConfig[status];
146
+ if (!config)
147
+ return null;
148
+ return ((0, jsx_runtime_1.jsx)(material_1.Chip, { label: t(config.label), style: {
149
+ height: 18,
150
+ backgroundColor: typeof config.color === 'function' ? config.color(row) : config.color,
151
+ color: 'white',
152
+ marginBottom: '4px',
153
+ marginLeft: '4px'
154
+ } }));
155
+ };
121
156
  return ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
122
157
  '& tr[data-row="sub-row"]': {
123
158
  cursor: 'default!important',
@@ -129,19 +164,17 @@ var CampaignContainer = function () {
129
164
  label: t('Campaign.DateRange'),
130
165
  type: 'date-range',
131
166
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.Event, { fontSize: "small" }),
167
+ isShowCalendarInfo: true,
132
168
  },
133
169
  {
134
170
  fieldName: 'status',
135
171
  label: t('Campaign.AdvanceSearchStatus'),
136
172
  type: 'autocomplete',
137
173
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.Place, { fontSize: "small" }),
138
- options: Object.entries(Enum_1.CAMPAIGN_STATUS).map(function (_a) {
139
- var key = _a[0], value = _a[1];
140
- return ({
141
- value: value,
142
- text: t(['Campaign', key].join('.')),
143
- });
144
- }),
174
+ options: (0, Utils_1.getCampaignStatus)(!Boolean(service.attributesGetByObjectTypeCode)).map(function (item) { return ({
175
+ value: item.value,
176
+ text: t(['Campaign.Status', item.key].join('.')),
177
+ }); }),
145
178
  },
146
179
  {
147
180
  fieldName: 'priority',
@@ -169,22 +202,6 @@ var CampaignContainer = function () {
169
202
  });
170
203
  }),
171
204
  },
172
- {
173
- fieldName: 'isReserved',
174
- label: t('Campaign.AdvanceSearchType'),
175
- type: 'autocomplete',
176
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.BookmarkBorder, { fontSize: "small" }),
177
- options: [
178
- {
179
- value: true,
180
- text: t('Campaign.Reserved'),
181
- },
182
- {
183
- value: false,
184
- text: t('Campaign.NoneReserved'),
185
- },
186
- ],
187
- },
188
205
  {
189
206
  fieldName: 'directoryId',
190
207
  label: t('Common.Directory'),
@@ -225,31 +242,12 @@ var CampaignContainer = function () {
225
242
  : icons_material_1.KeyboardArrowDown }) })] }));
226
243
  }
227
244
  else {
228
- return ((0, jsx_runtime_1.jsxs)(material_1.Box, { style: { paddingLeft: '32px' }, children: [(0, jsx_runtime_1.jsx)("span", { children: row === null || row === void 0 ? void 0 : row.campaignGroup.name }), (row === null || row === void 0 ? void 0 : row.campaignGroup.ticket) ===
229
- Enum_1.ACTIVE_CAMPAIGN_TICKET ? ((0, jsx_runtime_1.jsx)(icons_material_1.CheckCircle, { fontSize: 'small', sx: {
230
- paddingLeft: '4px',
231
- marginBottom: '-4px',
232
- }, style: {
233
- color: (0, Utils_1.checkCampaignIsRunning)(row)
234
- ? '#008000'
235
- : '#8D8D8D',
236
- } })) : ((0, jsx_runtime_1.jsx)(icons_material_1.RemoveCircle, { fontSize: 'small', sx: {
237
- paddingLeft: '4px',
238
- marginBottom: '-4px',
239
- }, color: "primary" })), (0, jsx_runtime_1.jsx)(material_1.Typography, { component: 'span', sx: {
245
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, { style: { paddingLeft: '32px' }, children: [(0, jsx_runtime_1.jsx)("span", { children: row === null || row === void 0 ? void 0 : row.campaignGroup.name }), (0, jsx_runtime_1.jsx)(material_1.Typography, { component: 'span', sx: {
240
246
  color: '#000',
241
247
  fontSize: '1.1rem',
242
248
  marginLeft: '8px',
243
249
  fontFamily: '"Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2" !important',
244
- }, children: (0, Utils_1.getCampaignPriority)(row === null || row === void 0 ? void 0 : row.campaignGroup.priority) }),
245
- //Check trong ads có bất kỳ ad nào isReverved
246
- (row === null || row === void 0 ? void 0 : row.campaignGroup.isReserved) && ((0, jsx_runtime_1.jsx)(material_1.Chip, { sx: {
247
- backgroundColor: '#c49f47',
248
- color: '#fff',
249
- height: '18px',
250
- marginBottom: '.1rem',
251
- marginLeft: '4px',
252
- }, size: "small", label: t('Campaign.Reserved') }))] }));
250
+ }, children: (0, Utils_1.getCampaignPriority)(row === null || row === void 0 ? void 0 : row.campaignGroup.priority) }), renderStatus(row)] }));
253
251
  }
254
252
  },
255
253
  },
@@ -85,11 +85,10 @@ var resData = {
85
85
  id: 1,
86
86
  campaignId: '5111120384159200990',
87
87
  name: 'Lotusa',
88
- ticket: 1,
88
+ status: 1,
89
89
  priority: 0,
90
90
  bookingAmount: 0,
91
91
  bonusAmount: 0,
92
- isReserved: false,
93
92
  },
94
93
  ads: [
95
94
  {
@@ -250,7 +249,6 @@ jest.mock('AWING/PageManagement', function () { return ({
250
249
  props.onChangeQueryInput({
251
250
  advancedObject: {
252
251
  status: '0',
253
- isReserved: true,
254
252
  priority: '0',
255
253
  type: '1',
256
254
  directoryId: '4684432198852342857',
@@ -1,8 +1,10 @@
1
- import { CampaignModel, Directory, CampaignGroupModel, Attribute } from '../Types';
1
+ import { CampaignModel, Directory, CampaignGroupModel, Attribute, ICampaignApprovalTable } from '../Types';
2
2
  import { WeightContainerProps } from './TabSubCampaign/Weight';
3
+ import { MenuOption } from '../../../AWING';
3
4
  export declare const directoriesState: import("recoil").RecoilState<Directory[]>;
4
5
  export declare const attributesState: import("recoil").RecoilState<Attribute[]>;
5
6
  export declare const isCreateState: import("recoil").RecoilState<boolean>;
7
+ export declare const campaignApprovalTableState: import("recoil").RecoilState<ICampaignApprovalTable[]>;
6
8
  /**
7
9
  * Đánh dấu việc cần xác nhận lại trước khi đóng (set thành true khi có bất kỳ chỉnh sửa campaign nào)
8
10
  */
@@ -19,6 +21,10 @@ export declare const campaignState: import("recoil").RecoilState<import("../Type
19
21
  * State lưu thông tin của CampaignAttributes
20
22
  */
21
23
  export declare const campaignAttributesState: import("recoil").RecoilState<import("../Types").CampaignAttribute[]>;
24
+ /**
25
+ * State lưu thông tin của CampaignApproval
26
+ */
27
+ export declare const campaignApprovalState: import("recoil").RecoilState<import("../Types").CampaignApproval[] | undefined>;
22
28
  /**
23
29
  * State lưu thông tin của chiến dịch con
24
30
  */
@@ -48,3 +54,4 @@ export declare const readyForSubmitState: import("recoil").RecoilValueReadOnly<b
48
54
  * Nếu Weight render trong AdRow thì sẽ không đóng được DateRangePicker
49
55
  */
50
56
  export declare const weightState: import("recoil").RecoilState<WeightContainerProps>;
57
+ export declare const cacheSearchPageState: import("recoil").RecoilState<Record<string, MenuOption[]>>;
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.weightState = exports.readyForSubmitState = exports.tabPartnerValidState = exports.tabSubCampaignValidState = exports.tabInfomationValidState = exports.campaignPartnerState = exports.campaignGroupsState = exports.campaignAttributesState = exports.campaignState = exports.campaignModelState = exports.confirmExitState = exports.isCreateState = exports.attributesState = exports.directoriesState = void 0;
14
+ exports.cacheSearchPageState = exports.weightState = exports.readyForSubmitState = exports.tabPartnerValidState = exports.tabSubCampaignValidState = exports.tabInfomationValidState = exports.campaignPartnerState = exports.campaignGroupsState = exports.campaignApprovalState = exports.campaignAttributesState = exports.campaignState = exports.campaignModelState = exports.confirmExitState = exports.campaignApprovalTableState = exports.isCreateState = exports.attributesState = exports.directoriesState = void 0;
15
15
  var recoil_1 = require("recoil");
16
16
  var Utils_1 = require("../Utils");
17
17
  var atoms_1 = require("./TabSubCampaign/atoms");
@@ -28,6 +28,10 @@ exports.isCreateState = (0, recoil_1.atom)({
28
28
  key: 'isCreateState',
29
29
  default: false,
30
30
  });
31
+ exports.campaignApprovalTableState = (0, recoil_1.atom)({
32
+ key: 'campaignApprovalTableState',
33
+ default: [],
34
+ });
31
35
  /**
32
36
  * Đánh dấu việc cần xác nhận lại trước khi đóng (set thành true khi có bất kỳ chỉnh sửa campaign nào)
33
37
  */
@@ -52,10 +56,9 @@ exports.campaignModelState = (0, recoil_1.atom)({
52
56
  id: 1,
53
57
  name: 'Sub-Campaign 1',
54
58
  priority: (0, Utils_1.getIndexPriority)(Enum_1.CampaignPriority.ClassB),
55
- ticket: Enum_1.CampaignTicket.INACTIVE,
59
+ status: Enum_1.CampaignStatus.Draft,
56
60
  bookingAmount: 10,
57
61
  bonusAmount: 0,
58
- isReserved: false,
59
62
  billingUnit: 1,
60
63
  },
61
64
  ads: [],
@@ -103,6 +106,23 @@ exports.campaignAttributesState = (0, recoil_1.selector)({
103
106
  set(exports.confirmExitState, true);
104
107
  }
105
108
  });
109
+ /**
110
+ * State lưu thông tin của CampaignApproval
111
+ */
112
+ exports.campaignApprovalState = (0, recoil_1.selector)({
113
+ key: 'campaignApproval',
114
+ get: function (_a) {
115
+ var get = _a.get;
116
+ var campaignModel = get(exports.campaignModelState);
117
+ return campaignModel.campaignApprovals;
118
+ },
119
+ set: function (_a, campaignApprovals) {
120
+ var set = _a.set, get = _a.get;
121
+ var campaignModel = get(exports.campaignModelState);
122
+ set(exports.campaignModelState, campaignApprovals instanceof recoil_1.DefaultValue ?
123
+ campaignApprovals : __assign(__assign({}, campaignModel), { campaignApprovals: campaignApprovals }));
124
+ }
125
+ });
106
126
  /**
107
127
  * State lưu thông tin của chiến dịch con
108
128
  */
@@ -207,3 +227,7 @@ exports.weightState = (0, recoil_1.atom)({
207
227
  isOpen: false,
208
228
  }
209
229
  });
230
+ exports.cacheSearchPageState = (0, recoil_1.atom)({
231
+ key: 'cacheSearchPageState',
232
+ default: {},
233
+ });
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ICampaignApprovalSubRow, ICampaignApprovalTable, ICampaignApprovalTableRow } from '../../../../ACM-AXN/Campaign/Types';
3
+ interface TableRowProps {
4
+ row: ICampaignApprovalTable;
5
+ link: ICampaignApprovalTableRow;
6
+ sub: ICampaignApprovalSubRow;
7
+ linkIndex: number;
8
+ subIndex: number;
9
+ rowSelected: string[];
10
+ handleRowSelect: (id: string) => void;
11
+ updateRow: (dataTableUpdate: {
12
+ status: number;
13
+ description: string;
14
+ }, rowId: string, linkId: string) => void;
15
+ }
16
+ declare const TableRowMemo: React.FC<TableRowProps>;
17
+ export default TableRowMemo;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ var jsx_runtime_1 = require("react/jsx-runtime");
27
+ var react_1 = __importStar(require("react"));
28
+ var material_1 = require("@mui/material");
29
+ var Enum_1 = require("../../../../ACM-AXN/Campaign/Enum");
30
+ var react_i18next_1 = require("react-i18next");
31
+ var TableRowMemo = react_1.default.memo(function (_a) {
32
+ var _b, _c, _d;
33
+ var row = _a.row, link = _a.link, sub = _a.sub, linkIndex = _a.linkIndex, subIndex = _a.subIndex, rowSelected = _a.rowSelected, handleRowSelect = _a.handleRowSelect, updateRow = _a.updateRow;
34
+ var isSelect = (_b = link.campaign) === null || _b === void 0 ? void 0 : _b.some(function (campaign) {
35
+ return campaign.subCampaigns.some(function (sub) {
36
+ var _a;
37
+ return ![
38
+ Enum_1.CampaignStatus.Draft,
39
+ Enum_1.CampaignStatus.Reserved,
40
+ Enum_1.CampaignStatus.Done,
41
+ ].includes((_a = sub.status) !== null && _a !== void 0 ? _a : Enum_1.CampaignStatus.Draft);
42
+ });
43
+ });
44
+ var _e = (0, react_1.useState)((_c = link.status) !== null && _c !== void 0 ? _c : Enum_1.CampaignApprovalStatus.Draft), selectStatus = _e[0], setSelectStatus = _e[1];
45
+ var _f = (0, react_1.useState)((_d = link.description) !== null && _d !== void 0 ? _d : ''), valueInput = _f[0], setValueInput = _f[1];
46
+ var t = (0, react_i18next_1.useTranslation)().t;
47
+ var optionsStatus = (0, react_1.useMemo)(function () {
48
+ return [
49
+ {
50
+ value: Enum_1.CampaignApprovalStatus.Draft,
51
+ label: t('Campaign.Approval.Draft'),
52
+ },
53
+ {
54
+ value: Enum_1.CampaignApprovalStatus.PendingApproval,
55
+ label: t('Campaign.Approval.PendingApproval'),
56
+ },
57
+ {
58
+ value: Enum_1.CampaignApprovalStatus.Approval,
59
+ label: t('Campaign.Approval.Approval'),
60
+ },
61
+ {
62
+ value: Enum_1.CampaignApprovalStatus.Rejected,
63
+ label: t('Campaign.Approval.Rejected'),
64
+ },
65
+ ];
66
+ }, []);
67
+ var handleStatusChange = (0, react_1.useCallback)(function (value) {
68
+ var newStatus = value;
69
+ setSelectStatus(newStatus);
70
+ updateRow({
71
+ status: newStatus,
72
+ description: valueInput,
73
+ }, row.id, link.id);
74
+ }, [row, link]);
75
+ var handleInputChange = (0, react_1.useCallback)(function (event) {
76
+ var newValue = event.target.value;
77
+ setValueInput(newValue);
78
+ updateRow({
79
+ status: selectStatus,
80
+ description: newValue,
81
+ }, row.id, link.id);
82
+ }, [row, link]);
83
+ return ((0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [linkIndex === 0 && subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: row.detail.reduce(function (acc, curr) { return acc + curr.campaign.length; }, 0), style: { width: 60, padding: '0 0 0 4px' }, children: (0, jsx_runtime_1.jsx)(material_1.Box, { display: 'flex', children: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: rowSelected.some(function (x) { return x === row.id; }), color: "primary", onChange: function () { return handleRowSelect(row.id); } }) }) })), linkIndex === 0 && subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: row.detail.reduce(function (acc, curr) { return acc + curr.campaign.length; }, 0), children: row.domain.domainName })), subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: link.campaign.length, style: { maxWidth: 400 }, children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
84
+ display: '-webkit-box',
85
+ WebkitLineClamp: 2,
86
+ WebkitBoxOrient: 'vertical',
87
+ overflow: 'hidden',
88
+ textOverflow: 'ellipsis',
89
+ }, children: (0, jsx_runtime_1.jsx)(material_1.Link, { href: link.linkPreview, sx: {
90
+ wordWrap: 'break-word',
91
+ wordBreak: 'break-all',
92
+ color: 'blue',
93
+ textDecorationColor: 'unset',
94
+ }, underline: "hover", target: "_blank", children: link.linkPreview }) }) })), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
95
+ display: 'flex',
96
+ flexWrap: 'wrap',
97
+ gap: '8px',
98
+ }, children: sub.subCampaigns.map(function (subCampaign) { return ((0, jsx_runtime_1.jsx)(material_1.Chip, { label: subCampaign.name }, subCampaign.id)); }) }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
99
+ display: 'flex',
100
+ flexWrap: 'wrap',
101
+ gap: '8px',
102
+ }, children: sub.ads.map(function (ad) { return ((0, jsx_runtime_1.jsx)(material_1.Chip, { label: ad.name }, ad.id)); }) }) }), subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: link.campaign.length, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { sx: { width: 150 }, children: (0, jsx_runtime_1.jsx)(material_1.Select, { value: selectStatus, onChange: function (e) {
103
+ return handleStatusChange(e.target.value);
104
+ }, sx: {
105
+ '& .MuiSelect-select': {
106
+ paddingLeft: 'unset !important',
107
+ },
108
+ }, disabled: !isSelect, children: optionsStatus.map(function (item) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: item.value, disabled: link.status ===
109
+ Enum_1.CampaignApprovalStatus.Draft
110
+ ? item.value ===
111
+ Enum_1.CampaignApprovalStatus.Rejected
112
+ : item.value !==
113
+ Enum_1.CampaignApprovalStatus.Rejected, children: item.label }, item.value)); }) }) }) })), subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: link.campaign.length, width: 200, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { value: valueInput, onChange: handleInputChange, multiline: true, minRows: 2, maxRows: 5, fullWidth: true, sx: {
114
+ '& .MuiInputBase-root': {
115
+ minWidth: '150px',
116
+ paddingLeft: 'unset !important',
117
+ },
118
+ } }) }))] }, "".concat(row.id, "-").concat(linkIndex, "-").concat(subIndex)));
119
+ });
120
+ TableRowMemo.displayName = 'TableRowMemo';
121
+ exports.default = TableRowMemo;
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var jsx_runtime_1 = require("react/jsx-runtime");
54
+ var react_1 = require("@testing-library/react");
55
+ var Enum_1 = require("../../../../ACM-AXN/Campaign/Enum");
56
+ var RowTable_1 = __importDefault(require("./RowTable"));
57
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
58
+ // Mock the useTranslation hook
59
+ jest.mock('react-i18next', function () { return ({
60
+ useTranslation: function () { return ({ t: function (key) { return key; } }); },
61
+ }); });
62
+ var mockProps = {
63
+ row: {
64
+ id: '100',
65
+ domain: {
66
+ domainName: 'Vincom',
67
+ domainId: '100',
68
+ },
69
+ detail: [
70
+ {
71
+ id: '10c77e54-8aff-4e36-8334-70eca26d5a75',
72
+ linkPreview: 'http://connect.awifi.com.vn/Preview/Page?loginId=5122170857262705548&welcomeId=4841207366749869113&isNetworkCampaign=true&domainId=100',
73
+ campaign: [
74
+ {
75
+ subCampaigns: [
76
+ {
77
+ id: 1,
78
+ name: 'Sub-Campaign 1',
79
+ },
80
+ ],
81
+ ads: [
82
+ {
83
+ id: 1,
84
+ name: 'Ad 1',
85
+ },
86
+ {
87
+ id: 2,
88
+ name: 'Ad 2',
89
+ },
90
+ ],
91
+ },
92
+ ],
93
+ status: 0,
94
+ description: '',
95
+ loginId: '5122170857262705548',
96
+ welcomeId: '4841207366749869113',
97
+ },
98
+ ],
99
+ },
100
+ link: {
101
+ id: '10c77e54-8aff-4e36-8334-70eca26d5a75',
102
+ linkPreview: 'http://connect.awifi.com.vn/Preview/Page?loginId=5122170857262705548&welcomeId=4841207366749869113&isNetworkCampaign=true&domainId=100',
103
+ campaign: [
104
+ {
105
+ subCampaigns: [
106
+ {
107
+ id: 1,
108
+ name: 'Sub-Campaign 1',
109
+ },
110
+ ],
111
+ ads: [
112
+ {
113
+ id: 1,
114
+ name: 'Ad 1',
115
+ },
116
+ {
117
+ id: 2,
118
+ name: 'Ad 2',
119
+ },
120
+ ],
121
+ },
122
+ ],
123
+ status: 0,
124
+ description: '',
125
+ loginId: '5122170857262705548',
126
+ welcomeId: '4841207366749869113',
127
+ },
128
+ sub: {
129
+ subCampaigns: [
130
+ {
131
+ id: 1,
132
+ name: 'Sub-Campaign 1',
133
+ },
134
+ ],
135
+ ads: [
136
+ {
137
+ id: 1,
138
+ name: 'Ad 1',
139
+ },
140
+ {
141
+ id: 2,
142
+ name: 'Ad 2',
143
+ },
144
+ ],
145
+ },
146
+ linkIndex: 0,
147
+ subIndex: 0,
148
+ rowSelected: [],
149
+ handleRowSelect: jest.fn(),
150
+ updateRow: jest.fn(),
151
+ };
152
+ // Mock cho các component MUI
153
+ jest.mock('@mui/material', function () { return (__assign(__assign({}, jest.requireActual('@mui/material')), { TableCell: function (_a) {
154
+ var children = _a.children;
155
+ return (0, jsx_runtime_1.jsx)("td", { children: children });
156
+ }, Chip: function (_a) {
157
+ var label = _a.label;
158
+ return (0, jsx_runtime_1.jsx)("span", { children: label });
159
+ }, FormControl: function (_a) {
160
+ var children = _a.children;
161
+ return (0, jsx_runtime_1.jsx)("div", { children: children });
162
+ }, Select: function (_a) {
163
+ var children = _a.children, value = _a.value, onChange = _a.onChange;
164
+ return ((0, jsx_runtime_1.jsx)("select", { value: value, onChange: onChange, children: children }));
165
+ }, MenuItem: function (_a) {
166
+ var children = _a.children, value = _a.value;
167
+ return ((0, jsx_runtime_1.jsx)("option", { value: value, children: children }));
168
+ }, TextField: function (_a) {
169
+ var value = _a.value, onChange = _a.onChange;
170
+ return ((0, jsx_runtime_1.jsx)("input", { type: "text", value: value, onChange: onChange }));
171
+ }, Link: function (_a) {
172
+ var children = _a.children, href = _a.href, target = _a.target;
173
+ return ((0, jsx_runtime_1.jsx)("a", { href: href, target: target, children: children }));
174
+ } })); });
175
+ var renderUi = function () {
176
+ return (0, react_1.render)((0, jsx_runtime_1.jsx)("table", { children: (0, jsx_runtime_1.jsx)("tbody", { children: (0, jsx_runtime_1.jsx)(RowTable_1.default, __assign({}, mockProps)) }) }));
177
+ };
178
+ describe('TableRowMemo', function () {
179
+ it('renders correctly', function () {
180
+ renderUi();
181
+ expect(react_1.screen.getByText('Vincom')).toBeInTheDocument();
182
+ expect(react_1.screen.getByText('http://connect.awifi.com.vn/Preview/Page?loginId=5122170857262705548&welcomeId=4841207366749869113&isNetworkCampaign=true&domainId=100')).toBeInTheDocument();
183
+ expect(react_1.screen.getByText('Sub-Campaign 1')).toBeInTheDocument();
184
+ expect(react_1.screen.getByText('Ad 1')).toBeInTheDocument();
185
+ });
186
+ it('handles checkbox change', function () {
187
+ renderUi();
188
+ var checkbox = react_1.screen.getByRole('checkbox');
189
+ react_1.fireEvent.click(checkbox);
190
+ expect(mockProps.handleRowSelect).toHaveBeenCalledWith('100');
191
+ });
192
+ it('handles status change', function () { return __awaiter(void 0, void 0, void 0, function () {
193
+ var select;
194
+ return __generator(this, function (_a) {
195
+ switch (_a.label) {
196
+ case 0:
197
+ renderUi();
198
+ select = react_1.screen.getByRole('combobox');
199
+ return [4 /*yield*/, user_event_1.default.selectOptions(select, Enum_1.CampaignApprovalStatus.Rejected.toString())];
200
+ case 1:
201
+ _a.sent();
202
+ expect(mockProps.updateRow).toHaveBeenCalledWith({
203
+ status: Enum_1.CampaignApprovalStatus.Rejected.toString(),
204
+ description: '',
205
+ }, '100', '10c77e54-8aff-4e36-8334-70eca26d5a75');
206
+ return [2 /*return*/];
207
+ }
208
+ });
209
+ }); });
210
+ it('handles description change', function () {
211
+ renderUi();
212
+ var input = react_1.screen.getByRole('textbox');
213
+ react_1.fireEvent.change(input, { target: { value: 'New description' } });
214
+ expect(mockProps.updateRow).toHaveBeenCalledWith({
215
+ status: Enum_1.CampaignApprovalStatus.PendingApproval,
216
+ description: 'New description',
217
+ }, '100', '10c77e54-8aff-4e36-8334-70eca26d5a75');
218
+ });
219
+ });
@@ -0,0 +1,2 @@
1
+ declare const RunInBackground: () => import("react/jsx-runtime").JSX.Element;
2
+ export default RunInBackground;