awing-library 2.1.13-beta → 2.1.13

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 (197) hide show
  1. package/README.md +4 -19
  2. package/lib/ACM-AXN/Campaign/Container.js +6 -7
  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 +3 -2
  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 +81 -34
  33. package/lib/ACM-AXN/CampaignSchedule/Components/TableHeaderDragable.d.ts +1 -1
  34. package/lib/ACM-AXN/CampaignSchedule/Components/TableHeaderDragable.js +38 -29
  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/MenuDirectory/index.js +7 -21
  44. package/lib/ACM-AXN/Directory/SystemDirectory/index.js +6 -5
  45. package/lib/ACM-AXN/Directory/components/Permission/Management.js +7 -5
  46. package/lib/ACM-AXN/Directory/components/Permission/MenuPermissions/MenuPermissionManagement.js +9 -7
  47. package/lib/ACM-AXN/Directory/function.d.ts +1 -0
  48. package/lib/ACM-AXN/Directory/function.js +15 -1
  49. package/lib/ACM-AXN/DomainPreview/PreviewButton.d.ts +15 -0
  50. package/lib/ACM-AXN/DomainPreview/PreviewButton.js +188 -0
  51. package/lib/ACM-AXN/DomainPreview/index.d.ts +7 -0
  52. package/lib/ACM-AXN/DomainPreview/index.js +10 -0
  53. package/lib/ACM-AXN/GroupUser/Constants.d.ts +7 -0
  54. package/lib/ACM-AXN/GroupUser/Constants.js +10 -0
  55. package/lib/ACM-AXN/GroupUser/Container.d.ts +2 -0
  56. package/lib/ACM-AXN/GroupUser/Container.js +55 -0
  57. package/lib/ACM-AXN/GroupUser/Container.test.d.ts +1 -0
  58. package/lib/ACM-AXN/GroupUser/Container.test.js +210 -0
  59. package/lib/ACM-AXN/GroupUser/CreateOrEdit.d.ts +3 -0
  60. package/lib/ACM-AXN/GroupUser/CreateOrEdit.js +91 -0
  61. package/lib/ACM-AXN/GroupUser/CreateOrEdit.test.d.ts +1 -0
  62. package/lib/ACM-AXN/GroupUser/CreateOrEdit.test.js +235 -0
  63. package/lib/ACM-AXN/GroupUser/Hooks.d.ts +5 -0
  64. package/lib/ACM-AXN/GroupUser/Hooks.js +13 -0
  65. package/lib/ACM-AXN/GroupUser/Types.d.ts +31 -0
  66. package/lib/ACM-AXN/GroupUser/Types.js +2 -0
  67. package/lib/ACM-AXN/GroupUser/User/SearchUser.d.ts +9 -0
  68. package/lib/ACM-AXN/GroupUser/User/SearchUser.js +63 -0
  69. package/lib/ACM-AXN/GroupUser/User/SearchUser.test.d.ts +1 -0
  70. package/lib/ACM-AXN/GroupUser/User/SearchUser.test.js +140 -0
  71. package/lib/ACM-AXN/GroupUser/User/UserComponent.d.ts +8 -0
  72. package/lib/ACM-AXN/GroupUser/User/UserComponent.js +77 -0
  73. package/lib/ACM-AXN/GroupUser/User/UserComponent.test.d.ts +1 -0
  74. package/lib/ACM-AXN/GroupUser/User/UserComponent.test.js +128 -0
  75. package/lib/ACM-AXN/GroupUser/index.d.ts +4 -0
  76. package/lib/ACM-AXN/GroupUser/index.js +27 -0
  77. package/lib/ACM-AXN/Notifications/Constant.d.ts +146 -0
  78. package/lib/ACM-AXN/Notifications/Constant.js +136 -0
  79. package/lib/ACM-AXN/Notifications/Context.d.ts +8 -0
  80. package/lib/ACM-AXN/Notifications/Context.js +10 -0
  81. package/lib/ACM-AXN/Notifications/Hooks.d.ts +7 -0
  82. package/lib/ACM-AXN/Notifications/Hooks.js +17 -0
  83. package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/ButtonTabs.d.ts +3 -3
  84. package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/ButtonTabs.js +31 -30
  85. package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/MenuNotification.d.ts +1 -1
  86. package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/MenuNotification.js +30 -39
  87. package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/index.d.ts +3 -5
  88. package/lib/ACM-AXN/Notifications/NotificationDetail/HeaderInfo/index.js +18 -17
  89. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationEmpty.d.ts +1 -1
  90. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationEmpty.js +15 -15
  91. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationEmpty.test.d.ts +0 -6
  92. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationEmpty.test.js +29 -28
  93. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/Message.d.ts +10 -0
  94. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/Message.js +393 -0
  95. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/NotificationAvatar.d.ts +1 -1
  96. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/NotificationAvatar.js +3 -3
  97. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/NotificationAvatar.test.d.ts +0 -6
  98. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/NotificationAvatar.test.js +38 -48
  99. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/NotificationContent.d.ts +2 -2
  100. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/NotificationContent.js +36 -35
  101. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/NotificationContent.test.d.ts +0 -6
  102. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/NotificationContent.test.js +65 -73
  103. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/index.d.ts +4 -11
  104. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/index.js +46 -36
  105. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/index.test.d.ts +0 -6
  106. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationItem/index.test.js +56 -50
  107. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/NotificationLoading.js +30 -30
  108. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/index.d.ts +3 -15
  109. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/index.js +35 -4
  110. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/index.test.d.ts +0 -6
  111. package/lib/ACM-AXN/Notifications/NotificationDetail/NotificationList/index.test.js +88 -83
  112. package/lib/ACM-AXN/Notifications/NotificationDetail/index.d.ts +5 -2
  113. package/lib/ACM-AXN/Notifications/NotificationDetail/index.js +115 -101
  114. package/lib/ACM-AXN/Notifications/{NotificationPopover.d.ts → NotificationPopover/Container.d.ts} +2 -2
  115. package/lib/ACM-AXN/Notifications/NotificationPopover/Container.js +149 -0
  116. package/lib/ACM-AXN/Notifications/{NotificationPopover.test.d.ts → NotificationPopover/Container.test.d.ts} +1 -1
  117. package/lib/ACM-AXN/Notifications/{NotificationPopover.test.js → NotificationPopover/Container.test.js} +5 -5
  118. package/lib/ACM-AXN/Notifications/NotificationPopover/index.d.ts +8 -0
  119. package/lib/ACM-AXN/Notifications/NotificationPopover/index.js +13 -0
  120. package/lib/ACM-AXN/Notifications/NotificationScreen.d.ts +1 -1
  121. package/lib/ACM-AXN/Notifications/NotificationScreen.js +4 -4
  122. package/lib/ACM-AXN/Notifications/Types.d.ts +242 -0
  123. package/lib/ACM-AXN/Notifications/Types.js +290 -0
  124. package/lib/ACM-AXN/Notifications/index.d.ts +2 -2
  125. package/lib/ACM-AXN/Notifications/index.js +5 -5
  126. package/lib/ACM-AXN/Page/Container.js +101 -63
  127. package/lib/ACM-AXN/Page/CreateOrEdit/DrawerAction.js +22 -5
  128. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.d.ts +1 -0
  129. package/lib/ACM-AXN/Page/CreateOrEdit/Recoil.js +5 -1
  130. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewContent.js +1 -1
  131. package/lib/ACM-AXN/Page/CreateOrEdit/Tabview/ViewInfo.js +11 -4
  132. package/lib/ACM-AXN/Page/CreateOrEdit/Utils.js +1 -1
  133. package/lib/ACM-AXN/Page/Types.d.ts +9 -0
  134. package/lib/ACM-AXN/Page/index.js +2 -1
  135. package/lib/ACM-AXN/Permission/Components/Management.test.js +1 -1
  136. package/lib/ACM-AXN/PlaceGroup/Context.d.ts +1 -1
  137. package/lib/ACM-AXN/Statistics/ControlPanel.js +49 -47
  138. package/lib/ACM-AXN/Statistics/Enums.d.ts +1 -0
  139. package/lib/ACM-AXN/Statistics/Enums.js +1 -0
  140. package/lib/ACM-AXN/Statistics/container.js +1 -1
  141. package/lib/ACM-AXN/StatisticsAudienceDemographic/container.d.ts +1 -1
  142. package/lib/ACM-AXN/StatisticsAudienceDemographic/container.js +2 -3
  143. package/lib/ACM-AXN/StatisticsAudienceDemographic/interfaces.d.ts +1 -0
  144. package/lib/ACM-AXN/StatisticsByProvince/container.d.ts +1 -1
  145. package/lib/ACM-AXN/StatisticsByProvince/container.js +2 -2
  146. package/lib/ACM-AXN/TaskScheduler/Container.js +1 -1
  147. package/lib/ACM-AXN/TaskScheduler/CreateOrEdit.js +1 -1
  148. package/lib/ACM-AXN/TaskScheduler/Utils.js +2 -0
  149. package/lib/ACM-AXN/User/Add.d.ts +2 -0
  150. package/lib/ACM-AXN/User/Add.js +64 -0
  151. package/lib/ACM-AXN/User/Add.test.d.ts +1 -0
  152. package/lib/ACM-AXN/User/Add.test.js +115 -0
  153. package/lib/ACM-AXN/User/Constants.d.ts +2 -0
  154. package/lib/ACM-AXN/User/Constants.js +5 -0
  155. package/lib/ACM-AXN/User/Container.d.ts +2 -0
  156. package/lib/ACM-AXN/User/Container.js +60 -0
  157. package/lib/ACM-AXN/User/Container.test.d.ts +1 -0
  158. package/lib/ACM-AXN/User/Container.test.js +202 -0
  159. package/lib/ACM-AXN/User/Hook.d.ts +5 -0
  160. package/lib/ACM-AXN/User/Hook.js +13 -0
  161. package/lib/ACM-AXN/User/Types.d.ts +45 -0
  162. package/lib/ACM-AXN/User/Types.js +2 -0
  163. package/lib/ACM-AXN/User/index.d.ts +4 -0
  164. package/lib/ACM-AXN/User/index.js +18 -0
  165. package/lib/ACM-AXN/ViewTemplate/TemplateField/Fields/BasicField/index.js +1 -1
  166. package/lib/AWING/AdvancedSearch/component.js +1 -1
  167. package/lib/AWING/AdvancedSearch/interface.d.ts +1 -0
  168. package/lib/AWING/ButtonDateRangePicker/ButtonDateRangePicker.js +2 -2
  169. package/lib/AWING/ButtonDateRangePicker/interface.d.ts +1 -0
  170. package/lib/AWING/Chart/BarLineComponent.d.ts +1 -0
  171. package/lib/AWING/Chart/BarLineComponent.js +39 -24
  172. package/lib/AWING/Chart/PieComponent.d.ts +1 -1
  173. package/lib/AWING/Chart/PieComponent.js +0 -1
  174. package/lib/AWING/Chart/Styles.d.ts +6 -2
  175. package/lib/AWING/Chart/Styles.js +6 -2
  176. package/lib/AWING/Chart/index.d.ts +3 -0
  177. package/lib/AWING/Chart/index.js +10 -0
  178. package/lib/AWING/DataForm/DataInput.js +17 -8
  179. package/lib/AWING/DataForm/interface.d.ts +6 -2
  180. package/lib/AWING/DataGrid/index.js +20 -5
  181. package/lib/AWING/DataGrid/interface.d.ts +6 -1
  182. package/lib/AWING/Directory/CreateDirectory.d.ts +3 -0
  183. package/lib/AWING/Directory/CreateDirectory.js +27 -10
  184. package/lib/AWING/PageManagement/PageManagement.js +1 -1
  185. package/lib/AWING/index.d.ts +1 -0
  186. package/lib/AWING/index.js +1 -0
  187. package/lib/AWING/ultis/validation.d.ts +2 -2
  188. package/lib/AWING/ultis/validation.js +6 -4
  189. package/lib/Commons/Components/ClassicBaseDrawer.d.ts +1 -0
  190. package/lib/Commons/Components/ClassicBaseDrawer.js +7 -3
  191. package/lib/Commons/Components/ClassicDrawer.js +2 -2
  192. package/lib/translate/en/translation.json +81 -2
  193. package/lib/translate/vi/translation.json +81 -2
  194. package/package.json +4 -2
  195. package/lib/ACM-AXN/Notifications/NotificationDetail/Common.d.ts +0 -39
  196. package/lib/ACM-AXN/Notifications/NotificationDetail/Common.js +0 -304
  197. package/lib/ACM-AXN/Notifications/NotificationPopover.js +0 -69
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ var jsx_runtime_1 = require("react/jsx-runtime");
27
+ var material_1 = require("@mui/material");
28
+ var icons_material_1 = require("@mui/icons-material");
29
+ var react_1 = __importStar(require("react"));
30
+ var react_i18next_1 = require("react-i18next");
31
+ var styles_1 = require("@mui/styles");
32
+ var AWING_1 = require("../../AWING");
33
+ var lodash_1 = require("lodash");
34
+ var useStylesContainer = (0, styles_1.makeStyles)(function () {
35
+ var _a, _b;
36
+ var theme = (0, material_1.useTheme)();
37
+ return {
38
+ circularProgress: {
39
+ width: '10px !important',
40
+ height: '10px !important',
41
+ margin: '0px auto',
42
+ },
43
+ drawer: {
44
+ width: theme.spacing(60),
45
+ },
46
+ search: (_a = {
47
+ position: 'relative',
48
+ borderRadius: theme.shape.borderRadius,
49
+ backgroundColor: 'rgba(255, 255, 255, 0.15)',
50
+ '&:hover': {
51
+ backgroundColor: 'rgba(255, 255, 255, 0.25)',
52
+ },
53
+ marginRight: theme.spacing(2),
54
+ marginLeft: 0,
55
+ width: '100%'
56
+ },
57
+ _a[theme.breakpoints.up('sm')] = {
58
+ marginLeft: theme.spacing(3),
59
+ width: 'auto',
60
+ },
61
+ _a),
62
+ searchIcon: {
63
+ padding: theme.spacing(0, 2),
64
+ height: '100%',
65
+ position: 'absolute',
66
+ pointerEvents: 'none',
67
+ display: 'flex',
68
+ alignItems: 'center',
69
+ justifyContent: 'center',
70
+ },
71
+ inputRoot: {
72
+ color: 'inherit',
73
+ },
74
+ inputInput: (_b = {
75
+ padding: theme.spacing(1, 1, 1, 0),
76
+ // vertical padding + font size from searchIcon
77
+ paddingLeft: "calc(1em + ".concat(theme.spacing(4), "px)"),
78
+ transition: theme.transitions.create('width'),
79
+ width: '100%'
80
+ },
81
+ _b[theme.breakpoints.up('md')] = {
82
+ width: '20ch',
83
+ },
84
+ _b),
85
+ };
86
+ });
87
+ var PreviewCampaignContainer = function (props) {
88
+ var domainIds = props.domainIds, open = props.open, anchorEl = props.anchorEl, handlePreviewClose = props.handlePreviewClose, handlePreviewDomain = props.handlePreviewDomain, service = props.service;
89
+ var t = (0, react_i18next_1.useTranslation)().t;
90
+ var _a = react_1.default.useState([]), domains = _a[0], setDomains = _a[1];
91
+ var _b = react_1.default.useState(false), loadingFlags = _b[0], setLoadingFlags = _b[1];
92
+ var classes = useStylesContainer();
93
+ react_1.default.useEffect(function () {
94
+ setLoadingFlags(true);
95
+ }, []);
96
+ react_1.default.useEffect(function () {
97
+ if (open === true) {
98
+ if (domainIds.length) {
99
+ service
100
+ .domainsGetByIds(domainIds)
101
+ .then(setDomains)
102
+ .finally(function () { return setLoadingFlags(false); });
103
+ }
104
+ else {
105
+ service
106
+ .domainsGetAll()
107
+ .then(function (res) {
108
+ setAllDomain(res);
109
+ setDomains(res.slice(0, 5));
110
+ })
111
+ .finally(function () { return setLoadingFlags(false); });
112
+ }
113
+ }
114
+ // eslint-disable-next-line react-hooks/exhaustive-deps
115
+ }, [domainIds, open]);
116
+ var _c = react_1.default.useState(false), openDrawer = _c[0], setOpenDrawer = _c[1];
117
+ var toggleDrawer = function (open) { return function (event) {
118
+ event.stopPropagation();
119
+ if (event &&
120
+ event.type === 'keydown' &&
121
+ (event.key === 'Tab' ||
122
+ event.key === 'Shift')) {
123
+ return;
124
+ }
125
+ setOpenDrawer(open);
126
+ }; };
127
+ var _d = react_1.default.useState(''), searchDomainString = _d[0], setSearchDomainString = _d[1];
128
+ var _e = react_1.default.useState([]), allDomain = _e[0], setAllDomain = _e[1];
129
+ var _f = react_1.default.useState(true), isLoadingAllDomain = _f[0], setIsLoadingAllDomain = _f[1];
130
+ react_1.default.useEffect(function () {
131
+ if (openDrawer === true && allDomain.length <= 0) {
132
+ setIsLoadingAllDomain(true);
133
+ service
134
+ .domainsGetAll()
135
+ .then(setAllDomain)
136
+ .finally(function () { return setIsLoadingAllDomain(false); });
137
+ }
138
+ else {
139
+ setIsLoadingAllDomain(false);
140
+ }
141
+ // eslint-disable-next-line react-hooks/exhaustive-deps
142
+ }, [openDrawer]);
143
+ var translationText = {
144
+ searchPlaceholder: t('Common.SearchPlaceholder'),
145
+ copyToClipboard: t('Common.Preview'),
146
+ other: t('Campaign.Type.Other'),
147
+ };
148
+ // eslint-disable-next-line react-hooks/exhaustive-deps
149
+ var handleSearch = (0, react_1.useCallback)((0, lodash_1.debounce)(setSearchDomainString, 300), []);
150
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(material_1.Menu, { id: "long-menu", anchorEl: anchorEl, keepMounted: true, open: open, onClose: handlePreviewClose, PaperProps: {
151
+ style: {
152
+ maxHeight: 48 * 4.5,
153
+ width: '25ch',
154
+ },
155
+ }, children: [loadingFlags ? ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { children: (0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {}) })) : (domains &&
156
+ domains.map(function (domain) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { onClick: function (event) {
157
+ handlePreviewClose(event);
158
+ handlePreviewDomain(event, domain.domainId);
159
+ }, 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 () {
160
+ toggleDrawer(false);
161
+ handlePreviewClose({ stopPropagation: function () { } });
162
+ }, onClick: function (e) { return e.stopPropagation(); }, sx: {
163
+ zIndex: function (theme) { return theme.zIndex.drawer * 10; },
164
+ }, children: isLoadingAllDomain ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
165
+ width: function (t) { return t.spacing(60); },
166
+ }, 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, inputProps: { 'aria-label': 'search' }, InputProps: {
167
+ startAdornment: (0, jsx_runtime_1.jsx)(icons_material_1.Search, {}),
168
+ }, onChange: function (e) { return handleSearch(e.target.value); } }) }), (0, jsx_runtime_1.jsx)(material_1.Divider, {}), allDomain &&
169
+ allDomain
170
+ .filter(function (d) {
171
+ return d.name
172
+ .toLowerCase()
173
+ .includes(searchDomainString.toLowerCase());
174
+ })
175
+ .sort(function (a, b) {
176
+ return a.name !== b.name
177
+ ? a.name < b.name
178
+ ? -1
179
+ : 1
180
+ : 0;
181
+ })
182
+ .map(function (domain) { return ((0, jsx_runtime_1.jsxs)(material_1.ListItem, { button: true, onClick: function (e) {
183
+ return handlePreviewDomain(e, domain.domainId);
184
+ }, 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) {
185
+ return handlePreviewDomain(e, domain.domainId);
186
+ }, children: (0, jsx_runtime_1.jsx)(icons_material_1.VisibilityOutlined, { fontSize: "small" }) }) }) })] }, domain.domainId)); })] })) })] }));
187
+ };
188
+ 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;
@@ -0,0 +1,55 @@
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 PageManagement_1 = require("../../AWING/PageManagement");
8
+ var react_1 = require("react");
9
+ var react_i18next_1 = require("react-i18next");
10
+ var Router_1 = require("../../AWING/Router");
11
+ var Constants_1 = require("./Constants");
12
+ var Context_1 = require("../../Context");
13
+ var Hooks_1 = __importDefault(require("./Hooks"));
14
+ var GroupUserContainer = function () {
15
+ var t = (0, react_i18next_1.useTranslation)().t;
16
+ var service = (0, Hooks_1.default)().service;
17
+ var _a = (0, Context_1.useAwing)().appHelper, confirm = _a.confirm, snackbar = _a.snackbar;
18
+ var navigate = (0, Router_1.useNavigate)();
19
+ var _b = (0, react_1.useState)(true), loading = _b[0], setLoading = _b[1];
20
+ var _c = (0, react_1.useState)(), userGroups = _c[0], setUserGroups = _c[1];
21
+ var handleNavigate = function () {
22
+ navigate(Constants_1.CREATE_PATH);
23
+ };
24
+ var getUserGroups = (0, react_1.useCallback)(function (queryParams) {
25
+ setLoading(true);
26
+ service
27
+ .groupsPaging(queryParams.searchString, undefined, queryParams.pageIndex, queryParams.pageSize)
28
+ .then(setUserGroups)
29
+ .finally(function () {
30
+ setLoading(false);
31
+ });
32
+ }, [service]);
33
+ var handleDelete = function (id) {
34
+ return service.groupsDelete(id).then(function () { return snackbar('success'); });
35
+ };
36
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(PageManagement_1.PageManagement, { title: t('UserGroup.Title'), onChangeQueryInput: getUserGroups, getRowId: function (obj) { return obj.groupId; }, columns: [
37
+ {
38
+ field: '#',
39
+ headerName: '#',
40
+ width: 100,
41
+ valueGetter: function (_unUse, idx, stt) { return stt; },
42
+ },
43
+ {
44
+ field: 'name',
45
+ headerName: t('Common.GroupName'),
46
+ },
47
+ {
48
+ field: 'description',
49
+ headerName: t('Common.Description'),
50
+ },
51
+ ], loading: loading, rows: (userGroups === null || userGroups === void 0 ? void 0 : userGroups.items) || [], onCreateButtonClick: handleNavigate, onRowClick: function (id) {
52
+ navigate([Constants_1.EDIT_PATH, id].join('/'));
53
+ }, totalOfRows: userGroups === null || userGroups === void 0 ? void 0 : userGroups.totalItemCount, onDelete: handleDelete, confirmDelete: confirm }) }));
54
+ };
55
+ exports.default = GroupUserContainer;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom/extend-expect';
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var jsx_runtime_1 = require("react/jsx-runtime");
54
+ require("@testing-library/jest-dom/extend-expect");
55
+ var react_1 = require("@testing-library/react");
56
+ var Router_1 = require("../../AWING/Router");
57
+ var Container_1 = __importDefault(require("./Container"));
58
+ var Constants_1 = require("./Constants");
59
+ var items = [
60
+ {
61
+ groupId: '10',
62
+ name: 'Administrators',
63
+ description: 'Quản trị hệ thống',
64
+ },
65
+ {
66
+ groupId: '1543',
67
+ name: 'Advance Users',
68
+ description: null,
69
+ },
70
+ {
71
+ groupId: '5755448572239982608',
72
+ name: 'AWING_ADS DELI',
73
+ description: null,
74
+ },
75
+ ];
76
+ var clientMethod = {
77
+ groupsPaging: function () {
78
+ return Promise.resolve({
79
+ items: items,
80
+ totalItemCount: items === null || items === void 0 ? void 0 : items.length,
81
+ });
82
+ },
83
+ groupsDelete: function () { return function (_id) { }; },
84
+ };
85
+ // Mock AWING/Router
86
+ jest.mock('AWING/Router', function () { return (__assign(__assign({}, jest.requireActual('AWING/Router')), { useLocation: jest.fn() })); });
87
+ // Mock Axios client
88
+ jest.mock('Commons/UseAxiosProvider', function () { return ({
89
+ __esModule: true,
90
+ default: function () { return ({
91
+ client: {
92
+ groupsPaging: jest.fn(function () {
93
+ var _param = [];
94
+ for (var _i = 0; _i < arguments.length; _i++) {
95
+ _param[_i] = arguments[_i];
96
+ }
97
+ return Promise.resolve(clientMethod.groupsPaging());
98
+ }),
99
+ groupsDelete: jest.fn(function (_id) {
100
+ return Promise.resolve(clientMethod.groupsDelete());
101
+ }),
102
+ },
103
+ }); },
104
+ }); });
105
+ // Mock i18next
106
+ jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requireActual('react-i18next')), { useTranslation: function () { return ({ t: jest.fn(function (key) { return key; }) }); } })); });
107
+ // Mock PageManagement
108
+ jest.mock('AWING/PageManagement', function () { return ({
109
+ PageManagement: function (props) {
110
+ props.onChangeQueryInput({
111
+ searchString: '',
112
+ pageIndex: 0,
113
+ pageSize: 10,
114
+ });
115
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [props.columns
116
+ .filter(function (item) { return item.valueGetter; })
117
+ .map(function (getter, idx) { return ((0, jsx_runtime_1.jsx)("span", { children: getter.valueGetter(items[0], idx) }, idx)); }), (0, jsx_runtime_1.jsx)("span", { "data-testid": "rowid", children: props.getRowId(items[0]) }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "Rowclick", onClick: function () {
118
+ props.onRowClick(items[0].groupId);
119
+ }, children: "Rowclick" }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "CreateBtn", onClick: props.onCreateButtonClick, children: "CreateBtn" }), (0, jsx_runtime_1.jsx)("button", { onClick: function () {
120
+ props.onChangeQueryInput({
121
+ pageIndex: 1,
122
+ pageSize: 10,
123
+ });
124
+ }, children: "ChangeInput" }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onDelete", onClick: function () {
125
+ props.onDelete('onDelete');
126
+ }, children: "Remove Btn" }), (0, jsx_runtime_1.jsx)("p", { children: JSON.stringify(props.rows) }), (0, jsx_runtime_1.jsxs)("span", { children: ["totalItemCount:", props.totalOfRows] })] }));
127
+ },
128
+ }); });
129
+ var renderUi = function () {
130
+ return (0, react_1.render)((0, jsx_runtime_1.jsx)(Router_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Container_1.default, {}) }));
131
+ };
132
+ describe('User Container Component', function () {
133
+ it('renders without crashing', function () {
134
+ renderUi();
135
+ });
136
+ it('render state', function () { return __awaiter(void 0, void 0, void 0, function () {
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0:
140
+ renderUi();
141
+ expect(react_1.screen.getByTestId('CreateBtn')).toBeInTheDocument();
142
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
143
+ expect(react_1.screen.getByText(JSON.stringify(items))).toBeInTheDocument();
144
+ })];
145
+ case 1:
146
+ _a.sent();
147
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
148
+ expect(react_1.screen.getByText("totalItemCount:".concat(items.length))).toBeInTheDocument();
149
+ })];
150
+ case 2:
151
+ _a.sent();
152
+ return [2 /*return*/];
153
+ }
154
+ });
155
+ }); });
156
+ it('get rowid', function () {
157
+ renderUi();
158
+ expect(react_1.screen.getByText(items[0].groupId)).toBeInTheDocument();
159
+ });
160
+ it('Change queryInput', function () {
161
+ var groupsPagingSpy = jest.spyOn(clientMethod, 'groupsPaging');
162
+ renderUi();
163
+ react_1.fireEvent.click(react_1.screen.getByText('ChangeInput'));
164
+ expect(groupsPagingSpy).toBeCalled();
165
+ });
166
+ it('Trigger Create button', function () { return __awaiter(void 0, void 0, void 0, function () {
167
+ return __generator(this, function (_a) {
168
+ switch (_a.label) {
169
+ case 0:
170
+ renderUi();
171
+ react_1.fireEvent.click(react_1.screen.getByTestId('CreateBtn'));
172
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
173
+ return expect(window.location.href).toContain(['http://localhost', Constants_1.CREATE_PATH].join('/'));
174
+ })];
175
+ case 1:
176
+ _a.sent();
177
+ return [2 /*return*/];
178
+ }
179
+ });
180
+ }); });
181
+ it('Row click', function () { return __awaiter(void 0, void 0, void 0, function () {
182
+ return __generator(this, function (_a) {
183
+ switch (_a.label) {
184
+ case 0:
185
+ renderUi();
186
+ react_1.fireEvent.click(react_1.screen.getByTestId('Rowclick'));
187
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
188
+ return expect(window.location.href).toContain([
189
+ 'http://localhost',
190
+ Constants_1.EDIT_PATH,
191
+ items[0].groupId,
192
+ ].join('/'));
193
+ })];
194
+ case 1:
195
+ _a.sent();
196
+ return [2 /*return*/];
197
+ }
198
+ });
199
+ }); });
200
+ it('Delete group', function () { return __awaiter(void 0, void 0, void 0, function () {
201
+ var groupsDeleteSpy;
202
+ return __generator(this, function (_a) {
203
+ groupsDeleteSpy = jest.spyOn(clientMethod, 'groupsDelete');
204
+ renderUi();
205
+ react_1.fireEvent.click(react_1.screen.getByTestId('onDelete'));
206
+ expect(groupsDeleteSpy).toBeCalled();
207
+ return [2 /*return*/];
208
+ });
209
+ }); });
210
+ });
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const CreateOrEdit: React.FC;
3
+ export default CreateOrEdit;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("react/jsx-runtime");
18
+ var ClassicDrawer_1 = __importDefault(require("../../Commons/Components/ClassicDrawer"));
19
+ var AWING_1 = require("../../AWING");
20
+ var react_1 = require("react");
21
+ var react_i18next_1 = require("react-i18next");
22
+ var Router_1 = require("../../AWING/Router");
23
+ var UserComponent_1 = __importDefault(require("./User/UserComponent"));
24
+ var SearchUser_1 = __importDefault(require("./User/SearchUser"));
25
+ var Hooks_1 = __importDefault(require("./Hooks"));
26
+ var Constants_1 = require("../../ACM-AXN/User/Constants");
27
+ var CreateOrEdit = function () {
28
+ var _a;
29
+ var groupId = (0, Router_1.useParams)().groupId;
30
+ var t = (0, react_i18next_1.useTranslation)().t;
31
+ var service = (0, Hooks_1.default)().service;
32
+ var _b = (0, react_1.useState)(false), confirmExit = _b[0], setConfirmExit = _b[1];
33
+ var _c = (0, react_1.useState)(false), isValid = _c[0], setValid = _c[1];
34
+ var _d = (0, react_1.useState)([]), users = _d[0], setUsers = _d[1];
35
+ var _e = (0, react_1.useState)({
36
+ userIds: [],
37
+ group: { name: '', description: '' },
38
+ }), businessUnitdata = _e[0], setBusinessUnitData = _e[1];
39
+ var _f = (0, react_1.useState)(true), loading = _f[0], setloading = _f[1];
40
+ (0, react_1.useEffect)(function () {
41
+ setloading(true);
42
+ Promise.all([
43
+ groupId
44
+ ? service.groupsGet(groupId).then(setBusinessUnitData)
45
+ : Promise.resolve(),
46
+ service.usersGet().then(setUsers),
47
+ ]).finally(function () {
48
+ setloading(false);
49
+ });
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ }, []);
52
+ var handleUpdate = (0, react_1.useCallback)(function (obj, formValid, fieldUpdate) {
53
+ setConfirmExit(Boolean(fieldUpdate));
54
+ setValid(formValid);
55
+ setBusinessUnitData(function (prev) {
56
+ return (__assign(__assign({}, prev), { group: __assign(__assign({}, prev === null || prev === void 0 ? void 0 : prev.group), obj) }));
57
+ });
58
+ }, []);
59
+ var handleSubmit = (0, react_1.useCallback)(function () {
60
+ if (groupId) {
61
+ return service.groupsPut(groupId, businessUnitdata);
62
+ }
63
+ return service.groupsPost(businessUnitdata);
64
+ }, [businessUnitdata, service, groupId]);
65
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ClassicDrawer_1.default, { title: "".concat(t(['UserGroup', groupId ? 'Edit' : 'Create'].join('.'))).concat(groupId ? ": ".concat((_a = businessUnitdata.group) === null || _a === void 0 ? void 0 : _a.name) : '', "\n "), onSubmit: handleSubmit, isLoadingButtonSubmit: false, disableButtonSubmit: !isValid, confirmExit: confirmExit, childrenWrapperStyle: { padding: 0 }, children: loading ? ((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.DataForm, { caption: t('UserGroup.TitleUserGroupInfo'), fields: [
66
+ {
67
+ fieldName: 'name',
68
+ type: 'text',
69
+ label: t('Common.GroupName'),
70
+ required: true,
71
+ },
72
+ {
73
+ fieldName: 'description',
74
+ type: 'text-area',
75
+ label: t('Common.Description'),
76
+ onValidate: function () { return true; },
77
+ },
78
+ ], oldValue: businessUnitdata === null || businessUnitdata === void 0 ? void 0 : businessUnitdata.group, onUpdate: handleUpdate }), (0, jsx_runtime_1.jsx)(UserComponent_1.default, { rows: users.filter(function (user) { var _a; return (_a = businessUnitdata === null || businessUnitdata === void 0 ? void 0 : businessUnitdata.userIds) === null || _a === void 0 ? void 0 : _a.includes(user.userId); }), onChangeAddUser: function (userIds) {
79
+ setBusinessUnitData(function (prev) { return (__assign(__assign({}, prev), { userIds: userIds })); });
80
+ } })] })) }), (0, jsx_runtime_1.jsx)(Router_1.Routes, { children: (0, jsx_runtime_1.jsx)(Router_1.Route, { path: Constants_1.ADD_USER_TO_GROUP, element: (0, jsx_runtime_1.jsx)(SearchUser_1.default, { onChangeAddUser: function (userIds) {
81
+ setBusinessUnitData(function (prev) {
82
+ console.log('prev', prev);
83
+ // return {
84
+ // ...prev,
85
+ // userIds: [...prev.userIds, ...userIds],
86
+ // }
87
+ return prev;
88
+ });
89
+ }, listUserId: (businessUnitdata === null || businessUnitdata === void 0 ? void 0 : businessUnitdata.userIds) || [], users: users }) }, Constants_1.ADD_USER_TO_GROUP) })] }));
90
+ };
91
+ exports.default = CreateOrEdit;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom/extend-expect';