awing-library 2.1.134-beta → 2.1.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/lib/ACM-AXN/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 +317 -104
  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 -54
  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 +8 -6
  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 +1 -1
  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.js +69 -124
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.d.ts +2 -0
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +8 -3
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  64. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  65. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  66. package/lib/ACM-AXN/Campaign/Enum.d.ts +23 -4
  67. package/lib/ACM-AXN/Campaign/Enum.js +30 -10
  68. package/lib/ACM-AXN/Campaign/Types.d.ts +52 -6
  69. package/lib/ACM-AXN/Campaign/Utils.d.ts +5 -0
  70. package/lib/ACM-AXN/Campaign/Utils.js +29 -2
  71. package/lib/ACM-AXN/Campaign/index.js +2 -2
  72. package/lib/ACM-AXN/CampaignPlan/Container.js +21 -10
  73. package/lib/ACM-AXN/CampaignPlan/Container.test.d.ts +1 -1
  74. package/lib/ACM-AXN/CampaignPlan/Container.test.js +1 -2
  75. package/lib/ACM-AXN/CampaignPlan/Detail.js +5 -7
  76. package/lib/ACM-AXN/CampaignPlan/Detail.test.d.ts +1 -1
  77. package/lib/ACM-AXN/CampaignPlan/Detail.test.js +2 -3
  78. package/lib/ACM-AXN/CampaignPlan/Filter.js +11 -4
  79. package/lib/ACM-AXN/CampaignPlan/Filter.test.d.ts +1 -1
  80. package/lib/ACM-AXN/CampaignPlan/Filter.test.js +0 -1
  81. package/lib/ACM-AXN/CampaignPlan/Types.d.ts +6 -74
  82. package/lib/ACM-AXN/CampaignPlan/Types.js +1 -253
  83. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  84. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  85. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +7 -5
  86. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  87. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  88. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  89. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  90. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  91. package/lib/ACM-AXN/Common/Constant.js +2 -0
  92. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  93. package/lib/ACM-AXN/Common/Enum.js +19 -4
  94. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  95. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  96. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  97. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  98. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  99. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  100. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  101. package/lib/ACM-AXN/Page/Constant.js +2 -0
  102. package/lib/ACM-AXN/Page/Container.js +3 -3
  103. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  104. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  105. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  106. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  107. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  108. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  109. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  110. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  111. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -44
  112. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  113. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  114. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  115. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +10 -9
  116. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +17 -4
  117. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  118. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  119. package/lib/ACM-AXN/Page/enums.js +7 -1
  120. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  121. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  122. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  123. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  124. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  125. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  126. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  127. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  131. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  132. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  133. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  134. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  135. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  136. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +13 -10
  137. package/lib/ACM-AXN/Statistics/ControlPanel.js +16 -4
  138. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  139. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  140. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  141. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +3 -3
  142. package/lib/ACM-AXN/Template/Container.js +1 -1
  143. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  146. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  147. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  148. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  149. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  150. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  151. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  152. package/lib/ACM-AXN/Template/Import.js +2 -2
  153. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  154. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  155. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  156. package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +23 -11
  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 +25 -33
  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 +55 -30
  180. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  181. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  182. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  183. package/lib/AWING/Form/useForm.js +3 -2
  184. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  185. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  186. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  187. package/lib/AWING/GoogleMap/index.js +41 -0
  188. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  189. package/lib/AWING/GoogleMap/interface.js +2 -0
  190. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  191. package/lib/AWING/GoogleMap/utils.js +135 -0
  192. package/lib/AWING/GroupTable/GroupTable.js +4 -5
  193. package/lib/AWING/GroupTable/component.d.ts +1 -0
  194. package/lib/AWING/GroupTable/component.js +2 -2
  195. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  196. package/lib/AWING/NumberFormat/index.js +2 -2
  197. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  198. package/lib/AWING/Pagination/index.js +11 -3
  199. package/lib/AWING/index.d.ts +1 -0
  200. package/lib/AWING/index.js +1 -0
  201. package/lib/AWING/ultis/validation.d.ts +1 -0
  202. package/lib/AWING/ultis/validation.js +21 -5
  203. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  204. package/lib/Commons/Components/DeprecatedEnhancedDialog.js +1 -1
  205. package/lib/Commons/Hooks/usePath.js +3 -3
  206. package/lib/Utils/Helpers.d.ts +3 -2
  207. package/lib/Utils/Helpers.js +48 -8
  208. package/lib/i18n.js +14 -2
  209. package/lib/translate/en/translation.json +112 -71
  210. package/lib/translate/id/translation.json +870 -0
  211. package/lib/translate/ja/translation.json +870 -0
  212. package/lib/translate/th/translation.json +870 -0
  213. package/lib/translate/vi/translation.json +71 -30
  214. package/package.json +131 -126
  215. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  216. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -21,6 +21,15 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  }
22
22
  return t;
23
23
  };
24
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
26
+ if (ar || !(i in from)) {
27
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28
+ ar[i] = from[i];
29
+ }
30
+ }
31
+ return to.concat(ar || Array.prototype.slice.call(from));
32
+ };
24
33
  var __importDefault = (this && this.__importDefault) || function (mod) {
25
34
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
35
  };
@@ -50,14 +59,11 @@ var TabLabel_1 = __importDefault(require("../../../Commons/Components/TabLabel")
50
59
  var usePath_1 = __importDefault(require("../../../Commons/Hooks/usePath"));
51
60
  var Wrapper_1 = __importDefault(require("../../../AWING/HOC/Wrapper"));
52
61
  var TabStatistic_1 = __importDefault(require("./TabStatistic"));
53
- var route = [
54
- Constant_1.Constants.CAMPAIGN_INFORMATION,
55
- Constant_1.Constants.CAMPAIGN_SUBCAMPAIGN,
56
- Constant_1.Constants.CAMPAIGN_STATISTICS,
57
- Constant_1.Constants.CAMPAIGN_CONNECT,
58
- Constant_1.Constants.CAMPAIGN_PERMISSION,
59
- ];
60
- var CreateOrEdit = function () {
62
+ var Enum_2 = require("../../../ACM-AXN/Common/Enum");
63
+ var Context_1 = require("../../../Context");
64
+ var TabApprove_1 = __importDefault(require("./TabApprove"));
65
+ var RunInBackground_1 = __importDefault(require("./TabApprove/RunInBackground"));
66
+ var CreateOrEdit = function (props) {
61
67
  var _a;
62
68
  var _b = (0, Router_1.useParams)(), campaignId = _b.campaignId, tabName = _b.tabName;
63
69
  var location = (0, Router_1.useLocation)();
@@ -65,20 +71,25 @@ var CreateOrEdit = function () {
65
71
  var matchPath = (0, usePath_1.default)();
66
72
  var t = (0, react_i18next_1.useTranslation)().t;
67
73
  var _c = (0, Hooks_1.default)(), service = _c.service, otherProps = __rest(_c, ["service"]);
74
+ var confirm = (0, Context_1.useAwing)().appHelper.confirm;
68
75
  var _d = (0, recoil_1.useRecoilState)(Recoils_1.campaignModelState), campaignData = _d[0], setCampaignData = _d[1];
69
76
  var setCampaignPages = (0, recoil_1.useSetRecoilState)(atoms_1.campaignPageIdState);
70
77
  var setDirectories = (0, recoil_1.useSetRecoilState)(Recoils_1.directoriesState);
71
78
  var setAttributes = (0, recoil_1.useSetRecoilState)(Recoils_1.attributesState);
72
- var confirmExit = (0, recoil_1.useRecoilValue)(Recoils_1.confirmExitState);
79
+ var _e = (0, recoil_1.useRecoilState)(Recoils_1.confirmExitState), confirmExit = _e[0], setConfirmExit = _e[1];
73
80
  var readyForSubmit = (0, recoil_1.useRecoilValue)(Recoils_1.readyForSubmitState);
74
81
  var setCreate = (0, recoil_1.useSetRecoilState)(Recoils_1.isCreateState);
82
+ var _f = (0, react_1.useState)(), fullPlaces = _f[0], setFullPlaces = _f[1];
83
+ var _g = (0, react_1.useState)(false), validWizad = _g[0], setValidWizad = _g[1];
84
+ var _h = (0, react_1.useState)(false), editModeWizard = _h[0], setEditModeWizard = _h[1];
85
+ var childRefWizard = (0, react_1.useRef)(null);
75
86
  var tabValid = {
76
87
  tabInfomationValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabInfomationValidState),
77
88
  tabSubCampaignValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabSubCampaignValidState),
78
89
  tabPartnerValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabPartnerValidState),
79
90
  };
80
- var _e = (0, react_1.useState)('0'), value = _e[0], setValue = _e[1];
81
- var _f = (0, react_1.useState)(true), loading = _f[0], setLoading = _f[1];
91
+ var _j = (0, react_1.useState)('0'), value = _j[0], setValue = _j[1];
92
+ var _k = (0, react_1.useState)(true), loading = _k[0], setLoading = _k[1];
82
93
  var componentStatus = (0, react_1.useMemo)(function () {
83
94
  return location.pathname.includes(Constant_1.Constants.CAMPAIGN_DETAIL) &&
84
95
  !!campaignId
@@ -88,16 +99,20 @@ var CreateOrEdit = function () {
88
99
  : Constant_1.Constants.CAMPAIGN_CREATE;
89
100
  }, [location.pathname, campaignId]);
90
101
  (0, react_1.useEffect)(function () {
91
- if (!service.attributesGetByObjectTypeCode && !campaignData.campaignAttributes.length) {
92
- setCampaignData(function (prev) { return (__assign(__assign({}, prev), { campaignAttributes: [""] })); });
102
+ if (!service.attributesGetByObjectTypeCode &&
103
+ !campaignData.campaignAttributes.length) {
104
+ setCampaignData(function (prev) {
105
+ return (__assign(__assign({}, prev), { campaignAttributes: [''] }));
106
+ });
93
107
  }
94
- // eslint-disable-next-line react-hooks/exhaustive-deps
95
- }, [service, campaignData.campaignAttributes]);
108
+ // eslint-disable-next-line react-hooks/exhaustive-deps
109
+ }, [campaignData.campaignAttributes]);
96
110
  (0, react_1.useEffect)(function () {
97
111
  setLoading(true);
98
112
  Promise.all([getCampaignData(), getPage()]).finally(function () {
99
113
  setLoading(false);
100
114
  });
115
+ service.administrativeUnitsGet().then(setFullPlaces);
101
116
  // eslint-disable-next-line react-hooks/exhaustive-deps
102
117
  }, []);
103
118
  (0, react_1.useEffect)(function () {
@@ -108,54 +123,100 @@ var CreateOrEdit = function () {
108
123
  .directoriesGetByObjectTypeCode(Enum_1.DirectoryRoot.Campaign)
109
124
  .then(setDirectories);
110
125
  if (service.attributesGetByObjectTypeCode) {
111
- service.attributesGetByObjectTypeCode(Enum_1.DirectoryRoot.Campaign).then(setAttributes);
126
+ service
127
+ .attributesGetByObjectTypeCode(Enum_1.DirectoryRoot.Campaign)
128
+ .then(setAttributes);
112
129
  }
113
- }, [service, setDirectories, setAttributes]);
114
- (0, react_1.useLayoutEffect)(function () {
115
- if (tabName && route.includes(tabName)) {
116
- setValue(String(route.indexOf(tabName)));
117
- }
118
- }, [tabName]);
119
- var tabsList = (0, react_1.useMemo)(function () {
120
- return [
121
- {
122
- label: t('Campaign.Info'),
123
- isShow: true,
124
- valid: 'tabInfomationValid',
125
- component: (0, jsx_runtime_1.jsx)(TabInfomation_1.default, {}),
126
- },
130
+ // eslint-disable-next-line react-hooks/exhaustive-deps
131
+ }, []);
132
+ var getTabs = function () {
133
+ var baseTabs = !(campaignData.campaignWizard && !editModeWizard && (props === null || props === void 0 ? void 0 : props.quickWizard))
134
+ ? [
135
+ {
136
+ label: t('Campaign.Info'),
137
+ isShow: true,
138
+ valid: 'tabInfomationValid',
139
+ component: (0, jsx_runtime_1.jsx)(TabInfomation_1.default, {}),
140
+ route: Constant_1.Constants.CAMPAIGN_INFORMATION,
141
+ },
142
+ {
143
+ label: t('Campaign.SubCampaign'),
144
+ isShow: true,
145
+ valid: 'tabSubCampaignValid',
146
+ component: (0, jsx_runtime_1.jsx)(TabSubCampaign_1.default, {}),
147
+ route: Constant_1.Constants.CAMPAIGN_SUBCAMPAIGN,
148
+ },
149
+ ]
150
+ : [
151
+ {
152
+ label: t('Campaign.Wizard'),
153
+ isShow: true,
154
+ component: props === null || props === void 0 ? void 0 : props.quickWizard({
155
+ ref: childRefWizard,
156
+ }),
157
+ route: Constant_1.Constants.CAMPAIGN_WIZARD,
158
+ },
159
+ ];
160
+ return __spreadArray(__spreadArray([], baseTabs, true), [
127
161
  {
128
- label: t('Campaign.SubCampaign'),
129
- isShow: true,
130
- valid: 'tabSubCampaignValid',
131
- component: (0, jsx_runtime_1.jsx)(TabSubCampaign_1.default, {}),
162
+ label: t('Campaign.Approval.Title'),
163
+ isShow: Boolean(service.attributesGetByObjectTypeCode) && componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL,
164
+ component: (0, jsx_runtime_1.jsx)(TabApprove_1.default, {}),
165
+ route: Constant_1.Constants.CAMPAIGN_APPROVE,
132
166
  },
133
167
  {
134
168
  label: t('Campaign.Statistic'),
135
169
  isShow: componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL,
136
- component: ((0, jsx_runtime_1.jsx)(TabStatistic_1.default, __assign({ campaignId: campaignData.campaign.id, subCampaigns: campaignData.campaignGroups }, otherProps, { services: service }))),
170
+ component: ((0, jsx_runtime_1.jsx)(TabStatistic_1.default, __assign({ campaignId: campaignData.campaign.id, campaignName: campaignData.campaign.name, subCampaigns: campaignData.campaignGroups, fullPlaces: fullPlaces }, otherProps, { services: service }))),
171
+ route: Constant_1.Constants.CAMPAIGN_STATISTICS,
137
172
  },
138
173
  {
139
174
  label: t('Campaign.Partner'),
140
175
  isShow: true,
141
176
  component: (0, jsx_runtime_1.jsx)(TabPartner_1.default, {}),
142
177
  valid: 'tabPartnerValid',
178
+ route: Constant_1.Constants.CAMPAIGN_CONNECT,
143
179
  },
144
180
  {
145
181
  label: t('Campaign.Permission'),
146
182
  isShow: componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL,
147
183
  component: (0, jsx_runtime_1.jsx)(TabPermission_1.default, {}),
184
+ route: Constant_1.Constants.CAMPAIGN_PERMISSION,
148
185
  },
149
- ].filter(function (tab) { return tab.isShow; });
186
+ ], false).filter(function (tab) { return tab.isShow; });
187
+ };
188
+ var tabsList = (0, react_1.useMemo)(function () {
189
+ return getTabs();
150
190
  },
151
191
  // eslint-disable-next-line react-hooks/exhaustive-deps
152
- [t, componentStatus, Constant_1.Constants, campaignData]);
192
+ [t, componentStatus, Constant_1.Constants, campaignData, editModeWizard, campaignData.campaignWizard]);
193
+ (0, react_1.useLayoutEffect)(function () {
194
+ var tabIndex = tabsList.findIndex(function (tab) { return tab.route === tabName; });
195
+ if (tabIndex !== -1) {
196
+ setValue(String(tabIndex));
197
+ }
198
+ else {
199
+ var firstTabRoute = tabsList[0].route;
200
+ navigate((0, Router_1.generatePath)(matchPath, {
201
+ campaignId: campaignId,
202
+ tabName: firstTabRoute,
203
+ }), { replace: true });
204
+ setValue('0');
205
+ }
206
+ }, [tabName, tabsList]);
153
207
  var handleChangeTab = function (_event, newValue) {
154
- navigate((0, Router_1.generatePath)(matchPath, { campaignId: campaignId, tabName: route[Number(newValue)] }), { replace: true });
208
+ var newTab = tabsList[Number(newValue)];
209
+ if (newTab) {
210
+ navigate((0, Router_1.generatePath)(matchPath, {
211
+ campaignId: campaignId,
212
+ tabName: newTab.route,
213
+ }), { replace: true });
214
+ }
155
215
  };
156
216
  var getCampaignData = function () {
157
217
  if (campaignId) {
158
218
  return service.campaignsGet(campaignId).then(function (response) {
219
+ var _a;
159
220
  var campaignModel = response;
160
221
  if (componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL) {
161
222
  //Đánh dấu những group/ad nào không được xoá
@@ -168,8 +229,8 @@ var CreateOrEdit = function () {
168
229
  subCampains[idx].ads[i].cantBeDelete = true;
169
230
  }
170
231
  }
171
- else if (subCamp.campaignGroup.ticket ===
172
- Enum_1.CampaignTicket.ACTIVE) {
232
+ else if (subCamp.campaignGroup.status ===
233
+ Enum_1.CampaignStatus.Active) {
173
234
  subCampains[idx].campaignGroup.cantBeDelete =
174
235
  true;
175
236
  for (var i = 0; i < subCamp.ads.length; i++) {
@@ -181,12 +242,19 @@ var CreateOrEdit = function () {
181
242
  });
182
243
  }
183
244
  else {
245
+ setConfirmExit(true);
184
246
  campaignModel.campaign.name += ' - copy';
185
247
  campaignModel.campaign.createdDate = undefined;
186
248
  campaignModel.campaignGroups.forEach(function (g) {
187
- g.campaignGroup.ticket = Enum_1.CampaignTicket.INACTIVE;
249
+ g.campaignGroup.status = Enum_1.CampaignStatus.Draft;
250
+ if (!service.attributesGetByObjectTypeCode)
251
+ g.campaignGroup.billingUnit =
252
+ Enum_2.AnalyticType.Authentication;
188
253
  });
189
254
  }
255
+ if (componentStatus === Constant_1.Constants.CAMPAIGN_CLONE && ((_a = campaignModel.campaignApprovals) === null || _a === void 0 ? void 0 : _a.length)) {
256
+ campaignModel.campaignApprovals = campaignModel.campaignApprovals.map(function (campaignApproval) { return (__assign(__assign({}, campaignApproval), { status: Enum_1.CampaignApprovalStatus.Draft })); });
257
+ }
190
258
  setCampaignData(campaignModel);
191
259
  });
192
260
  }
@@ -204,32 +272,81 @@ var CreateOrEdit = function () {
204
272
  });
205
273
  };
206
274
  var handleSubmit = function () {
207
- if (!(0, Utils_1.adsClassCValid)(campaignData.campaignGroups
208
- .filter(function (x) {
209
- return (0, Utils_1.checkPriority)(x.campaignGroup.priority, Enum_1.CampaignPriority.ClassC);
210
- })
211
- .flatMap(function (x) { return x.ads; }))) {
212
- return Promise.reject(t('Campaign.CClassDuplicatePlace'));
213
- }
214
- var dataSubmit = __assign(__assign({}, campaignData), { campaignAttributes: campaignData.campaignAttributes.filter(Boolean) });
215
- if (componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL) {
216
- return service.campaignsPut(campaignId, dataSubmit);
275
+ var _a, _b;
276
+ if (campaignData.campaignWizard && !editModeWizard && (props === null || props === void 0 ? void 0 : props.quickWizard)) {
277
+ if (childRefWizard.current) {
278
+ return childRefWizard.current.onSubmit({
279
+ campaignPartner: campaignData.campaignPartner,
280
+ });
281
+ }
217
282
  }
218
283
  else {
219
- return service.campaignsPost(dataSubmit);
284
+ if (!(0, Utils_1.adsClassCValid)(campaignData.campaignGroups
285
+ .filter(function (x) {
286
+ return (0, Utils_1.checkPriority)(x.campaignGroup.priority, Enum_1.CampaignPriority.ClassC);
287
+ })
288
+ .flatMap(function (x) { return x.ads; }))) {
289
+ return Promise.reject(t('Campaign.CClassDuplicatePlace'));
290
+ }
291
+ var dataSubmit = __assign(__assign({}, campaignData), { campaignAttributes: campaignData.campaignAttributes.filter(Boolean), campaignWizard: undefined, campaignApprovals: (_a = campaignData.campaignApprovals) !== null && _a !== void 0 ? _a : [] });
292
+ if (!((_b = dataSubmit.campaignPartner) === null || _b === void 0 ? void 0 : _b.isSendApi)) {
293
+ delete dataSubmit.campaignPartner;
294
+ }
295
+ if (componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL) {
296
+ return service.campaignsPut(campaignId, dataSubmit);
297
+ }
298
+ else {
299
+ return service.campaignsPost(dataSubmit);
300
+ }
301
+ }
302
+ };
303
+ var handleDisableButtonSubmit = function () {
304
+ if (campaignData.campaignWizard && !editModeWizard && (props === null || props === void 0 ? void 0 : props.quickWizard)) {
305
+ return validWizad;
220
306
  }
307
+ return !readyForSubmit || !confirmExit;
308
+ };
309
+ var handleClose = function () {
310
+ if (campaignData.campaignWizard && !editModeWizard && (props === null || props === void 0 ? void 0 : props.quickWizard)) {
311
+ if (childRefWizard.current) {
312
+ childRefWizard.current.resetData();
313
+ }
314
+ }
315
+ };
316
+ var handleSaveProfessionalEditing = function () {
317
+ return new Promise(function (resolve, reject) {
318
+ confirm(function () { var _a; return (_a = handleSubmit()) === null || _a === void 0 ? void 0 : _a.then(resolve); }, function () { return reject(); }, (0, jsx_runtime_1.jsx)(material_1.Typography, { sx: {
319
+ whiteSpace: "break-spaces",
320
+ }, children: t("Campaign.SwitchToProfessionalEditMode") }));
321
+ });
221
322
  };
222
- return ((0, jsx_runtime_1.jsx)(ClassicDrawer_1.default, { title: "".concat(t(['Campaign', campaignId ? 'TitleDetail' : 'Create'].join('.'))).concat(campaignId ? ": ".concat((_a = campaignData === null || campaignData === void 0 ? void 0 : campaignData.campaign) === null || _a === void 0 ? void 0 : _a.name) : '', "\n "), onSubmit: handleSubmit, disableButtonSubmit: !readyForSubmit, confirmExit: confirmExit, childrenWrapperStyle: { padding: 0 }, children: (0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, sx: {
323
+ return ((0, jsx_runtime_1.jsx)(ClassicDrawer_1.default, { title: "".concat(t(['Campaign', campaignId ? 'TitleDetail' : 'Create'].join('.'))).concat(campaignId ? ": ".concat((_a = campaignData === null || campaignData === void 0 ? void 0 : campaignData.campaign) === null || _a === void 0 ? void 0 : _a.name) : '', "\n "), onSubmit: function () { return editModeWizard ? handleSaveProfessionalEditing() : handleSubmit(); }, disableButtonSubmit: handleDisableButtonSubmit(), confirmExit: confirmExit, childrenWrapperStyle: { padding: 0 }, onClose: handleClose, children: (0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, sx: {
223
324
  display: 'flex',
224
325
  flexDirection: 'column',
225
326
  flexGrow: 1,
226
327
  padding: function (theme) { return theme.spacing(3); },
227
- }, children: loading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, component: material_1.Paper, sx: { width: '100%', padding: 0 }, children: (0, jsx_runtime_1.jsxs)(lab_1.TabContext, { value: value, children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: { borderBottom: 1, borderColor: 'divider' }, children: (0, jsx_runtime_1.jsx)(lab_1.TabList, { variant: "scrollable", onChange: handleChangeTab, "aria-label": "lab API tabs example", children: tabsList.map(function (tab, idx) { return ((0, jsx_runtime_1.jsx)(material_1.Tab, { sx: { minWidth: '160px' }, value: String(idx), label: (0, jsx_runtime_1.jsx)(TabLabel_1.default, { content: (0, jsx_runtime_1.jsx)("div", { style: {
228
- fontWeight: 600,
229
- fontSize: '0.875rem',
230
- }, children: tab.label }), error: (tab === null || tab === void 0 ? void 0 : tab.valid)
231
- ? !tabValid[tab === null || tab === void 0 ? void 0 : tab.valid]
232
- : undefined, errContent: (0, jsx_runtime_1.jsx)("span", { style: { marginLeft: '-5px' }, children: "*" }) }) }, idx)); }) }) }), tabsList.map(function (tab, idx) { return ((0, jsx_runtime_1.jsx)(lab_1.TabPanel, { sx: { padding: '0' }, value: String(idx), children: tab.component }, idx)); })] }) })) }) }));
328
+ }, children: loading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, component: material_1.Paper, sx: { width: '100%', padding: 0 }, children: [(0, jsx_runtime_1.jsxs)(lab_1.TabContext, { value: value, children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: { borderBottom: 1, borderColor: 'divider' }, children: (0, jsx_runtime_1.jsx)(lab_1.TabList, { variant: "scrollable", onChange: handleChangeTab, "aria-label": "lab API tabs example", children: tabsList.map(function (tab, idx) { return ((0, jsx_runtime_1.jsx)(material_1.Tab, { sx: { minWidth: '160px' }, value: String(idx), label: (0, jsx_runtime_1.jsx)(TabLabel_1.default, { content: (0, jsx_runtime_1.jsx)("div", { style: {
329
+ fontWeight: 600,
330
+ fontSize: '0.875rem',
331
+ }, children: tab.label }), error: (tab === null || tab === void 0 ? void 0 : tab.valid)
332
+ ? !tabValid[tab === null || tab === void 0 ? void 0 : tab.valid]
333
+ : undefined, errContent: (0, jsx_runtime_1.jsx)("span", { style: {
334
+ marginLeft: '-5px',
335
+ }, children: "*" }) }) }, idx)); }) }) }), campaignData.campaignWizard && !editModeWizard &&
336
+ (props === null || props === void 0 ? void 0 : props.quickWizard) ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [props === null || props === void 0 ? void 0 : props.quickWizard({
337
+ ref: childRefWizard,
338
+ onSubmitWizard: handleSubmit,
339
+ handleValidWizad: setValidWizad,
340
+ handleEditMode: setEditModeWizard,
341
+ sxEdit: {
342
+ display: value === '0'
343
+ ? 'block'
344
+ : 'none',
345
+ },
346
+ type: props.type,
347
+ }), tabsList.map(function (tab, idx) {
348
+ return idx !== 0 && ((0, jsx_runtime_1.jsx)(lab_1.TabPanel, { sx: { padding: '0' }, value: String(idx), children: tab.component }, idx));
349
+ })] })) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: tabsList.map(function (tab, idx) { return ((0, jsx_runtime_1.jsx)(lab_1.TabPanel, { sx: { padding: '0' }, value: String(idx), children: tab.component }, idx)); }) }))] }), Boolean(service.attributesGetByObjectTypeCode) && (0, jsx_runtime_1.jsx)(RunInBackground_1.default, {})] })) }) }));
233
350
  };
234
351
  // eslint-disable-next-line import/no-anonymous-default-export
235
352
  exports.default = (0, Wrapper_1.default)(CreateOrEdit, { component: recoil_1.RecoilRoot });
@@ -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
+ }[];