awing-library 2.1.2-beta → 2.1.3

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 (151) hide show
  1. package/README.md +14 -45
  2. package/lib/ACM-AXN/Campaign/Container.js +5 -6
  3. package/lib/ACM-AXN/Campaign/Container.test.js +1 -1
  4. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.d.ts +3 -1
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +22 -21
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.d.ts +1 -1
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabInfomation.js +79 -24
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdDetail.test.js +1 -1
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdList.js +50 -6
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.d.ts +5 -0
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AdRow.js +6 -18
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/AddOrEditRule.js +7 -12
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/RetargetMacAddress/container.d.ts +1 -0
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/AddOrEditRule/RuleForm/RetargetMacAddress/container.js +4 -12
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/Advanced.js +16 -1
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.test.js +1 -1
  17. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +19 -3
  18. package/lib/ACM-AXN/Campaign/Types.d.ts +10 -0
  19. package/lib/ACM-AXN/Campaign/Utils.d.ts +8 -0
  20. package/lib/ACM-AXN/Campaign/Utils.js +22 -18
  21. package/lib/ACM-AXN/Campaign/index.js +1 -1
  22. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.d.ts +2 -2
  23. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/Filter.js +44 -42
  24. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/GroupPanel.d.ts +1 -1
  25. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/GroupPanel.js +38 -30
  26. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/index.d.ts +2 -2
  27. package/lib/ACM-AXN/CampaignSchedule/Components/ControlPanel/index.js +2 -2
  28. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.d.ts +1 -1
  29. package/lib/ACM-AXN/CampaignSchedule/Components/EnhancedPagination/index.js +4 -2
  30. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/component.js +33 -3
  31. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/container.d.ts +1 -1
  32. package/lib/ACM-AXN/CampaignSchedule/Components/RowAdvance/container.js +80 -35
  33. package/lib/ACM-AXN/CampaignSchedule/Components/TableHeaderDragable.d.ts +1 -1
  34. package/lib/ACM-AXN/CampaignSchedule/Components/TableHeaderDragable.js +38 -20
  35. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.d.ts +4 -0
  36. package/lib/ACM-AXN/CampaignSchedule/DataConfigAXN.js +58 -0
  37. package/lib/ACM-AXN/CampaignSchedule/Enum.d.ts +14 -2
  38. package/lib/ACM-AXN/CampaignSchedule/Enum.js +12 -0
  39. package/lib/ACM-AXN/CampaignSchedule/component.js +6 -5
  40. package/lib/ACM-AXN/CampaignSchedule/container.d.ts +1 -1
  41. package/lib/ACM-AXN/CampaignSchedule/container.js +100 -99
  42. package/lib/ACM-AXN/CampaignSchedule/interface.d.ts +16 -3
  43. package/lib/ACM-AXN/Directory/Constant.d.ts +2 -0
  44. package/lib/ACM-AXN/Directory/Constant.js +2 -0
  45. package/lib/ACM-AXN/Directory/MenuDirectory/MenuDirectory.test.d.ts +1 -0
  46. package/lib/ACM-AXN/Directory/MenuDirectory/MenuDirectory.test.js +90 -0
  47. package/lib/ACM-AXN/Directory/MenuDirectory/index.d.ts +1 -0
  48. package/lib/ACM-AXN/Directory/MenuDirectory/index.js +109 -0
  49. package/lib/ACM-AXN/Directory/SystemDirectory/index.js +6 -5
  50. package/lib/ACM-AXN/Directory/components/Permission/AddAuthen.d.ts +4 -0
  51. package/lib/ACM-AXN/Directory/components/Permission/AddAuthen.js +9 -7
  52. package/lib/ACM-AXN/Directory/components/Permission/CreateOrEditPermission.js +8 -6
  53. package/lib/ACM-AXN/Directory/components/Permission/Management.js +19 -14
  54. package/lib/ACM-AXN/Directory/components/Permission/MenuPermissions/MenuPermissionManagement.d.ts +1 -0
  55. package/lib/ACM-AXN/Directory/components/Permission/MenuPermissions/MenuPermissionManagement.js +185 -0
  56. package/lib/ACM-AXN/Directory/components/Permission/MenuPermissions/MenuPermissionManagement.test.d.ts +1 -0
  57. package/lib/ACM-AXN/Directory/components/Permission/MenuPermissions/MenuPermissionManagement.test.js +86 -0
  58. package/lib/ACM-AXN/Directory/function.d.ts +2 -0
  59. package/lib/ACM-AXN/Directory/function.js +39 -1
  60. package/lib/ACM-AXN/DomainPreview/PreviewButton.d.ts +15 -0
  61. package/lib/ACM-AXN/DomainPreview/PreviewButton.js +165 -0
  62. package/lib/ACM-AXN/DomainPreview/index.d.ts +7 -0
  63. package/lib/ACM-AXN/DomainPreview/index.js +10 -0
  64. package/lib/ACM-AXN/GroupUser/Constants.d.ts +7 -0
  65. package/lib/ACM-AXN/GroupUser/Constants.js +10 -0
  66. package/lib/ACM-AXN/GroupUser/Container.d.ts +2 -0
  67. package/lib/ACM-AXN/GroupUser/Container.js +55 -0
  68. package/lib/ACM-AXN/GroupUser/Container.test.d.ts +1 -0
  69. package/lib/ACM-AXN/GroupUser/Container.test.js +210 -0
  70. package/lib/ACM-AXN/GroupUser/CreateOrEdit.d.ts +3 -0
  71. package/lib/ACM-AXN/GroupUser/CreateOrEdit.js +84 -0
  72. package/lib/ACM-AXN/GroupUser/CreateOrEdit.test.d.ts +1 -0
  73. package/lib/ACM-AXN/GroupUser/CreateOrEdit.test.js +235 -0
  74. package/lib/ACM-AXN/GroupUser/Hooks.d.ts +5 -0
  75. package/lib/ACM-AXN/GroupUser/Hooks.js +13 -0
  76. package/lib/ACM-AXN/GroupUser/Types.d.ts +31 -0
  77. package/lib/ACM-AXN/GroupUser/Types.js +2 -0
  78. package/lib/ACM-AXN/GroupUser/User/SearchUser.d.ts +9 -0
  79. package/lib/ACM-AXN/GroupUser/User/SearchUser.js +63 -0
  80. package/lib/ACM-AXN/GroupUser/User/SearchUser.test.d.ts +1 -0
  81. package/lib/ACM-AXN/GroupUser/User/SearchUser.test.js +140 -0
  82. package/lib/ACM-AXN/GroupUser/User/UserComponent.d.ts +8 -0
  83. package/lib/ACM-AXN/GroupUser/User/UserComponent.js +77 -0
  84. package/lib/ACM-AXN/GroupUser/User/UserComponent.test.d.ts +1 -0
  85. package/lib/ACM-AXN/GroupUser/User/UserComponent.test.js +128 -0
  86. package/lib/ACM-AXN/GroupUser/index.d.ts +4 -0
  87. package/lib/ACM-AXN/GroupUser/index.js +27 -0
  88. package/lib/ACM-AXN/Page/Container.js +99 -61
  89. package/lib/ACM-AXN/Page/CreateOrEdit/DrawerAction.js +22 -5
  90. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +1 -0
  91. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +5 -1
  92. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +1 -1
  93. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +10 -4
  94. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.d.ts +1 -1
  95. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +1 -1
  96. package/lib/ACM-AXN/Page/Types.d.ts +8 -0
  97. package/lib/ACM-AXN/Page/ViewDomain/index.d.ts +9 -0
  98. package/lib/ACM-AXN/Page/ViewDomain/index.js +148 -0
  99. package/lib/ACM-AXN/Permission/Components/Management.test.js +1 -1
  100. package/lib/ACM-AXN/Statistics/ControlPanel.js +142 -85
  101. package/lib/ACM-AXN/Statistics/Enums.d.ts +1 -0
  102. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  103. package/lib/ACM-AXN/Statistics/container.js +1 -1
  104. package/lib/ACM-AXN/StatisticsAudienceDemographic/container.d.ts +1 -1
  105. package/lib/ACM-AXN/StatisticsAudienceDemographic/container.js +2 -3
  106. package/lib/ACM-AXN/StatisticsAudienceDemographic/interfaces.d.ts +1 -0
  107. package/lib/ACM-AXN/TransactionLog/Constant.d.ts +10 -0
  108. package/lib/ACM-AXN/TransactionLog/Constant.js +13 -0
  109. package/lib/ACM-AXN/TransactionLog/Container.d.ts +7 -0
  110. package/lib/ACM-AXN/TransactionLog/Container.js +189 -0
  111. package/lib/ACM-AXN/TransactionLog/Context.d.ts +8 -0
  112. package/lib/ACM-AXN/TransactionLog/Context.js +10 -0
  113. package/lib/ACM-AXN/TransactionLog/Detail.d.ts +7 -0
  114. package/lib/ACM-AXN/TransactionLog/Detail.js +204 -0
  115. package/lib/ACM-AXN/TransactionLog/Hooks.d.ts +7 -0
  116. package/lib/ACM-AXN/TransactionLog/Hooks.js +17 -0
  117. package/lib/ACM-AXN/TransactionLog/Types.d.ts +273 -0
  118. package/lib/ACM-AXN/TransactionLog/Types.js +413 -0
  119. package/lib/ACM-AXN/TransactionLog/Utils.d.ts +128 -0
  120. package/lib/ACM-AXN/TransactionLog/Utils.js +166 -0
  121. package/lib/ACM-AXN/TransactionLog/index.d.ts +8 -0
  122. package/lib/ACM-AXN/TransactionLog/index.js +36 -0
  123. package/lib/ACM-AXN/User/Add.d.ts +2 -0
  124. package/lib/ACM-AXN/User/Add.js +64 -0
  125. package/lib/ACM-AXN/User/Add.test.d.ts +1 -0
  126. package/lib/ACM-AXN/User/Add.test.js +115 -0
  127. package/lib/ACM-AXN/User/Constants.d.ts +2 -0
  128. package/lib/ACM-AXN/User/Constants.js +5 -0
  129. package/lib/ACM-AXN/User/Container.d.ts +2 -0
  130. package/lib/ACM-AXN/User/Container.js +60 -0
  131. package/lib/ACM-AXN/User/Container.test.d.ts +1 -0
  132. package/lib/ACM-AXN/User/Container.test.js +202 -0
  133. package/lib/ACM-AXN/User/Hook.d.ts +5 -0
  134. package/lib/ACM-AXN/User/Hook.js +13 -0
  135. package/lib/ACM-AXN/User/Types.d.ts +45 -0
  136. package/lib/ACM-AXN/User/Types.js +2 -0
  137. package/lib/ACM-AXN/User/index.d.ts +4 -0
  138. package/lib/ACM-AXN/User/index.js +18 -0
  139. package/lib/AWING/AdvancedSearch/component.js +1 -1
  140. package/lib/AWING/AdvancedSearch/interface.d.ts +1 -0
  141. package/lib/AWING/ButtonDateRangePicker/ButtonDateRangePicker.js +2 -2
  142. package/lib/AWING/ButtonDateRangePicker/interface.d.ts +1 -0
  143. package/lib/AWING/DataForm/DataInput.js +17 -8
  144. package/lib/AWING/DataForm/interface.d.ts +6 -2
  145. package/lib/AWING/DataGrid/index.js +4 -1
  146. package/lib/AWING/DataGrid/interface.d.ts +6 -1
  147. package/lib/AWING/ultis/validation.d.ts +1 -1
  148. package/lib/AWING/ultis/validation.js +3 -3
  149. package/lib/translate/en/translation.json +28 -1
  150. package/lib/translate/vi/translation.json +28 -1
  151. package/package.json +5 -3
@@ -53,9 +53,10 @@ function Permission(props) {
53
53
  setDrawerTitle(t('Directory.EditPermission'));
54
54
  setLoading(true);
55
55
  setDrawerState(AWING_1.DrawerStateEnum.LOADING);
56
- var getPermission = isSystemDirectory
57
- ? service.systemDirectoryPermissionGet
58
- : service.directoryPermissionGet;
56
+ var getPermission = service.directoryPermissionGet;
57
+ if (isSystemDirectory) {
58
+ getPermission = service.systemDirectoryPermissionGet;
59
+ }
59
60
  getPermission(directoryId)
60
61
  .then(function (res) {
61
62
  var currentPermission = res.permissions.find(function (p) { return p.authenId == id; });
@@ -211,9 +212,10 @@ function Permission(props) {
211
212
  result.inheritedPermissions = [];
212
213
  return result;
213
214
  });
214
- var updatePermission = isSystemDirectory
215
- ? service.systemDirectoryPermissionPut
216
- : service.directoryPermissionPut;
215
+ var updatePermission = service.directoryPermissionPut;
216
+ if (isSystemDirectory) {
217
+ updatePermission = service.systemDirectoryPermissionPut;
218
+ }
217
219
  return updatePermission(directoryId, {
218
220
  directoryId: directoryId,
219
221
  permissions: convertPermissions,
@@ -57,21 +57,24 @@ function Permission(props) {
57
57
  }
58
58
  exports.default = Permission;
59
59
  function FolderPermission(props) {
60
- var t = (0, react_i18next_1.useTranslation)().t;
60
+ var _a = (0, react_i18next_1.useTranslation)(), t = _a.t, i18n = _a.i18n;
61
61
  var isSystemDirectory = props.isSystemDirectory;
62
62
  var setDrawerTitle = (0, AWING_1.useDrawer)().setDrawerTitle;
63
63
  var navigate = (0, react_router_dom_1.useNavigate)();
64
64
  var directoryId = (0, react_router_dom_1.useParams)().directoryId;
65
- var _a = (0, react_1.useContext)(Context_1.default), appHelper = _a.appHelper, service = _a.service;
65
+ var _b = (0, react_1.useContext)(Context_1.default), appHelper = _b.appHelper, service = _b.service;
66
66
  var confirm = appHelper.confirm, snackbar = appHelper.snackbar;
67
- var _b = (0, react_1.useState)(false), loading = _b[0], setLoading = _b[1];
68
- var _c = (0, react_1.useState)([]), permissions = _c[0], setPermissions = _c[1];
67
+ var _c = (0, react_1.useState)(false), loading = _c[0], setLoading = _c[1];
68
+ var _d = (0, react_1.useState)([]), permissions = _d[0], setPermissions = _d[1];
69
69
  (0, react_1.useEffect)(function () {
70
- var getDirectory = isSystemDirectory
71
- ? service.systemDirectoriesGet
72
- : service.directoriesGet;
70
+ var getDirectory = service.directoriesGet;
71
+ if (isSystemDirectory) {
72
+ getDirectory = service.systemDirectoriesGet;
73
+ }
73
74
  getDirectory(directoryId).then(function (res) {
74
- setDrawerTitle("".concat(t('Directory.ObjectPermission'), ": ").concat(res.name));
75
+ setDrawerTitle("".concat(t('Directory.ObjectPermission'), ": ").concat(i18n.exists("Menu.MenuName.Menu_".concat(directoryId))
76
+ ? t("Menu.MenuName.Menu_".concat(directoryId))
77
+ : res.name));
75
78
  });
76
79
  var randomKey = (0, PubSub_1.getRandomKey)();
77
80
  (0, PubSub_1.sub)('update-directory-permission', function () {
@@ -86,9 +89,10 @@ function FolderPermission(props) {
86
89
  }, [directoryId]);
87
90
  var fetchPermission = function () {
88
91
  setLoading(true);
89
- var getPermission = isSystemDirectory
90
- ? service.systemDirectoryPermissionGet
91
- : service.directoryPermissionGet;
92
+ var getPermission = service.directoryPermissionGet;
93
+ if (isSystemDirectory) {
94
+ getPermission = service.systemDirectoryPermissionGet;
95
+ }
92
96
  getPermission(directoryId)
93
97
  .then(function (res) {
94
98
  setPermissions(res.permissions.map(function (p) { return convertPermission(p); }));
@@ -101,9 +105,10 @@ function FolderPermission(props) {
101
105
  };
102
106
  var handleDeletePermission = function (authenId, authenType) {
103
107
  confirm(function () {
104
- var deletePermission = isSystemDirectory
105
- ? service.systemDirectoryPermissionDelete
106
- : service.directoryPermissionDelete;
108
+ var deletePermission = service.directoryPermissionDelete;
109
+ if (isSystemDirectory) {
110
+ deletePermission = service.systemDirectoryPermissionDelete;
111
+ }
107
112
  deletePermission(directoryId, authenId, authenType)
108
113
  .then(function () {
109
114
  snackbar('success');
@@ -0,0 +1 @@
1
+ export default function Permission(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var jsx_runtime_1 = require("react/jsx-runtime");
7
+ var AWING_1 = require("../../../../../AWING");
8
+ var react_i18next_1 = require("react-i18next");
9
+ var react_1 = require("react");
10
+ var icons_material_1 = require("@mui/icons-material");
11
+ var material_1 = require("@mui/material");
12
+ var react_router_dom_1 = require("react-router-dom");
13
+ var Context_1 = __importDefault(require("../../../../../Context"));
14
+ var Constant_1 = __importDefault(require("../../../Constant"));
15
+ var PubSub_1 = require("../../../../../AWING/PubSub");
16
+ var AddAuthen_1 = __importDefault(require("../AddAuthen"));
17
+ function Permission() {
18
+ var i18next = (0, react_1.useContext)(Context_1.default).i18next;
19
+ var t = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18next }).t;
20
+ return ((0, jsx_runtime_1.jsx)(AWING_1.DrawerNavigate, { title: t('Directory.ObjectPermission'), customButtonSubmit: (0, jsx_runtime_1.jsx)(material_1.Button, { component: react_router_dom_1.Link, color: 'primary', variant: "contained", to: Constant_1.default.MENU_DIRECTORY_ADD_PERMISSION, children: t('Directory.AddPermission') }), childrenWrapperStyle: { padding: function (theme) { return theme.spacing(3); } }, children: (0, jsx_runtime_1.jsx)(MenuPermissions, {}) }));
21
+ }
22
+ exports.default = Permission;
23
+ function MenuPermissions() {
24
+ var _a = (0, react_1.useContext)(Context_1.default), appHelper = _a.appHelper, service = _a.service, i18next = _a.i18next;
25
+ var _b = (0, react_i18next_1.useTranslation)(undefined, { i18n: i18next }), t = _b.t, i18n = _b.i18n;
26
+ var setDrawerTitle = (0, AWING_1.useDrawer)().setDrawerTitle;
27
+ var directoryId = (0, react_router_dom_1.useParams)().directoryId;
28
+ var confirm = appHelper.confirm, snackbar = appHelper.snackbar;
29
+ var _c = (0, react_1.useState)(false), loading = _c[0], setLoading = _c[1];
30
+ var _d = (0, react_1.useState)([]), permissions = _d[0], setPermissions = _d[1];
31
+ var _e = (0, react_1.useState)([]), users = _e[0], setUsers = _e[1];
32
+ var _f = (0, react_1.useState)([]), groups = _f[0], setGroups = _f[1];
33
+ var _g = (0, react_1.useState)(false), loadingAuthen = _g[0], setLoadingAuthen = _g[1];
34
+ (0, react_1.useEffect)(function () {
35
+ setLoadingAuthen(true);
36
+ var loader = [service.usersGet(), service.groupsGetAll()];
37
+ Promise.all(loader)
38
+ .then(function (responses) {
39
+ if (responses[0] && responses[1]) {
40
+ setUsers(responses[0]);
41
+ setGroups(responses[1]);
42
+ }
43
+ setLoadingAuthen(false);
44
+ })
45
+ .catch(function (err) {
46
+ console.log(err);
47
+ snackbar('error');
48
+ });
49
+ }, []);
50
+ (0, react_1.useEffect)(function () {
51
+ var getDirectory = service.menusGet;
52
+ getDirectory(directoryId).then(function (res) {
53
+ setDrawerTitle("".concat(t('Directory.ObjectPermission'), ": ").concat(i18n.exists("Menu.MenuName.Menu_".concat(directoryId))
54
+ ? t("Menu.MenuName.Menu_".concat(directoryId))
55
+ : res.name));
56
+ });
57
+ var randomKey = (0, PubSub_1.getRandomKey)();
58
+ (0, PubSub_1.sub)('update-directory-permission', function () {
59
+ fetchPermission();
60
+ }, randomKey);
61
+ return function () { return (0, PubSub_1.off)(randomKey); };
62
+ }, []);
63
+ (0, react_1.useEffect)(function () {
64
+ if (directoryId) {
65
+ (0, PubSub_1.pub)('update-directory-permission');
66
+ }
67
+ }, [directoryId]);
68
+ var fetchPermission = function () {
69
+ setLoading(true);
70
+ var getPermission = service.menuPermissionGet;
71
+ getPermission(directoryId)
72
+ .then(function (res) {
73
+ setPermissions(res.permissions);
74
+ setLoading(false);
75
+ })
76
+ .catch(function (err) {
77
+ snackbar('error');
78
+ console.log(err);
79
+ });
80
+ };
81
+ var handleDeletePermission = function (authenId, authenType) {
82
+ confirm(function () {
83
+ var deletePermission = service.menuPermissionDelete;
84
+ deletePermission(directoryId, authenId, authenType)
85
+ .then(function () {
86
+ snackbar('success');
87
+ (0, PubSub_1.pub)('update-directory-permission');
88
+ })
89
+ .catch(function (err) {
90
+ snackbar('error');
91
+ console.log(err);
92
+ });
93
+ });
94
+ };
95
+ var handleUpdateMenuPermission = function (selected) {
96
+ var temp = selected.map(function (s) {
97
+ var isGroup = s.groupId !== undefined;
98
+ return {
99
+ authenId: isGroup ? s.groupId : s.userId,
100
+ authenType: isGroup ? 1 : 0,
101
+ explicitPermission: true,
102
+ };
103
+ });
104
+ service
105
+ .menuPermissionPut(directoryId, {
106
+ menuId: directoryId,
107
+ permissions: temp,
108
+ })
109
+ .then(function () {
110
+ snackbar('success');
111
+ (0, PubSub_1.pub)('update-directory-permission');
112
+ })
113
+ .catch(function (err) {
114
+ snackbar('error');
115
+ console.log(err);
116
+ });
117
+ };
118
+ return loading && loadingAuthen ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(AWING_1.DataGrid, { columns: [
119
+ {
120
+ field: '',
121
+ width: 50,
122
+ headerName: '#',
123
+ valueGetter: function (row, idx) {
124
+ return idx + 1;
125
+ },
126
+ },
127
+ {
128
+ field: 'authenType',
129
+ width: 50,
130
+ headerName: '',
131
+ valueGetter: function (row, idx) {
132
+ return row.authenType == 0 ? ((0, jsx_runtime_1.jsx)(icons_material_1.Person, { fontSize: "small" })) : ((0, jsx_runtime_1.jsx)(icons_material_1.Group, { fontSize: "small" }));
133
+ },
134
+ },
135
+ {
136
+ field: 'name',
137
+ headerName: t('Common.UserGroupUser'),
138
+ valueGetter: function (row, idx) {
139
+ var _a, _b;
140
+ return row.authenType == 0
141
+ ? (_a = users.find(function (u) { return u.userId == row.authenId; })) === null || _a === void 0 ? void 0 : _a.username
142
+ : (_b = groups.find(function (g) { return g.groupId == row.authenId; })) === null || _b === void 0 ? void 0 : _b.name;
143
+ },
144
+ },
145
+ {
146
+ field: 'inheritedPermission',
147
+ headerName: t('Directory.InheritedPermission'),
148
+ valueGetter: function (row, idx) {
149
+ return row.inheritedPermission ? ((0, jsx_runtime_1.jsx)(icons_material_1.Check, { color: "primary" })) : ('');
150
+ },
151
+ },
152
+ {
153
+ field: 'explicitPermission',
154
+ headerName: t('Directory.ExplicitPermission'),
155
+ valueGetter: function (row, idx) {
156
+ return row.explicitPermission ? ((0, jsx_runtime_1.jsx)(icons_material_1.Check, { color: "primary" })) : ('');
157
+ },
158
+ },
159
+ ], rows: permissions, rowActions: [
160
+ {
161
+ icon: (0, jsx_runtime_1.jsx)(icons_material_1.Clear, { fontSize: "small" }),
162
+ tooltipTitle: t('Common.Delete'),
163
+ action: function (id) {
164
+ var row = permissions[id];
165
+ handleDeletePermission(row.authenId, row.authenType);
166
+ },
167
+ isShouldHideActions: function (row) {
168
+ return !row.explicitPermission;
169
+ },
170
+ },
171
+ ] }), (0, jsx_runtime_1.jsx)(react_router_dom_1.Routes, { children: (0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: Constant_1.default.MENU_DIRECTORY_ADD_PERMISSION, element: (0, jsx_runtime_1.jsx)(AddAuthen_1.default, { initialLoad: {
172
+ users: users.filter(function (u) {
173
+ return !permissions.find(function (p) {
174
+ return p.explicitPermission &&
175
+ p.authenId == u.userId;
176
+ });
177
+ }),
178
+ groups: groups.filter(function (g) {
179
+ return !permissions.find(function (p) {
180
+ return p.explicitPermission &&
181
+ p.authenId == g.groupId;
182
+ });
183
+ }),
184
+ }, oldSelected: [], onSubmit: handleUpdateMenuPermission }) }) })] }));
185
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var jsx_runtime_1 = require("react/jsx-runtime");
7
+ var MenuPermissionManagement_1 = __importDefault(require("./MenuPermissionManagement"));
8
+ var react_1 = require("@testing-library/react");
9
+ var react_router_dom_1 = require("react-router-dom");
10
+ var Context_1 = __importDefault(require("../../../../../Context"));
11
+ describe('Menu Management', function () {
12
+ var mockUsersGet = jest.fn();
13
+ var mockGetGroups = jest.fn();
14
+ var mockGetMenu = jest.fn();
15
+ var mockMenuPermissionGet = jest.fn();
16
+ var mockDeleteMenuPermission = jest.fn();
17
+ var usersGet = function () {
18
+ mockUsersGet();
19
+ return new Promise(function (resolve) {
20
+ resolve([]);
21
+ });
22
+ };
23
+ var groupsGetAll = function () {
24
+ mockGetGroups();
25
+ return new Promise(function (resolve) {
26
+ resolve({});
27
+ });
28
+ };
29
+ var menusGet = function (directoryId) {
30
+ mockGetMenu(directoryId);
31
+ return new Promise(function (resolve) {
32
+ resolve({ permissions: [] });
33
+ });
34
+ };
35
+ var menuPermissionGet = function (directoryId) {
36
+ mockMenuPermissionGet(directoryId);
37
+ return new Promise(function (resolve) {
38
+ resolve(true);
39
+ });
40
+ };
41
+ var menuPermissionDelete = function () {
42
+ mockDeleteMenuPermission();
43
+ return new Promise(function (resolve) {
44
+ resolve(true);
45
+ });
46
+ };
47
+ var menuPermissionPut = function () {
48
+ return new Promise(function (resolve) {
49
+ resolve(true);
50
+ });
51
+ };
52
+ it('renders the component', function () {
53
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Context_1.default.Provider, { value: {
54
+ routes: [],
55
+ i18next: {},
56
+ service: {
57
+ usersGet: usersGet,
58
+ groupsGetAll: groupsGetAll,
59
+ menusGet: menusGet,
60
+ menuPermissionGet: menuPermissionGet,
61
+ menuPermissionDelete: menuPermissionDelete,
62
+ menuPermissionPut: menuPermissionPut,
63
+ },
64
+ appHelper: {},
65
+ }, children: (0, jsx_runtime_1.jsx)(MenuPermissionManagement_1.default, {}) }) }));
66
+ expect(react_1.screen.getByText('Directory.ObjectPermission')).toBeInTheDocument();
67
+ });
68
+ it('fetches the menu', function () {
69
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Context_1.default.Provider, { value: {
70
+ routes: [],
71
+ i18next: {},
72
+ service: {
73
+ usersGet: usersGet,
74
+ groupsGetAll: groupsGetAll,
75
+ menusGet: menusGet,
76
+ menuPermissionGet: menuPermissionGet,
77
+ menuPermissionDelete: menuPermissionDelete,
78
+ menuPermissionPut: menuPermissionPut,
79
+ },
80
+ appHelper: {},
81
+ }, children: (0, jsx_runtime_1.jsx)(MenuPermissionManagement_1.default, {}) }) }));
82
+ expect(mockGetMenu).toHaveBeenCalled();
83
+ expect(mockUsersGet).toHaveBeenCalled();
84
+ expect(mockGetGroups).toHaveBeenCalled();
85
+ });
86
+ });
@@ -2,3 +2,5 @@ import { IRawData } from './interface';
2
2
  import { TreeNode } from '../../AWING';
3
3
  export declare const replaceChildren: (object1: TreeNode, object2: TreeNode) => TreeNode;
4
4
  export declare const convertData: (input: IRawData[], parentId?: string | null) => TreeNode[];
5
+ export declare const convertMenuData: (input: any[], parentId?: string | null) => TreeNode[];
6
+ export declare const translateMenu: (data: any, i18n: any, t: any) => any;
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.convertData = exports.replaceChildren = void 0;
14
+ exports.translateMenu = exports.convertMenuData = exports.convertData = exports.replaceChildren = void 0;
15
15
  var AWING_1 = require("../../AWING");
16
16
  var replaceChildren = function (object1, object2) {
17
17
  if (object1.nodeId === object2.nodeId) {
@@ -54,3 +54,41 @@ var convertData = function (input, parentId) {
54
54
  return result;
55
55
  };
56
56
  exports.convertData = convertData;
57
+ var convertMenuData = function (input, parentId) {
58
+ if (parentId === void 0) { parentId = input[0].parentMenuId; }
59
+ var result = [];
60
+ for (var i = 0; i < input.length; i++) {
61
+ var item = input[i];
62
+ if (item.parentMenuId === parentId) {
63
+ var newItem = {
64
+ name: item.name,
65
+ nodeId: item.menuId,
66
+ status: AWING_1.NodeStatus.Unchecked,
67
+ isSystem: true,
68
+ parentId: item.parentMenuId,
69
+ children: [],
70
+ };
71
+ var children = (0, exports.convertMenuData)(input, item.menuId);
72
+ if (children.length > 0) {
73
+ newItem.children = children;
74
+ }
75
+ result.push(newItem);
76
+ }
77
+ }
78
+ return result;
79
+ };
80
+ exports.convertMenuData = convertMenuData;
81
+ var translateMenu = function (data, i18n, t) {
82
+ if (!data)
83
+ return data;
84
+ if (i18n.exists("Menu.MenuName.Menu_".concat(data.nodeId))) {
85
+ data.name = t("Menu.MenuName.Menu_".concat(data.nodeId));
86
+ }
87
+ if (data.children) {
88
+ data.children = data.children.map(function (child) {
89
+ return (0, exports.translateMenu)(child, i18n, t);
90
+ });
91
+ }
92
+ return data;
93
+ };
94
+ exports.translateMenu = translateMenu;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { IDomain } from '../../ACM-AXN/Page/Types';
3
+ interface PreviewCampaignContainerProps {
4
+ domainIds: string[];
5
+ open: boolean;
6
+ anchorEl: HTMLElement | null;
7
+ handlePreviewClose: (event: React.MouseEvent<HTMLElement>) => void;
8
+ handlePreviewDomain: (event: React.MouseEvent<HTMLElement>, domainId: string) => void;
9
+ service: {
10
+ domainsGetAll: () => Promise<IDomain[]>;
11
+ domainsGetByIds: (body: string[]) => Promise<IDomain[]>;
12
+ };
13
+ }
14
+ declare const PreviewCampaignContainer: React.FC<PreviewCampaignContainerProps>;
15
+ export default PreviewCampaignContainer;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var jsx_runtime_1 = require("react/jsx-runtime");
7
+ var material_1 = require("@mui/material");
8
+ var icons_material_1 = require("@mui/icons-material");
9
+ var react_1 = __importDefault(require("react"));
10
+ var react_i18next_1 = require("react-i18next");
11
+ var styles_1 = require("@mui/styles");
12
+ var AWING_1 = require("../../AWING");
13
+ var useStylesContainer = (0, styles_1.makeStyles)(function () {
14
+ var _a, _b;
15
+ var theme = (0, material_1.useTheme)();
16
+ return {
17
+ circularProgress: {
18
+ width: '10px !important',
19
+ height: '10px !important',
20
+ margin: '0px auto',
21
+ },
22
+ drawer: {
23
+ width: theme.spacing(60),
24
+ },
25
+ search: (_a = {
26
+ position: 'relative',
27
+ borderRadius: theme.shape.borderRadius,
28
+ backgroundColor: 'rgba(255, 255, 255, 0.15)',
29
+ '&:hover': {
30
+ backgroundColor: 'rgba(255, 255, 255, 0.25)',
31
+ },
32
+ marginRight: theme.spacing(2),
33
+ marginLeft: 0,
34
+ width: '100%'
35
+ },
36
+ _a[theme.breakpoints.up('sm')] = {
37
+ marginLeft: theme.spacing(3),
38
+ width: 'auto',
39
+ },
40
+ _a),
41
+ searchIcon: {
42
+ padding: theme.spacing(0, 2),
43
+ height: '100%',
44
+ position: 'absolute',
45
+ pointerEvents: 'none',
46
+ display: 'flex',
47
+ alignItems: 'center',
48
+ justifyContent: 'center',
49
+ },
50
+ inputRoot: {
51
+ color: 'inherit',
52
+ },
53
+ inputInput: (_b = {
54
+ padding: theme.spacing(1, 1, 1, 0),
55
+ // vertical padding + font size from searchIcon
56
+ paddingLeft: "calc(1em + ".concat(theme.spacing(4), "px)"),
57
+ transition: theme.transitions.create('width'),
58
+ width: '100%'
59
+ },
60
+ _b[theme.breakpoints.up('md')] = {
61
+ width: '20ch',
62
+ },
63
+ _b),
64
+ };
65
+ });
66
+ var PreviewCampaignContainer = function (props) {
67
+ var domainIds = props.domainIds, open = props.open, anchorEl = props.anchorEl, handlePreviewClose = props.handlePreviewClose, handlePreviewDomain = props.handlePreviewDomain, service = props.service;
68
+ var t = (0, react_i18next_1.useTranslation)().t;
69
+ var _a = react_1.default.useState([]), domains = _a[0], setDomains = _a[1];
70
+ var _b = react_1.default.useState(false), loadingFlags = _b[0], setLoadingFlags = _b[1];
71
+ var classes = useStylesContainer();
72
+ react_1.default.useEffect(function () {
73
+ setLoadingFlags(true);
74
+ }, []);
75
+ react_1.default.useEffect(function () {
76
+ if (domainIds.length && open === true) {
77
+ service
78
+ .domainsGetByIds(domainIds)
79
+ .then(setDomains)
80
+ .finally(function () { return setLoadingFlags(false); });
81
+ }
82
+ else
83
+ setLoadingFlags(false);
84
+ // eslint-disable-next-line react-hooks/exhaustive-deps
85
+ }, [domainIds, open]);
86
+ react_1.default.useEffect(function () {
87
+ if (!domainIds.length) {
88
+ setOpenDrawer(true);
89
+ // handlePreviewClose({stopPropagation: () => {}} as any)
90
+ }
91
+ }, [domainIds]);
92
+ var _c = react_1.default.useState(false), openDrawer = _c[0], setOpenDrawer = _c[1];
93
+ var toggleDrawer = function (open) { return function (event) {
94
+ event.stopPropagation();
95
+ if (event &&
96
+ event.type === 'keydown' &&
97
+ (event.key === 'Tab' ||
98
+ event.key === 'Shift')) {
99
+ return;
100
+ }
101
+ setOpenDrawer(open);
102
+ }; };
103
+ var _d = react_1.default.useState(''), searchDomainString = _d[0], setSearchDomainString = _d[1];
104
+ var _e = react_1.default.useState([]), allDomain = _e[0], setAllDomain = _e[1];
105
+ var _f = react_1.default.useState(true), isLoadingAllDomain = _f[0], setIsLoadingAllDomain = _f[1];
106
+ react_1.default.useEffect(function () {
107
+ if (openDrawer === true && allDomain.length <= 0) {
108
+ setIsLoadingAllDomain(true);
109
+ service
110
+ .domainsGetAll()
111
+ .then(setAllDomain)
112
+ .finally(function () { return setIsLoadingAllDomain(false); });
113
+ }
114
+ // eslint-disable-next-line react-hooks/exhaustive-deps
115
+ }, [openDrawer]);
116
+ var translationText = {
117
+ searchPlaceholder: t('Common.SearchPlaceholder'),
118
+ copyToClipboard: t('Common.Preview'),
119
+ other: t('Campaign.Type.Other'),
120
+ };
121
+ return ((0, jsx_runtime_1.jsxs)(material_1.Menu, { id: "long-menu", anchorEl: anchorEl, keepMounted: true, open: open, onClose: handlePreviewClose, PaperProps: {
122
+ style: {
123
+ maxHeight: 48 * 4.5,
124
+ width: '25ch',
125
+ },
126
+ }, children: [loadingFlags ? ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { children: (0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {}) })) : (domains &&
127
+ domains.map(function (domain) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { onClick: function (event) {
128
+ handlePreviewClose(event);
129
+ handlePreviewDomain(event, domain.domainId);
130
+ }, children: domain.name }, domain.domainId)); })), !loadingFlags && ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { onClick: toggleDrawer(true), children: translationText.other })), (0, jsx_runtime_1.jsx)(material_1.Drawer, { anchor: 'right', open: openDrawer, onClose: function () {
131
+ toggleDrawer(false);
132
+ handlePreviewClose({ stopPropagation: function () { } });
133
+ }, onClick: function (e) { return e.stopPropagation(); }, sx: {
134
+ zIndex: function (theme) { return theme.zIndex.drawer * 10; },
135
+ }, children: isLoadingAllDomain ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
136
+ width: function (t) { return t.spacing(60); },
137
+ }, children: (0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {}) }) })) : ((0, jsx_runtime_1.jsxs)(material_1.List, { className: classes.drawer, children: [(0, jsx_runtime_1.jsx)(material_1.ListItem, { component: "div", children: (0, jsx_runtime_1.jsx)(material_1.TextField, { fullWidth: true, placeholder: translationText.searchPlaceholder, size: 'small', sx: {
138
+ '& fieldset': {
139
+ border: 'none!important'
140
+ }
141
+ }, inputProps: { 'aria-label': 'search' }, InputProps: {
142
+ startAdornment: (0, jsx_runtime_1.jsx)(icons_material_1.Search, {}),
143
+ }, onChange: function (e) {
144
+ return setSearchDomainString(e.target.value);
145
+ } }) }), (0, jsx_runtime_1.jsx)(material_1.Divider, {}), allDomain &&
146
+ allDomain
147
+ .filter(function (d) {
148
+ return d.name
149
+ .toLowerCase()
150
+ .includes(searchDomainString.toLowerCase());
151
+ })
152
+ .sort(function (a, b) {
153
+ return a.name !== b.name
154
+ ? a.name < b.name
155
+ ? -1
156
+ : 1
157
+ : 0;
158
+ })
159
+ .map(function (domain) { return ((0, jsx_runtime_1.jsxs)(material_1.ListItem, { button: true, onClick: function (e) {
160
+ return handlePreviewDomain(e, domain.domainId);
161
+ }, children: [(0, jsx_runtime_1.jsx)(material_1.ListItemText, { primary: domain.name }), (0, jsx_runtime_1.jsx)(material_1.ListItemSecondaryAction, { children: (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: translationText.copyToClipboard, placement: "left", arrow: true, children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { edge: "end", onClick: function (e) {
162
+ return handlePreviewDomain(e, domain.domainId);
163
+ }, children: (0, jsx_runtime_1.jsx)(icons_material_1.VisibilityOutlined, { fontSize: "small" }) }) }) })] }, domain.domainId)); })] })) })] }));
164
+ };
165
+ exports.default = PreviewCampaignContainer;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface DomainPreviewProps {
3
+ handlePreviewPage: (e: React.MouseEvent<HTMLSpanElement, any>) => void;
4
+ isSelectDomain?: boolean;
5
+ }
6
+ declare const DomainPreview: React.FC<DomainPreviewProps>;
7
+ export default DomainPreview;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var jsx_runtime_1 = require("react/jsx-runtime");
4
+ var icons_material_1 = require("@mui/icons-material");
5
+ var material_1 = require("@mui/material");
6
+ var DomainPreview = function (_a) {
7
+ var handlePreviewPage = _a.handlePreviewPage, isSelectDomain = _a.isSelectDomain;
8
+ return isSelectDomain ? ((0, jsx_runtime_1.jsxs)(material_1.Typography, { component: 'p', sx: { display: 'flex' }, children: [(0, jsx_runtime_1.jsx)(icons_material_1.VisibilityOutlined, {}), (0, jsx_runtime_1.jsx)(material_1.Typography, { component: 'span', "aria-label": "more", "aria-controls": "long-menu", "aria-haspopup": "true", onClick: handlePreviewPage, sx: { height: '20px' }, children: (0, jsx_runtime_1.jsx)(icons_material_1.ArrowDropDown, { fontSize: "small" }) })] })) : ((0, jsx_runtime_1.jsx)(icons_material_1.VisibilityOutlined, {}));
9
+ };
10
+ exports.default = DomainPreview;
@@ -0,0 +1,7 @@
1
+ export declare const CREATE_PATH = "Create";
2
+ export declare const IMPORT_PATH = "Import";
3
+ export declare const EDIT_PATH = "Edit";
4
+ export declare const CLONE_PATH = "Clone";
5
+ export declare const DEBOUNCE_TIME = 700;
6
+ export declare const DEBOUNCE_TIME_500 = 500;
7
+ export declare const DEBOUNCE_TIME_300 = 300;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEBOUNCE_TIME_300 = exports.DEBOUNCE_TIME_500 = exports.DEBOUNCE_TIME = exports.CLONE_PATH = exports.EDIT_PATH = exports.IMPORT_PATH = exports.CREATE_PATH = void 0;
4
+ exports.CREATE_PATH = 'Create';
5
+ exports.IMPORT_PATH = 'Import';
6
+ exports.EDIT_PATH = 'Edit';
7
+ exports.CLONE_PATH = 'Clone';
8
+ exports.DEBOUNCE_TIME = 700;
9
+ exports.DEBOUNCE_TIME_500 = 500;
10
+ exports.DEBOUNCE_TIME_300 = 300;
@@ -0,0 +1,2 @@
1
+ declare const GroupUserContainer: () => import("react/jsx-runtime").JSX.Element;
2
+ export default GroupUserContainer;