awing-library 2.1.142-beta → 2.1.142

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/lib/ACM-AXN/AuthenticationProfile/Container.js +4 -4
  2. package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/index.js +2 -2
  3. package/lib/ACM-AXN/Campaign/Container.js +52 -54
  4. package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +8 -1
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +27 -3
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +17 -0
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +121 -0
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +1 -0
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +219 -0
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.d.ts +2 -0
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.js +306 -0
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.d.ts +1 -0
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RunInBackground.test.js +230 -0
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +1 -0
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +123 -0
  17. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.d.ts +1 -0
  18. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +253 -0
  19. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +21 -5
  20. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.d.ts +1 -1
  21. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabPartner.js +47 -78
  22. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.d.ts +6 -1
  23. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/ChartWithType.js +3 -22
  24. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/ControlPanel.js +2 -1
  25. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Detail/index.js +2 -3
  26. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.d.ts +22 -42
  27. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/Utils.js +317 -104
  28. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/component.js +1 -1
  29. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.d.ts +3 -0
  30. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Analytic/container.js +119 -54
  31. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.d.ts +1 -1
  32. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/ChartFilter.js +46 -8
  33. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/component.js +8 -6
  34. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Customer/container.js +1 -1
  35. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.d.ts +9 -0
  36. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/PasswordDialog.js +56 -0
  37. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Table.js +5 -1
  38. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.d.ts +12 -0
  39. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/Util.js +23 -8
  40. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/component.js +3 -3
  41. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Event/container.js +63 -12
  42. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.d.ts +1 -0
  43. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/SplitButtonExportType.js +17 -4
  44. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Types.d.ts +10 -0
  45. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/Utils.js +4 -1
  46. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.d.ts +1 -0
  47. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/common.js +3 -2
  48. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/component.js +6 -2
  49. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabStatistic/container.js +31 -29
  50. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +1 -1
  51. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +1 -1
  52. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/LimitEvent.js +1 -2
  53. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/TargetOS/container.js +2 -2
  54. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +1 -1
  55. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  56. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +69 -124
  57. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  58. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +45 -20
  59. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/atoms.js +3 -2
  60. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +3 -2
  61. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/useSearchPage.js +33 -8
  62. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.d.ts +5 -1
  63. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +176 -59
  64. package/lib/ACM-AXN/Campaign/Enum.d.ts +24 -6
  65. package/lib/ACM-AXN/Campaign/Enum.js +30 -11
  66. package/lib/ACM-AXN/Campaign/Types.d.ts +53 -5
  67. package/lib/ACM-AXN/Campaign/Utils.d.ts +6 -1
  68. package/lib/ACM-AXN/Campaign/Utils.js +50 -3
  69. package/lib/ACM-AXN/Campaign/index.js +2 -2
  70. package/lib/ACM-AXN/CampaignPlan/Container.js +4 -6
  71. package/lib/ACM-AXN/CampaignPlan/Detail.js +3 -3
  72. package/lib/ACM-AXN/CampaignPlan/Filter.js +1 -1
  73. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +14 -10
  74. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +3 -2
  75. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +6 -4
  76. package/lib/ACM-AXN/CampaignSchedule/DataConfig.js +4 -4
  77. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +5 -4
  78. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.d.ts +1 -2
  79. package/lib/ACM-AXN/CampaignSchedule/Recoil/Atom.js +1 -5
  80. package/lib/ACM-AXN/Common/Constant.d.ts +3 -0
  81. package/lib/ACM-AXN/Common/Constant.js +2 -0
  82. package/lib/ACM-AXN/Common/Enum.d.ts +8 -3
  83. package/lib/ACM-AXN/Common/Enum.js +19 -4
  84. package/lib/ACM-AXN/Common/Types.d.ts +5 -0
  85. package/lib/ACM-AXN/GeoFencing/GoongMap/index.d.ts +8 -9
  86. package/lib/ACM-AXN/GeoFencing/component.js +7 -7
  87. package/lib/ACM-AXN/GeoFencing/interface.d.ts +1 -2
  88. package/lib/ACM-AXN/Holiday/FormHoliday.js +1 -0
  89. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.d.ts +0 -5
  90. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +7 -90
  91. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +0 -5
  92. package/lib/ACM-AXN/Notifications/Types.d.ts +2 -0
  93. package/lib/ACM-AXN/Page/Constant.js +2 -0
  94. package/lib/ACM-AXN/Page/Container.js +3 -3
  95. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.d.ts +6 -0
  96. package/lib/ACM-AXN/Page/CreateOrEdit/ListenTemplate.js +63 -0
  97. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +11 -2
  98. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +16 -12
  99. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/TrackingCode.js +1 -1
  100. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/Utils.js +1 -1
  101. package/lib/ACM-AXN/Page/CreateOrEdit/TabInfo/index.js +1 -0
  102. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.d.ts +1 -9
  103. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/Components/Panel.js +0 -9
  104. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +11 -44
  105. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.d.ts +2 -3
  106. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +39 -61
  107. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/index.js +29 -32
  108. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +6 -6
  109. package/lib/ACM-AXN/Page/CreateOrEdit/index.js +19 -4
  110. package/lib/ACM-AXN/Page/Import/index.js +2 -2
  111. package/lib/ACM-AXN/Page/Types.d.ts +3 -0
  112. package/lib/ACM-AXN/Page/enums.d.ts +5 -0
  113. package/lib/ACM-AXN/Page/enums.js +7 -1
  114. package/lib/ACM-AXN/Permission/Components/Styles.d.ts +1 -2
  115. package/lib/ACM-AXN/PlaceFilter/DataTable/component/index.js +2 -5
  116. package/lib/ACM-AXN/PlaceFilter/Input/component/index.js +1 -2
  117. package/lib/ACM-AXN/PlaceFilter/Tag/component/TagChip.js +1 -1
  118. package/lib/ACM-AXN/PlaceFilter/interface.d.ts +1 -0
  119. package/lib/ACM-AXN/ScheduleCompletionRate/Container.js +16 -16
  120. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.d.ts +14 -9
  121. package/lib/ACM-AXN/ScheduleCompletionRate/DataSetConfig.js +19 -18
  122. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRate.js +16 -6
  123. package/lib/ACM-AXN/ScheduleCompletionRate/Detail/CompletionRateDate.js +17 -10
  124. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.d.ts +2 -1
  125. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.js +30 -51
  126. package/lib/ACM-AXN/ScheduleCompletionRate/Filter.test.js +1 -1
  127. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.d.ts +2 -2
  128. package/lib/ACM-AXN/ScheduleCompletionRate/SearchCampaign.js +3 -9
  129. package/lib/ACM-AXN/ScheduleCompletionRate/Types.d.ts +16 -36
  130. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.d.ts +5 -5
  131. package/lib/ACM-AXN/ScheduleCompletionRate/Utils.js +13 -10
  132. package/lib/ACM-AXN/Statistics/ControlPanel.js +17 -5
  133. package/lib/ACM-AXN/Statistics/Enums.d.ts +2 -1
  134. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  135. package/lib/ACM-AXN/StatisticsAudienceDemographic/Tabs/AgeRange.js +1 -0
  136. package/lib/ACM-AXN/StatisticsByProvince/DataTable.js +1 -1
  137. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +4 -4
  138. package/lib/ACM-AXN/Template/Container.js +2 -2
  139. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.d.ts +1 -0
  140. package/lib/ACM-AXN/Template/CreateOrEdit/Recoils.js +5 -1
  141. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.d.ts +2 -2
  142. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.js +56 -39
  143. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.d.ts +1 -1
  144. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Parameter.test.js +62 -51
  145. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.d.ts +28 -4
  146. package/lib/ACM-AXN/Template/CreateOrEdit/Template/Utils.js +43 -15
  147. package/lib/ACM-AXN/Template/CreateOrEdit/index.js +8 -4
  148. package/lib/ACM-AXN/Template/Import.js +2 -2
  149. package/lib/ACM-AXN/Template/Types.d.ts +9 -9
  150. package/lib/ACM-AXN/TransactionLog/Detail.js +1 -1
  151. package/lib/ACM-AXN/ViewTemplate/Preview.js +5 -6
  152. package/lib/ACM-AXN/ViewTemplate/TemplateField/Event.js +23 -11
  153. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.d.ts +18 -0
  154. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/Utils.js +170 -0
  155. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +42 -129
  156. package/lib/ACM-AXN/ViewTemplate/common.d.ts +2 -1
  157. package/lib/ACM-AXN/ViewTemplate/common.js +47 -7
  158. package/lib/ACM-AXN/ViewTemplate/container.js +8 -2
  159. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.d.ts +3 -1
  160. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.js +18 -28
  161. package/lib/ACM-AXN/Wizard/CreateOrEdit/PageTemplate.test.js +2 -0
  162. package/lib/ACM-AXN/Wizard/CreateOrEdit/RowTemplate.js +1 -1
  163. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.js +17 -1
  164. package/lib/ACM-AXN/index.d.ts +1 -0
  165. package/lib/ACM-AXN/index.js +1 -0
  166. package/lib/AWING/AsyncAutocomplete/index.js +2 -2
  167. package/lib/AWING/BasicDataForm/BasicDataForm.js +9 -6
  168. package/lib/AWING/BasicDataForm/interface.d.ts +3 -0
  169. package/lib/AWING/Chart/BarLineComponent.js +20 -24
  170. package/lib/AWING/Chart/PieComponent.d.ts +3 -4
  171. package/lib/AWING/Chart/PieComponent.js +16 -16
  172. package/lib/AWING/Chart/Styles.js +51 -16
  173. package/lib/AWING/DataForm/DataInput.js +104 -22
  174. package/lib/AWING/DataForm/interface.d.ts +2 -0
  175. package/lib/AWING/DataGrid/index.js +8 -13
  176. package/lib/AWING/DateRangePicker/component.js +61 -30
  177. package/lib/AWING/DateRangePicker/configDate.d.ts +1 -2
  178. package/lib/AWING/DateRangePicker/configDate.js +12 -12
  179. package/lib/AWING/DateRangePicker/interface.d.ts +1 -0
  180. package/lib/AWING/Form/useForm.js +3 -2
  181. package/lib/AWING/GoogleMap/GGMap.d.ts +3 -0
  182. package/lib/AWING/GoogleMap/GGMap.js +256 -0
  183. package/lib/AWING/GoogleMap/index.d.ts +4 -0
  184. package/lib/AWING/GoogleMap/index.js +41 -0
  185. package/lib/AWING/GoogleMap/interface.d.ts +21 -0
  186. package/lib/AWING/GoogleMap/interface.js +2 -0
  187. package/lib/AWING/GoogleMap/utils.d.ts +25 -0
  188. package/lib/AWING/GoogleMap/utils.js +135 -0
  189. package/lib/AWING/GroupTable/GroupTable.js +2 -2
  190. package/lib/AWING/GroupTable/component.d.ts +1 -0
  191. package/lib/AWING/GroupTable/component.js +2 -2
  192. package/lib/AWING/NumberFormat/index.d.ts +3 -1
  193. package/lib/AWING/NumberFormat/index.js +2 -2
  194. package/lib/AWING/PageManagement/PageManagement.js +4 -3
  195. package/lib/AWING/Pagination/index.js +11 -3
  196. package/lib/AWING/index.d.ts +1 -0
  197. package/lib/AWING/index.js +1 -0
  198. package/lib/AWING/ultis/validation.d.ts +1 -0
  199. package/lib/AWING/ultis/validation.js +25 -6
  200. package/lib/Commons/Components/ClassicDrawer.js +5 -4
  201. package/lib/Commons/Components/HighlightedCode/MarkdownElement.js +6 -1
  202. package/lib/Commons/Hooks/usePath.js +3 -3
  203. package/lib/Utils/Helpers.d.ts +3 -2
  204. package/lib/Utils/Helpers.js +49 -13
  205. package/lib/i18n.js +27 -2
  206. package/lib/translate/en/translation.json +132 -71
  207. package/lib/translate/id/translation.json +893 -0
  208. package/lib/translate/ind/translation.json +893 -0
  209. package/lib/translate/ja/translation.json +893 -0
  210. package/lib/translate/mys/translation.json +893 -0
  211. package/lib/translate/phl/translation.json +893 -0
  212. package/lib/translate/th/translation.json +893 -0
  213. package/lib/translate/vi/translation.json +92 -31
  214. package/package.json +9 -4
  215. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.d.ts +0 -5
  216. package/lib/ACM-AXN/ViewTemplate/TemplateField/Utils.js +0 -14
@@ -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,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;