awing-library 2.1.144-beta → 2.1.144

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/lib/ACM-AXN/AuthenticationProfile/Container.js +4 -4
  2. package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/index.js +2 -2
  3. package/lib/ACM-AXN/Campaign/Container.js +52 -54
  4. package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +8 -1
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +27 -3
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +17 -0
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +121 -0
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +1 -0
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +219 -0
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.d.ts +2 -0
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.js +306 -0
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.d.ts +1 -0
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.js +230 -0
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +1 -0
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +123 -0
  17. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.d.ts +1 -0
  18. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +253 -0
  19. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +21 -5
  20. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.d.ts +1 -1
  21. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.js +47 -78
  22. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +2 -1
  23. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +2 -2
  24. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +2 -1
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +2 -3
  26. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +19 -42
  27. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +310 -99
  28. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
  29. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +119 -54
  30. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
  31. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +8 -6
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +1 -1
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.d.ts +9 -0
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.js +56 -0
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +12 -0
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +23 -8
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +63 -12
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +1 -1
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +1 -1
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +0 -1
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +1 -1
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +69 -124
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +3 -2
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +172 -59
  63. package/lib/ACM-AXN/Campaign/Enum.d.ts +24 -6
  64. package/lib/ACM-AXN/Campaign/Enum.js +30 -11
  65. package/lib/ACM-AXN/Campaign/Types.d.ts +53 -5
  66. package/lib/ACM-AXN/Campaign/Utils.d.ts +6 -1
  67. package/lib/ACM-AXN/Campaign/Utils.js +50 -3
  68. package/lib/ACM-AXN/Campaign/index.js +2 -2
  69. package/lib/ACM-AXN/CampaignPlan/Container.js +4 -6
  70. package/lib/ACM-AXN/CampaignPlan/Detail.js +3 -3
  71. package/lib/ACM-AXN/CampaignPlan/Filter.js +3 -3
  72. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  73. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  74. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +6 -4
  75. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  76. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  77. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  78. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  79. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  80. package/lib/ACM-AXN/Common/Constant.js +2 -0
  81. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  82. package/lib/ACM-AXN/Common/Enum.js +19 -4
  83. package/lib/ACM-AXN/Common/Types.d.ts +5 -0
  84. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  85. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  86. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  87. package/lib/ACM-AXN/Holiday/FormHoliday.js +1 -0
  88. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  89. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  90. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  91. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  92. package/lib/ACM-AXN/Page/Constant.js +2 -0
  93. package/lib/ACM-AXN/Page/Container.js +3 -3
  94. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  95. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  96. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  97. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  98. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/TrackingCode.js +1 -1
  99. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  100. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  101. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  102. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  103. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -44
  104. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  105. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  106. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  107. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +6 -6
  108. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +19 -4
  109. package/lib/ACM-AXN/Page/Import/index.js +2 -2
  110. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  111. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  112. package/lib/ACM-AXN/Page/enums.js +7 -1
  113. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  114. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  115. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  116. package/lib/ACM-AXN/PlaceFilter/Tag/component/TagChip.js +1 -1
  117. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  118. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  119. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  120. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  121. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  122. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  123. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  124. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  125. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  126. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  127. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  128. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +13 -10
  131. package/lib/ACM-AXN/Statistics/ControlPanel.js +17 -5
  132. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  133. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  134. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  135. package/lib/ACM-AXN/StatisticsByProvince/DataTable.js +1 -1
  136. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +4 -4
  137. package/lib/ACM-AXN/Template/Container.js +2 -2
  138. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  139. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  140. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  141. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  142. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  143. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  146. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  147. package/lib/ACM-AXN/Template/Import.js +2 -2
  148. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  149. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  150. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  151. package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +23 -11
  152. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  153. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  154. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +42 -129
  155. package/lib/ACM-AXN/ViewTemplate/common.d.ts +2 -1
  156. package/lib/ACM-AXN/ViewTemplate/common.js +47 -7
  157. package/lib/ACM-AXN/ViewTemplate/container.js +8 -2
  158. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  159. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  160. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  161. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  162. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  163. package/lib/ACM-AXN/index.d.ts +1 -0
  164. package/lib/ACM-AXN/index.js +1 -0
  165. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  166. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  167. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  168. package/lib/AWING/Chart/BarLineComponent.js +20 -24
  169. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  170. package/lib/AWING/Chart/PieComponent.js +16 -16
  171. package/lib/AWING/Chart/Styles.js +51 -16
  172. package/lib/AWING/DataForm/DataInput.js +105 -23
  173. package/lib/AWING/DataForm/interface.d.ts +2 -0
  174. package/lib/AWING/DataGrid/index.js +8 -13
  175. package/lib/AWING/DateRangePicker/component.js +80 -32
  176. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  177. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  178. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  179. package/lib/AWING/Form/useForm.js +3 -2
  180. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  181. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  182. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  183. package/lib/AWING/GoogleMap/index.js +41 -0
  184. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  185. package/lib/AWING/GoogleMap/interface.js +2 -0
  186. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  187. package/lib/AWING/GoogleMap/utils.js +135 -0
  188. package/lib/AWING/GroupTable/GroupTable.js +2 -2
  189. package/lib/AWING/GroupTable/component.d.ts +1 -0
  190. package/lib/AWING/GroupTable/component.js +2 -2
  191. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  192. package/lib/AWING/NumberFormat/index.js +2 -2
  193. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  194. package/lib/AWING/Pagination/index.js +11 -3
  195. package/lib/AWING/index.d.ts +1 -0
  196. package/lib/AWING/index.js +1 -0
  197. package/lib/AWING/ultis/validation.d.ts +1 -0
  198. package/lib/AWING/ultis/validation.js +25 -6
  199. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  200. package/lib/Commons/Components/HighlightedCode/MarkdownElement.js +6 -1
  201. package/lib/Commons/Hooks/usePath.js +3 -3
  202. package/lib/Utils/Helpers.d.ts +3 -2
  203. package/lib/Utils/Helpers.js +49 -13
  204. package/lib/i18n.js +31 -2
  205. package/lib/translate/en/translation.json +132 -71
  206. package/lib/translate/id/translation.json +893 -0
  207. package/lib/translate/ind/translation.json +893 -0
  208. package/lib/translate/ja/translation.json +893 -0
  209. package/lib/translate/lao/translation.json +893 -0
  210. package/lib/translate/mys/translation.json +893 -0
  211. package/lib/translate/phl/translation.json +893 -0
  212. package/lib/translate/th/translation.json +893 -0
  213. package/lib/translate/vi/translation.json +92 -31
  214. package/package.json +9 -4
  215. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  216. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -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
  };
@@ -51,14 +60,10 @@ 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
62
  var Enum_2 = require("../../../ACM-AXN/Common/Enum");
54
- var route = [
55
- Constant_1.Constants.CAMPAIGN_INFORMATION,
56
- Constant_1.Constants.CAMPAIGN_SUBCAMPAIGN,
57
- Constant_1.Constants.CAMPAIGN_STATISTICS,
58
- Constant_1.Constants.CAMPAIGN_CONNECT,
59
- Constant_1.Constants.CAMPAIGN_PERMISSION,
60
- ];
61
- var CreateOrEdit = function () {
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) {
62
67
  var _a;
63
68
  var _b = (0, Router_1.useParams)(), campaignId = _b.campaignId, tabName = _b.tabName;
64
69
  var location = (0, Router_1.useLocation)();
@@ -66,6 +71,7 @@ var CreateOrEdit = function () {
66
71
  var matchPath = (0, usePath_1.default)();
67
72
  var t = (0, react_i18next_1.useTranslation)().t;
68
73
  var _c = (0, Hooks_1.default)(), service = _c.service, otherProps = __rest(_c, ["service"]);
74
+ var confirm = (0, Context_1.useAwing)().appHelper.confirm;
69
75
  var _d = (0, recoil_1.useRecoilState)(Recoils_1.campaignModelState), campaignData = _d[0], setCampaignData = _d[1];
70
76
  var setCampaignPages = (0, recoil_1.useSetRecoilState)(atoms_1.campaignPageIdState);
71
77
  var setDirectories = (0, recoil_1.useSetRecoilState)(Recoils_1.directoriesState);
@@ -73,13 +79,17 @@ var CreateOrEdit = function () {
73
79
  var _e = (0, recoil_1.useRecoilState)(Recoils_1.confirmExitState), confirmExit = _e[0], setConfirmExit = _e[1];
74
80
  var readyForSubmit = (0, recoil_1.useRecoilValue)(Recoils_1.readyForSubmitState);
75
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);
76
86
  var tabValid = {
77
87
  tabInfomationValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabInfomationValidState),
78
88
  tabSubCampaignValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabSubCampaignValidState),
79
89
  tabPartnerValid: (0, recoil_1.useRecoilValue)(Recoils_1.tabPartnerValidState),
80
90
  };
81
- var _f = (0, react_1.useState)('0'), value = _f[0], setValue = _f[1];
82
- var _g = (0, react_1.useState)(true), loading = _g[0], setLoading = _g[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];
83
93
  var componentStatus = (0, react_1.useMemo)(function () {
84
94
  return location.pathname.includes(Constant_1.Constants.CAMPAIGN_DETAIL) &&
85
95
  !!campaignId
@@ -89,16 +99,20 @@ var CreateOrEdit = function () {
89
99
  : Constant_1.Constants.CAMPAIGN_CREATE;
90
100
  }, [location.pathname, campaignId]);
91
101
  (0, react_1.useEffect)(function () {
92
- if (!service.attributesGetByObjectTypeCode && !campaignData.campaignAttributes.length) {
93
- 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
+ });
94
107
  }
95
- // eslint-disable-next-line react-hooks/exhaustive-deps
96
- }, [service, campaignData.campaignAttributes]);
108
+ // eslint-disable-next-line react-hooks/exhaustive-deps
109
+ }, [campaignData.campaignAttributes]);
97
110
  (0, react_1.useEffect)(function () {
98
111
  setLoading(true);
99
112
  Promise.all([getCampaignData(), getPage()]).finally(function () {
100
113
  setLoading(false);
101
114
  });
115
+ service.administrativeUnitsGet().then(setFullPlaces);
102
116
  // eslint-disable-next-line react-hooks/exhaustive-deps
103
117
  }, []);
104
118
  (0, react_1.useEffect)(function () {
@@ -109,54 +123,100 @@ var CreateOrEdit = function () {
109
123
  .directoriesGetByObjectTypeCode(Enum_1.DirectoryRoot.Campaign)
110
124
  .then(setDirectories);
111
125
  if (service.attributesGetByObjectTypeCode) {
112
- service.attributesGetByObjectTypeCode(Enum_1.DirectoryRoot.Campaign).then(setAttributes);
126
+ service
127
+ .attributesGetByObjectTypeCode(Enum_1.DirectoryRoot.Campaign)
128
+ .then(setAttributes);
113
129
  }
114
- }, [service, setDirectories, setAttributes]);
115
- (0, react_1.useLayoutEffect)(function () {
116
- if (tabName && route.includes(tabName)) {
117
- setValue(String(route.indexOf(tabName)));
118
- }
119
- }, [tabName]);
120
- var tabsList = (0, react_1.useMemo)(function () {
121
- return [
122
- {
123
- label: t('Campaign.Info'),
124
- isShow: true,
125
- valid: 'tabInfomationValid',
126
- component: (0, jsx_runtime_1.jsx)(TabInfomation_1.default, {}),
127
- },
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), [
128
161
  {
129
- label: t('Campaign.SubCampaign'),
130
- isShow: true,
131
- valid: 'tabSubCampaignValid',
132
- 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,
133
166
  },
134
167
  {
135
168
  label: t('Campaign.Statistic'),
136
169
  isShow: componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL,
137
- 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,
138
172
  },
139
173
  {
140
174
  label: t('Campaign.Partner'),
141
175
  isShow: true,
142
176
  component: (0, jsx_runtime_1.jsx)(TabPartner_1.default, {}),
143
177
  valid: 'tabPartnerValid',
178
+ route: Constant_1.Constants.CAMPAIGN_CONNECT,
144
179
  },
145
180
  {
146
181
  label: t('Campaign.Permission'),
147
182
  isShow: componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL,
148
183
  component: (0, jsx_runtime_1.jsx)(TabPermission_1.default, {}),
184
+ route: Constant_1.Constants.CAMPAIGN_PERMISSION,
149
185
  },
150
- ].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();
151
190
  },
152
191
  // eslint-disable-next-line react-hooks/exhaustive-deps
153
- [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]);
154
207
  var handleChangeTab = function (_event, newValue) {
155
- 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
+ }
156
215
  };
157
216
  var getCampaignData = function () {
158
217
  if (campaignId) {
159
218
  return service.campaignsGet(campaignId).then(function (response) {
219
+ var _a;
160
220
  var campaignModel = response;
161
221
  if (componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL) {
162
222
  //Đánh dấu những group/ad nào không được xoá
@@ -169,8 +229,8 @@ var CreateOrEdit = function () {
169
229
  subCampains[idx].ads[i].cantBeDelete = true;
170
230
  }
171
231
  }
172
- else if (subCamp.campaignGroup.ticket ===
173
- Enum_1.CampaignTicket.ACTIVE) {
232
+ else if (subCamp.campaignGroup.status ===
233
+ Enum_1.CampaignStatus.Active) {
174
234
  subCampains[idx].campaignGroup.cantBeDelete =
175
235
  true;
176
236
  for (var i = 0; i < subCamp.ads.length; i++) {
@@ -186,11 +246,15 @@ var CreateOrEdit = function () {
186
246
  campaignModel.campaign.name += ' - copy';
187
247
  campaignModel.campaign.createdDate = undefined;
188
248
  campaignModel.campaignGroups.forEach(function (g) {
189
- g.campaignGroup.ticket = Enum_1.CampaignTicket.INACTIVE;
249
+ g.campaignGroup.status = Enum_1.CampaignStatus.Draft;
190
250
  if (!service.attributesGetByObjectTypeCode)
191
- g.campaignGroup.billingUnit = Enum_2.AnalyticType.AUTHENTICATION;
251
+ g.campaignGroup.billingUnit =
252
+ Enum_2.AnalyticType.Authentication;
192
253
  });
193
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
+ }
194
258
  setCampaignData(campaignModel);
195
259
  });
196
260
  }
@@ -208,32 +272,81 @@ var CreateOrEdit = function () {
208
272
  });
209
273
  };
210
274
  var handleSubmit = function () {
211
- if (!(0, Utils_1.adsClassCValid)(campaignData.campaignGroups
212
- .filter(function (x) {
213
- return (0, Utils_1.checkPriority)(x.campaignGroup.priority, Enum_1.CampaignPriority.ClassC);
214
- })
215
- .flatMap(function (x) { return x.ads; }))) {
216
- return Promise.reject(t('Campaign.CClassDuplicatePlace'));
217
- }
218
- var dataSubmit = __assign(__assign({}, campaignData), { campaignAttributes: campaignData.campaignAttributes.filter(Boolean) });
219
- if (componentStatus === Constant_1.Constants.CAMPAIGN_DETAIL) {
220
- 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
+ }
221
282
  }
222
283
  else {
223
- 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;
224
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
+ });
225
322
  };
226
- 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: 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: {
227
324
  display: 'flex',
228
325
  flexDirection: 'column',
229
326
  flexGrow: 1,
230
327
  padding: function (theme) { return theme.spacing(3); },
231
- }, 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: {
232
- fontWeight: 600,
233
- fontSize: '0.875rem',
234
- }, children: tab.label }), error: (tab === null || tab === void 0 ? void 0 : tab.valid)
235
- ? !tabValid[tab === null || tab === void 0 ? void 0 : tab.valid]
236
- : 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, {})] })) }) }));
237
350
  };
238
351
  // eslint-disable-next-line import/no-anonymous-default-export
239
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,13 +134,13 @@ 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,
136
141
  TargetOS = 5,
137
142
  TargetDevice = 6,
138
- RetargetMacAddress = 7,
139
- Authentication = 8
143
+ RetargetMacAddress = 7
140
144
  }
141
145
  /**
142
146
  * Enum bao gồm các phép toán
@@ -175,3 +179,17 @@ export declare enum Operator {
175
179
  */
176
180
  In = 7
177
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,13 +121,13 @@ 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";
123
128
  CampaignRuleType[CampaignRuleType["TargetOS"] = 5] = "TargetOS";
124
129
  CampaignRuleType[CampaignRuleType["TargetDevice"] = 6] = "TargetDevice";
125
130
  CampaignRuleType[CampaignRuleType["RetargetMacAddress"] = 7] = "RetargetMacAddress";
126
- CampaignRuleType[CampaignRuleType["Authentication"] = 8] = "Authentication";
127
131
  })(CampaignRuleType || (exports.CampaignRuleType = CampaignRuleType = {}));
128
132
  /**
129
133
  * Enum bao gồm các phép toán
@@ -163,3 +167,18 @@ var Operator;
163
167
  */
164
168
  Operator[Operator["In"] = 7] = "In";
165
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,7 +1,7 @@
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
6
  import { PageService, PageViewEvent } from '../Page/Types';
7
7
  import { BaseChartComponent } from 'react-chartjs-2/dist/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;
@@ -50,6 +57,9 @@ export type Campaign = {
50
57
  directoryPath?: string;
51
58
  name: string;
52
59
  createdDate?: Timestamp;
60
+ password?: string;
61
+ canModify?: boolean;
62
+ hasPassword?: boolean;
53
63
  };
54
64
  export type CampaignGroupModel = {
55
65
  campaignGroup: CampaignGroup;
@@ -59,7 +69,7 @@ export type CampaignGroup = {
59
69
  id: number;
60
70
  campaignId?: string;
61
71
  name: string;
62
- ticket: CampaignTicket;
72
+ status: CampaignStatus;
63
73
  /**
64
74
  * Mức độ ưu tiên (A, B, C)
65
75
  */
@@ -69,7 +79,6 @@ export type CampaignGroup = {
69
79
  /**
70
80
  * Đặt chỗ
71
81
  */
72
- isReserved: boolean;
73
82
  /**
74
83
  * Số lượng đã chạy (nếu có)
75
84
  */
@@ -79,6 +88,7 @@ export type CampaignGroup = {
79
88
  */
80
89
  cantBeDelete?: boolean;
81
90
  billingUnit: AnalyticType;
91
+ billingUnitLabel?: string;
82
92
  };
83
93
  export type CampaignAd = {
84
94
  id: number;
@@ -206,6 +216,17 @@ export type CampaignPartner = {
206
216
  email?: string;
207
217
  emailInterval: number;
208
218
  };
219
+ export type CampaignApproval = {
220
+ id?: number;
221
+ campaignId?: string;
222
+ domainId?: string;
223
+ campaignGroupId?: number;
224
+ campaignAdId?: number;
225
+ status: number;
226
+ description: string;
227
+ loginId?: string;
228
+ welcomeId?: string;
229
+ };
209
230
  export type DateRange = {
210
231
  startDate: Date;
211
232
  endDate: Date;
@@ -232,7 +253,6 @@ export interface CampaignFilter {
232
253
  endDate?: string;
233
254
  pageIndex?: number;
234
255
  pageSize?: number;
235
- isReserved?: boolean;
236
256
  placeIds?: string[];
237
257
  priorities?: CampaignPriority[];
238
258
  status?: number[];
@@ -260,11 +280,11 @@ interface CampaignService extends PrmissionService {
260
280
  campaignsPut: (id: string, body: CampaignModel) => Promise<void>;
261
281
  campaignsPost: (body: CampaignModel) => Promise<void>;
262
282
  directoriesPost: (body: Directory) => Promise<void>;
263
- pagesPaging: (searchString?: string, pageSize?: number, pageIndex?: number, directoryId?: string) => Promise<any>;
264
283
  pagesGetSources: (loginId?: string, welcomeId?: string) => Promise<any>;
265
284
  deviceInfoGetAllRuleOsVersions: () => Promise<RuleOsVersion[]>;
266
285
  deviceInfoGetAllRuleDevices: () => Promise<RuleDevice[]>;
267
286
  attributesGetByObjectTypeCode?: (objectTypeCode: string) => Promise<Attribute[]>;
287
+ campaignsManualSendMail?: (campaignId: string, body: CampaignApproval[]) => Promise<void>;
268
288
  }
269
289
  export interface CampaignFeatureProps {
270
290
  service: CampaignService & PageService & CampaignAnalyticService;
@@ -273,5 +293,33 @@ export interface CampaignFeatureProps {
273
293
  domainId: string;
274
294
  configs: any;
275
295
  isAxn?: boolean;
296
+ quickWizard?: (p?: any) => JSX.Element;
297
+ }
298
+ interface ICampaignApprovalItemSubRow {
299
+ id?: number;
300
+ name?: string;
301
+ status?: CampaignStatus;
302
+ }
303
+ export interface ICampaignApprovalSubRow {
304
+ subCampaigns: ICampaignApprovalItemSubRow[];
305
+ ads: ICampaignApprovalItemSubRow[];
306
+ }
307
+ export interface ICampaignApprovalTableRow {
308
+ id?: string;
309
+ status: number;
310
+ linkPreview: string;
311
+ subCampaigns?: ICampaignApprovalItemSubRow[];
312
+ loginId?: string;
313
+ welcomeId?: string;
314
+ campaign: ICampaignApprovalSubRow[];
315
+ description: string;
316
+ }
317
+ export interface ICampaignApprovalTable {
318
+ id: string;
319
+ domain: {
320
+ domainName?: string;
321
+ domainId?: string;
322
+ };
323
+ detail: ICampaignApprovalTableRow[];
276
324
  }
277
325
  export {};
@@ -77,13 +77,13 @@ 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;
83
84
  TargetOS: number;
84
85
  TargetDevice: number;
85
86
  RetargetMacAddress: number;
86
- Authentication: number;
87
87
  };
88
88
  export declare const RuleTypeOfCalculator: {
89
89
  TargetGender: number;
@@ -136,3 +136,8 @@ export declare enum adAnalyticType {
136
136
  Spot = 0,
137
137
  Engagements = 1
138
138
  }
139
+ export declare const getCampaignStatus: (isAcm?: boolean) => {
140
+ key: string;
141
+ value: number;
142
+ }[];
143
+ export declare function generateValidPassword(length?: number): string;