@bigbinary/neeto-team-members-frontend 4.2.5 → 4.3.0

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 (132) hide show
  1. package/README.md +25 -29
  2. package/dist/Groups.js +767 -0
  3. package/dist/Groups.js.map +1 -0
  4. package/dist/ManageMember.js +55 -0
  5. package/dist/ManageMember.js.map +1 -0
  6. package/dist/MembersDropdown.js +220 -0
  7. package/dist/MembersDropdown.js.map +1 -0
  8. package/dist/Permissions-6735df34.js +223 -0
  9. package/dist/Permissions-6735df34.js.map +1 -0
  10. package/dist/Permissions-952ec2fa.js +235 -0
  11. package/dist/Permissions-952ec2fa.js.map +1 -0
  12. package/dist/Permissions.js +16 -0
  13. package/dist/Permissions.js.map +1 -0
  14. package/dist/Profile.js +961 -0
  15. package/dist/Profile.js.map +1 -0
  16. package/dist/Roles.js +2353 -0
  17. package/dist/Roles.js.map +1 -0
  18. package/dist/RolesRadioGroup-3aa7b822.js +297 -0
  19. package/dist/RolesRadioGroup-3aa7b822.js.map +1 -0
  20. package/dist/RolesRadioGroup-94aca05f.js +337 -0
  21. package/dist/RolesRadioGroup-94aca05f.js.map +1 -0
  22. package/dist/RolesRadioGroup.js +22 -0
  23. package/dist/RolesRadioGroup.js.map +1 -0
  24. package/dist/TeamMembers.js +817 -0
  25. package/dist/TeamMembers.js.map +1 -0
  26. package/dist/TeamsAndMembersDropdown.js +414 -0
  27. package/dist/TeamsAndMembersDropdown.js.map +1 -0
  28. package/dist/TeamsDropdown.js +110 -0
  29. package/dist/TeamsDropdown.js.map +1 -0
  30. package/dist/_commonjsHelpers-1789f0cf.js +8 -0
  31. package/dist/_commonjsHelpers-1789f0cf.js.map +1 -0
  32. package/dist/_commonjsHelpers-b3309d7b.js +11 -0
  33. package/dist/_commonjsHelpers-b3309d7b.js.map +1 -0
  34. package/dist/cjs/Groups.js +812 -0
  35. package/dist/cjs/Groups.js.map +1 -0
  36. package/dist/cjs/ManageMember.js +61 -0
  37. package/dist/cjs/ManageMember.js.map +1 -0
  38. package/dist/cjs/MembersDropdown.js +231 -0
  39. package/dist/cjs/MembersDropdown.js.map +1 -0
  40. package/dist/cjs/Permissions.js +22 -0
  41. package/dist/cjs/Permissions.js.map +1 -0
  42. package/dist/cjs/Profile.js +1003 -0
  43. package/dist/cjs/Profile.js.map +1 -0
  44. package/dist/cjs/Roles.js +2382 -0
  45. package/dist/cjs/Roles.js.map +1 -0
  46. package/dist/cjs/RolesRadioGroup.js +28 -0
  47. package/dist/cjs/RolesRadioGroup.js.map +1 -0
  48. package/dist/cjs/TeamMembers.js +837 -0
  49. package/dist/cjs/TeamMembers.js.map +1 -0
  50. package/dist/cjs/TeamsAndMembersDropdown.js +427 -0
  51. package/dist/cjs/TeamsAndMembersDropdown.js.map +1 -0
  52. package/dist/cjs/TeamsDropdown.js +119 -0
  53. package/dist/cjs/TeamsDropdown.js.map +1 -0
  54. package/dist/cjs/constants.js +15 -0
  55. package/dist/cjs/constants.js.map +1 -0
  56. package/dist/cjs/hooks.js +28 -0
  57. package/dist/cjs/hooks.js.map +1 -0
  58. package/dist/cjs/index.js +124 -0
  59. package/dist/cjs/index.js.map +1 -0
  60. package/dist/cjs/utils.js +544 -0
  61. package/dist/cjs/utils.js.map +1 -0
  62. package/dist/constants-2685e5d6.js +57 -0
  63. package/dist/constants-2685e5d6.js.map +1 -0
  64. package/dist/constants-576b89ac.js +45 -0
  65. package/dist/constants-576b89ac.js.map +1 -0
  66. package/dist/constants.js +4 -0
  67. package/dist/constants.js.map +1 -0
  68. package/dist/defineProperty-2cb3c6e2.js +43 -0
  69. package/dist/defineProperty-2cb3c6e2.js.map +1 -0
  70. package/dist/defineProperty-9b13c73c.js +46 -0
  71. package/dist/defineProperty-9b13c73c.js.map +1 -0
  72. package/dist/hooks.js +18 -0
  73. package/dist/hooks.js.map +1 -0
  74. package/dist/index-2757050a.js +1022 -0
  75. package/dist/index-2757050a.js.map +1 -0
  76. package/dist/index-5f1a8667.js +179 -0
  77. package/dist/index-5f1a8667.js.map +1 -0
  78. package/dist/index-7b978a0f.js +149 -0
  79. package/dist/index-7b978a0f.js.map +1 -0
  80. package/dist/index-9d0683d6.js +137 -0
  81. package/dist/index-9d0683d6.js.map +1 -0
  82. package/dist/index-cbfbc296.js +167 -0
  83. package/dist/index-cbfbc296.js.map +1 -0
  84. package/dist/index-f4f1d674.js +981 -0
  85. package/dist/index-f4f1d674.js.map +1 -0
  86. package/dist/index.js +97 -10057
  87. package/dist/index.js.map +1 -1
  88. package/dist/inject-css-80a5faa3.js +6 -0
  89. package/dist/inject-css-80a5faa3.js.map +1 -0
  90. package/dist/inject-css-c86de496.js +4 -0
  91. package/dist/inject-css-c86de496.js.map +1 -0
  92. package/dist/objectWithoutProperties-2fed2d7d.js +33 -0
  93. package/dist/objectWithoutProperties-2fed2d7d.js.map +1 -0
  94. package/dist/objectWithoutProperties-a0edb288.js +31 -0
  95. package/dist/objectWithoutProperties-a0edb288.js.map +1 -0
  96. package/dist/queryClient-71ecdd08.js +14 -0
  97. package/dist/queryClient-71ecdd08.js.map +1 -0
  98. package/dist/queryClient-febad37e.js +16 -0
  99. package/dist/queryClient-febad37e.js.map +1 -0
  100. package/dist/slicedToArray-6674c4b8.js +44 -0
  101. package/dist/slicedToArray-6674c4b8.js.map +1 -0
  102. package/dist/slicedToArray-8e69d42b.js +46 -0
  103. package/dist/slicedToArray-8e69d42b.js.map +1 -0
  104. package/dist/toConsumableArray-0e395868.js +20 -0
  105. package/dist/toConsumableArray-0e395868.js.map +1 -0
  106. package/dist/toConsumableArray-e41a15ba.js +22 -0
  107. package/dist/toConsumableArray-e41a15ba.js.map +1 -0
  108. package/dist/unsupportedIterableToArray-7c7192e5.js +17 -0
  109. package/dist/unsupportedIterableToArray-7c7192e5.js.map +1 -0
  110. package/dist/unsupportedIterableToArray-fa2816fd.js +20 -0
  111. package/dist/unsupportedIterableToArray-fa2816fd.js.map +1 -0
  112. package/dist/useMembersSidenav-68b9f94e.js +17 -0
  113. package/dist/useMembersSidenav-68b9f94e.js.map +1 -0
  114. package/dist/useMembersSidenav-7aaa6f93.js +23 -0
  115. package/dist/useMembersSidenav-7aaa6f93.js.map +1 -0
  116. package/dist/useTeamsApi-6254d23b.js +2208 -0
  117. package/dist/useTeamsApi-6254d23b.js.map +1 -0
  118. package/dist/useTeamsApi-da997902.js +2194 -0
  119. package/dist/useTeamsApi-da997902.js.map +1 -0
  120. package/dist/utils-531cc50b.js +41 -0
  121. package/dist/utils-531cc50b.js.map +1 -0
  122. package/dist/utils-d5dc0b0b.js +45 -0
  123. package/dist/utils-d5dc0b0b.js.map +1 -0
  124. package/dist/utils.js +538 -0
  125. package/dist/utils.js.map +1 -0
  126. package/dist/withReactQuery-efba53ba.js +21 -0
  127. package/dist/withReactQuery-efba53ba.js.map +1 -0
  128. package/dist/withReactQuery-f0b38396.js +19 -0
  129. package/dist/withReactQuery-f0b38396.js.map +1 -0
  130. package/package.json +15 -3
  131. package/dist/index.cjs.js +0 -10154
  132. package/dist/index.cjs.js.map +0 -1
@@ -0,0 +1,812 @@
1
+ 'use strict';
2
+
3
+ var slicedToArray = require('../slicedToArray-8e69d42b.js');
4
+ var require$$0 = require('react');
5
+ var neetoCist = require('@bigbinary/neeto-cist');
6
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
7
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
+ var Container = require('@bigbinary/neeto-molecules/Container');
9
+ var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
10
+ var Button = require('@bigbinary/neetoui/Button');
11
+ var reactI18next = require('react-i18next');
12
+ var toConsumableArray = require('../toConsumableArray-e41a15ba.js');
13
+ var reactQuery = require('@tanstack/react-query');
14
+ var ramda = require('ramda');
15
+ var axios = require('axios');
16
+ var constants = require('../constants-2685e5d6.js');
17
+ var Pane = require('@bigbinary/neetoui/Pane');
18
+ var Typography = require('@bigbinary/neetoui/Typography');
19
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
20
+ var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
21
+ var Form$1 = require('@bigbinary/neetoui/formik/Form');
22
+ var Input = require('@bigbinary/neetoui/formik/Input');
23
+ var Select = require('@bigbinary/neetoui/formik/Select');
24
+ var Textarea = require('@bigbinary/neetoui/formik/Textarea');
25
+ var Spinner = require('@bigbinary/neetoui/Spinner');
26
+ var jsxRuntime = require('react/jsx-runtime');
27
+ var i18next = require('i18next');
28
+ var yup = require('yup');
29
+ var formik = require('formik');
30
+ var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
31
+ var Avatar = require('@bigbinary/neetoui/Avatar');
32
+ var Alert = require('@bigbinary/neetoui/Alert');
33
+ var defineProperty = require('../defineProperty-9b13c73c.js');
34
+ var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
35
+ var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
36
+ var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
37
+ var Table = require('@bigbinary/neetoui/Table');
38
+ var NoData = require('@bigbinary/neetoui/NoData');
39
+ var Tooltip = require('@bigbinary/neetoui/Tooltip');
40
+ var utils$1 = require('./utils.js');
41
+ require('../unsupportedIterableToArray-fa2816fd.js');
42
+ require('@bigbinary/neeto-commons-frontend/constants');
43
+ require('../_commonjsHelpers-b3309d7b.js');
44
+ require('../utils-d5dc0b0b.js');
45
+ require('../useTeamsApi-6254d23b.js');
46
+ require('../objectWithoutProperties-2fed2d7d.js');
47
+ require('util');
48
+ require('../queryClient-febad37e.js');
49
+
50
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
51
+
52
+ function _interopNamespace(e) {
53
+ if (e && e.__esModule) return e;
54
+ var n = Object.create(null);
55
+ if (e) {
56
+ Object.keys(e).forEach(function (k) {
57
+ if (k !== 'default') {
58
+ var d = Object.getOwnPropertyDescriptor(e, k);
59
+ Object.defineProperty(n, k, d.get ? d : {
60
+ enumerable: true,
61
+ get: function () { return e[k]; }
62
+ });
63
+ }
64
+ });
65
+ }
66
+ n["default"] = e;
67
+ return Object.freeze(n);
68
+ }
69
+
70
+ var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
71
+ var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
72
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
73
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
74
+ var Pane__default = /*#__PURE__*/_interopDefaultLegacy(Pane);
75
+ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
76
+ var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
77
+ var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form$1);
78
+ var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
79
+ var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
80
+ var Textarea__default = /*#__PURE__*/_interopDefaultLegacy(Textarea);
81
+ var Spinner__default = /*#__PURE__*/_interopDefaultLegacy(Spinner);
82
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
83
+ var MoreDropdown__default = /*#__PURE__*/_interopDefaultLegacy(MoreDropdown);
84
+ var Avatar__default = /*#__PURE__*/_interopDefaultLegacy(Avatar);
85
+ var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
86
+ var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
87
+ var SubHeader__default = /*#__PURE__*/_interopDefaultLegacy(SubHeader);
88
+ var TableWrapper__default = /*#__PURE__*/_interopDefaultLegacy(TableWrapper);
89
+ var Table__default = /*#__PURE__*/_interopDefaultLegacy(Table);
90
+ var NoData__default = /*#__PURE__*/_interopDefaultLegacy(NoData);
91
+ var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
92
+
93
+ var list$1 = function list(params) {
94
+ return axios__default["default"].get("".concat(constants.BASE_URL, "/api/v1/groups"), {
95
+ params: params
96
+ });
97
+ };
98
+ var show = function show(id) {
99
+ return axios__default["default"].get("".concat(constants.BASE_URL, "/api/v1/groups/").concat(id));
100
+ };
101
+ var create = function create(payload) {
102
+ return axios__default["default"].post("".concat(constants.BASE_URL, "/api/v1/groups"), payload);
103
+ };
104
+ var update = function update(id, payload) {
105
+ return axios__default["default"].patch("".concat(constants.BASE_URL, "/api/v1/groups/").concat(id), payload);
106
+ };
107
+ var destroy = function destroy(id) {
108
+ return axios__default["default"]["delete"]("".concat(constants.BASE_URL, "/api/v1/groups/").concat(id));
109
+ };
110
+ var groupsApi = {
111
+ create: create,
112
+ list: list$1,
113
+ update: update,
114
+ show: show,
115
+ destroy: destroy
116
+ };
117
+
118
+ var useFetchGroups = function useFetchGroups(_ref) {
119
+ var page = _ref.page,
120
+ pageSize = _ref.pageSize,
121
+ _ref$searchTerm = _ref.searchTerm,
122
+ searchTerm = _ref$searchTerm === void 0 ? "" : _ref$searchTerm;
123
+ return reactQuery.useQuery({
124
+ queryKey: [constants.QUERY_KEYS.GROUPS, searchTerm, page, pageSize],
125
+ queryFn: function queryFn() {
126
+ return groupsApi.list({
127
+ searchTerm: searchTerm,
128
+ page: page,
129
+ pageSize: pageSize,
130
+ loadDetails: true
131
+ });
132
+ }
133
+ });
134
+ };
135
+ var useCreateGroup = function useCreateGroup() {
136
+ var _config$form$otherKey, _config$form;
137
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
138
+ return reactUtils.useMutationWithInvalidation(function (payload) {
139
+ return groupsApi.create(payload);
140
+ }, {
141
+ keysToInvalidate: [[constants.QUERY_KEYS.GROUPS]].concat(toConsumableArray._toConsumableArray((_config$form$otherKey = config === null || config === void 0 || (_config$form = config.form) === null || _config$form === void 0 ? void 0 : _config$form.otherKeysToInvalidate) !== null && _config$form$otherKey !== void 0 ? _config$form$otherKey : []))
142
+ });
143
+ };
144
+ var useDeleteGroup = function useDeleteGroup() {
145
+ var _config$form$otherKey2, _config$form2;
146
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
147
+ return reactUtils.useMutationWithInvalidation(function (id) {
148
+ return groupsApi.destroy(id);
149
+ }, {
150
+ keysToInvalidate: [[constants.QUERY_KEYS.GROUPS]].concat(toConsumableArray._toConsumableArray((_config$form$otherKey2 = config === null || config === void 0 || (_config$form2 = config.form) === null || _config$form2 === void 0 ? void 0 : _config$form2.otherKeysToInvalidate) !== null && _config$form$otherKey2 !== void 0 ? _config$form$otherKey2 : []))
151
+ });
152
+ };
153
+ var useFetchGroup = function useFetchGroup(id) {
154
+ return reactQuery.useQuery({
155
+ queryKey: [constants.QUERY_KEYS.GROUPS, id],
156
+ queryFn: function queryFn() {
157
+ return groupsApi.show(id);
158
+ },
159
+ select: ramda.prop("group"),
160
+ enabled: !!id
161
+ });
162
+ };
163
+ var useUpdateGroup = function useUpdateGroup() {
164
+ var _config$form$otherKey3, _config$form3;
165
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
166
+ return reactUtils.useMutationWithInvalidation(function (_ref2) {
167
+ var id = _ref2.id,
168
+ payload = _ref2.payload;
169
+ return groupsApi.update(id, payload);
170
+ }, {
171
+ keysToInvalidate: [[constants.QUERY_KEYS.GROUPS]].concat(toConsumableArray._toConsumableArray((_config$form$otherKey3 = config === null || config === void 0 || (_config$form3 = config.form) === null || _config$form3 === void 0 ? void 0 : _config$form3.otherKeysToInvalidate) !== null && _config$form$otherKey3 !== void 0 ? _config$form$otherKey3 : []))
172
+ });
173
+ };
174
+
175
+ var PaneSpinner = function PaneSpinner() {
176
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
177
+ className: "flex h-full w-full items-center justify-center",
178
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner__default["default"], {})
179
+ });
180
+ };
181
+
182
+ var list = function list() {
183
+ return axios__default["default"].get("".concat(constants.BASE_URL, "/api/v1/users"));
184
+ };
185
+ var usersApi = {
186
+ list: list
187
+ };
188
+
189
+ var useFetchUsers = function useFetchUsers() {
190
+ return reactQuery.useQuery({
191
+ queryKey: [constants.QUERY_KEYS.USERS],
192
+ queryFn: usersApi.list
193
+ });
194
+ };
195
+
196
+ var MAXIMUM_NAME_LENGTH = 25;
197
+ var GROUP_FORM_VALIDATION_SCHEMA = yup__namespace.object({
198
+ name: yup__namespace.string().required(i18next.t("neetoTeamMembers.validations.required", {
199
+ what: i18next.t("neetoTeamMembers.common.name")
200
+ })).trim(i18next.t("neetoTeamMembers.validations.noWhiteSpaces", {
201
+ what: i18next.t("neetoTeamMembers.common.name")
202
+ })).max(MAXIMUM_NAME_LENGTH, i18next.t("neetoTeamMembers.validations.max", {
203
+ size: MAXIMUM_NAME_LENGTH
204
+ }))
205
+ });
206
+ var GROUP_FORM_INITIAL_VALUES = {
207
+ name: "",
208
+ description: "",
209
+ members: []
210
+ };
211
+ var DEFAULT_DELETE_GROUP_DATA = {
212
+ isDeleting: false,
213
+ group: {}
214
+ };
215
+ var DEFAULT_EDIT_GROUP = {
216
+ isVisible: false,
217
+ groupId: ""
218
+ };
219
+ var EVENTS = {
220
+ GROUP_CREATED: "group_created"
221
+ };
222
+
223
+ var Member = function Member(_ref) {
224
+ var member = _ref.member;
225
+ var _useState = require$$0.useState(false),
226
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
227
+ isDeleteAlertOpen = _useState2[0],
228
+ setIsDeleteAlertOpen = _useState2[1];
229
+ var _useTranslation = reactI18next.useTranslation(),
230
+ t = _useTranslation.t;
231
+ var _useFormikContext = formik.useFormikContext(),
232
+ setFieldValue = _useFormikContext.setFieldValue,
233
+ values = _useFormikContext.values;
234
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
235
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
236
+ className: "neeto-ui-neeto-ui-rounded-lg neeto-desk-team-settings__member-list flex items-center justify-between p-2",
237
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
238
+ className: "flex items-center space-x-2",
239
+ children: [/*#__PURE__*/jsxRuntime.jsx(Avatar__default["default"], {
240
+ className: "flex-shrink-0",
241
+ size: "medium",
242
+ user: {
243
+ name: member === null || member === void 0 ? void 0 : member.name
244
+ }
245
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
246
+ className: "ml-2 w-auto",
247
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
248
+ className: "mb-1 capitalize",
249
+ style: "h5",
250
+ weight: "medium",
251
+ children: member === null || member === void 0 ? void 0 : member.name
252
+ }), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
253
+ style: "body3",
254
+ weight: "normal",
255
+ children: initializers.taxonomies.groupMember.singular
256
+ })]
257
+ })]
258
+ }), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown__default["default"], {
259
+ dropdownProps: {
260
+ strategy: "fixed",
261
+ position: "bottom-end"
262
+ },
263
+ menuItems: [{
264
+ key: "delete-menu",
265
+ "data-cy": "member-remove-button",
266
+ "data-test-id": "member-remove-button",
267
+ label: t("neetoTeamMembers.common.remove"),
268
+ onClick: function onClick() {
269
+ return setIsDeleteAlertOpen(true);
270
+ }
271
+ }]
272
+ })]
273
+ }), /*#__PURE__*/jsxRuntime.jsx(Alert__default["default"], {
274
+ isOpen: isDeleteAlertOpen,
275
+ submitButtonLabel: t("neetoTeamMembers.common.remove"),
276
+ message: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
277
+ i18nKey: "neetoTeamMembers.alerts.messages.removeMember",
278
+ values: {
279
+ member: member === null || member === void 0 ? void 0 : member.name
280
+ }
281
+ }),
282
+ title: t("neetoTeamMembers.labels.removeMember", {
283
+ member: member === null || member === void 0 ? void 0 : member.name
284
+ }),
285
+ onClose: function onClose() {
286
+ return setIsDeleteAlertOpen(false);
287
+ },
288
+ onSubmit: function onSubmit() {
289
+ setFieldValue("members", neetoCist.removeBy({
290
+ id: member.id
291
+ }, values.members));
292
+ setIsDeleteAlertOpen(false);
293
+ }
294
+ })]
295
+ });
296
+ };
297
+
298
+ var Members = function Members(_ref) {
299
+ var members = _ref.members,
300
+ membersSelectbox = _ref.membersSelectbox;
301
+ var _useState = require$$0.useState(false),
302
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
303
+ isAddNewMemberDropdownVisible = _useState2[0],
304
+ setIsAddNewMemberDropdownVisible = _useState2[1];
305
+ var _useFormikContext = formik.useFormikContext(),
306
+ values = _useFormikContext.values;
307
+ var selectedMembers = members === null || members === void 0 ? void 0 : members.filter(function (member) {
308
+ var _nullSafe;
309
+ return (_nullSafe = neetoCist.nullSafe(ramda.pluck)("value", values === null || values === void 0 ? void 0 : values.members)) === null || _nullSafe === void 0 ? void 0 : _nullSafe.includes(member.value);
310
+ });
311
+ var _useTranslation = reactI18next.useTranslation(),
312
+ t = _useTranslation.t;
313
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
314
+ className: "w-full space-y-4",
315
+ children: [/*#__PURE__*/jsxRuntime.jsxs(Typography__default["default"], {
316
+ style: "h4",
317
+ weight: "semibold",
318
+ children: [initializers.taxonomies.groupMember.plural, " (", members ? members.length : 0, ")"]
319
+ }), isAddNewMemberDropdownVisible ? membersSelectbox : /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
320
+ "data-cy": "new-member-button",
321
+ "data-test-id": "new-member-button",
322
+ iconPosition: "left",
323
+ style: "secondary",
324
+ label: t("neetoTeamMembers.common.addNew_", {
325
+ what: initializers.taxonomies.groupMember.singular
326
+ }),
327
+ onClick: function onClick() {
328
+ return setIsAddNewMemberDropdownVisible(true);
329
+ }
330
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
331
+ className: "w-full space-y-1",
332
+ children: selectedMembers === null || selectedMembers === void 0 ? void 0 : selectedMembers.map(function (member) {
333
+ return /*#__PURE__*/require$$0.createElement(Member, {
334
+ member: member,
335
+ key: member.id
336
+ });
337
+ })
338
+ })]
339
+ });
340
+ };
341
+
342
+ var Form = function Form(_ref) {
343
+ var _config$form$initialV, _config$form, _config$form2, _config$pane;
344
+ var _ref$group = _ref.group,
345
+ group = _ref$group === void 0 ? {} : _ref$group,
346
+ _ref$config = _ref.config,
347
+ config = _ref$config === void 0 ? {} : _ref$config,
348
+ _ref$isEdit = _ref.isEdit,
349
+ isEdit = _ref$isEdit === void 0 ? false : _ref$isEdit,
350
+ _ref$onClose = _ref.onClose,
351
+ onClose = _ref$onClose === void 0 ? neetoCist.noop : _ref$onClose;
352
+ var _useTranslation = reactI18next.useTranslation(),
353
+ t = _useTranslation.t;
354
+ var _useFetchUsers = useFetchUsers(),
355
+ _useFetchUsers$data = _useFetchUsers.data,
356
+ _useFetchUsers$data2 = _useFetchUsers$data === void 0 ? {} : _useFetchUsers$data,
357
+ users = _useFetchUsers$data2.users,
358
+ isLoading = _useFetchUsers.isLoading;
359
+ var _useCreateGroup = useCreateGroup(config),
360
+ create = _useCreateGroup.mutate,
361
+ isCreating = _useCreateGroup.isPending;
362
+ var _useUpdateGroup = useUpdateGroup(config),
363
+ update = _useUpdateGroup.mutate,
364
+ isUpdating = _useUpdateGroup.isPending;
365
+ var initialValues = isEdit ? group : ramda.mergeLeft(GROUP_FORM_INITIAL_VALUES, (_config$form$initialV = config === null || config === void 0 || (_config$form = config.form) === null || _config$form === void 0 ? void 0 : _config$form.initialValues) !== null && _config$form$initialV !== void 0 ? _config$form$initialV : {});
366
+ var validationSchema = GROUP_FORM_VALIDATION_SCHEMA.concat(config === null || config === void 0 || (_config$form2 = config.form) === null || _config$form2 === void 0 ? void 0 : _config$form2.validationSchema);
367
+ var getUserIds = function getUserIds(members) {
368
+ return members ? ramda.pluck("id", members) : [];
369
+ };
370
+ var handleSubmit = function handleSubmit(values) {
371
+ var _config$form3, _config$form3$otherPa;
372
+ var payload = {
373
+ group: ramda.mergeLeft({
374
+ name: values.name,
375
+ description: values.description,
376
+ userIds: getUserIds(values.members)
377
+ }, config === null || config === void 0 || (_config$form3 = config.form) === null || _config$form3 === void 0 || (_config$form3$otherPa = _config$form3.otherPayloadData) === null || _config$form3$otherPa === void 0 ? void 0 : _config$form3$otherPa.call(_config$form3, values))
378
+ };
379
+ if (isEdit) {
380
+ update({
381
+ id: group.id,
382
+ payload: payload
383
+ }, {
384
+ onSuccess: function onSuccess() {
385
+ return onClose();
386
+ }
387
+ });
388
+ } else {
389
+ create(payload, {
390
+ onSuccess: function onSuccess() {
391
+ utils.captureAnalyticsEvent(EVENTS.GROUP_CREATED);
392
+ onClose();
393
+ }
394
+ });
395
+ }
396
+ };
397
+ if (isLoading || config !== null && config !== void 0 && (_config$pane = config.pane) !== null && _config$pane !== void 0 && _config$pane.isLoading) return /*#__PURE__*/jsxRuntime.jsx(PaneSpinner, {});
398
+ return /*#__PURE__*/jsxRuntime.jsx(Form__default["default"], {
399
+ formProps: {
400
+ noValidate: true,
401
+ className: "flex w-full flex-col gap-y-4 pb-6"
402
+ },
403
+ formikProps: {
404
+ enableReinitialize: true,
405
+ initialValues: initialValues,
406
+ validationSchema: validationSchema,
407
+ onSubmit: handleSubmit
408
+ },
409
+ children: function children(_ref2) {
410
+ var _config$form4, _config$form4$otherEl, _config$form5, _config$form5$otherEl;
411
+ var values = _ref2.values;
412
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
413
+ children: [/*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
414
+ required: true,
415
+ "data-cy": "group-name-text-field",
416
+ label: t("neetoTeamMembers.common.name"),
417
+ name: "name"
418
+ }), /*#__PURE__*/jsxRuntime.jsx(Textarea__default["default"], {
419
+ "data-cy": "group-description-text-area",
420
+ label: t("neetoTeamMembers.common.description"),
421
+ name: "description",
422
+ rows: 4,
423
+ size: "medium"
424
+ }), config === null || config === void 0 || (_config$form4 = config.form) === null || _config$form4 === void 0 || (_config$form4$otherEl = _config$form4.otherElements) === null || _config$form4$otherEl === void 0 ? void 0 : _config$form4$otherEl.call(_config$form4, values), isEdit ? /*#__PURE__*/jsxRuntime.jsx(Members, {
425
+ members: values.members,
426
+ membersSelectbox: /*#__PURE__*/jsxRuntime.jsx(Select__default["default"], {
427
+ isMulti: true,
428
+ closeMenuOnSelect: false,
429
+ getOptionLabel: ramda.prop("name"),
430
+ getOptionValue: ramda.prop("id"),
431
+ id: "members-autocomplete",
432
+ label: initializers.taxonomies.groupMember.plural,
433
+ name: "members",
434
+ options: users,
435
+ placeholder: initializers.taxonomies.groupMember.plural
436
+ })
437
+ }) : /*#__PURE__*/jsxRuntime.jsx(Select__default["default"], {
438
+ isMulti: true,
439
+ closeMenuOnSelect: false,
440
+ getOptionLabel: ramda.prop("name"),
441
+ getOptionValue: ramda.prop("id"),
442
+ id: "members-autocomplete",
443
+ label: initializers.taxonomies.groupMember.plural,
444
+ name: "members",
445
+ options: users,
446
+ placeholder: initializers.taxonomies.groupMember.plural
447
+ }), config === null || config === void 0 || (_config$form5 = config.form) === null || _config$form5 === void 0 || (_config$form5$otherEl = _config$form5.otherElementsAtLast) === null || _config$form5$otherEl === void 0 ? void 0 : _config$form5$otherEl.call(_config$form5, values), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Footer, {
448
+ className: "absolute bottom-0 left-0",
449
+ children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock__default["default"], {
450
+ cancelButtonProps: {
451
+ onClick: onClose
452
+ },
453
+ isSubmitting: isCreating || isUpdating
454
+ })
455
+ })]
456
+ });
457
+ }
458
+ });
459
+ };
460
+
461
+ var Create = reactUtils.withT(function (_ref) {
462
+ var t = _ref.t,
463
+ config = _ref.config,
464
+ isOpen = _ref.isOpen,
465
+ onClose = _ref.onClose;
466
+ return /*#__PURE__*/jsxRuntime.jsxs(Pane__default["default"], {
467
+ isOpen: isOpen,
468
+ onClose: onClose,
469
+ children: [/*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Header, {
470
+ children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
471
+ style: "h2",
472
+ weight: "semibold",
473
+ children: t("neetoTeamMembers.common.addNew_", {
474
+ what: initializers.taxonomies.group.singular
475
+ })
476
+ })
477
+ }), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Body, {
478
+ children: /*#__PURE__*/jsxRuntime.jsx(Form, {
479
+ config: config,
480
+ onClose: onClose
481
+ })
482
+ })]
483
+ });
484
+ });
485
+
486
+ var renderName = function renderName(_ref) {
487
+ var name = _ref.name,
488
+ group = _ref.group,
489
+ config = _ref.config,
490
+ setEditGroupDetail = _ref.setEditGroupDetail,
491
+ setDeleteGroup = _ref.setDeleteGroup,
492
+ getGroupDetail = _ref.getGroupDetail;
493
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
494
+ className: "flex items-center justify-between gap-x-3",
495
+ children: [/*#__PURE__*/jsxRuntime.jsx(Tooltip__default["default"], {
496
+ content: name,
497
+ position: "bottom",
498
+ children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
499
+ className: "truncate",
500
+ style: "body2",
501
+ children: name
502
+ })
503
+ }), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown__default["default"], {
504
+ dropdownProps: {
505
+ strategy: "fixed",
506
+ position: "bottom-end"
507
+ },
508
+ menuItems: [{
509
+ key: "edit-menu",
510
+ label: i18next.t("neetoTeamMembers.common.edit"),
511
+ onClick: function onClick() {
512
+ return setEditGroupDetail({
513
+ isVisible: true,
514
+ groupId: group.id
515
+ });
516
+ }
517
+ }, {
518
+ key: "delete-menu",
519
+ label: i18next.t("neetoTeamMembers.common.delete"),
520
+ onClick: function onClick() {
521
+ var _config$groupDependen, _config$table, _config$table$onBefor;
522
+ config !== null && config !== void 0 && (_config$groupDependen = config.groupDependency) !== null && _config$groupDependen !== void 0 && _config$groupDependen.isCheckEnabled ? config === null || config === void 0 || (_config$table = config.table) === null || _config$table === void 0 || (_config$table$onBefor = _config$table.onBeforeDelete) === null || _config$table$onBefor === void 0 ? void 0 : _config$table$onBefor.call(_config$table, group) : setDeleteGroup({
523
+ isDeleting: true,
524
+ group: getGroupDetail(group.id)
525
+ });
526
+ }
527
+ }]
528
+ })]
529
+ });
530
+ };
531
+ var getColumnData = function getColumnData(_ref2) {
532
+ var _config$table$columns, _config$table2, _config$table2$column;
533
+ var _ref2$config = _ref2.config,
534
+ config = _ref2$config === void 0 ? {} : _ref2$config,
535
+ setEditGroupDetail = _ref2.setEditGroupDetail,
536
+ setDeleteGroup = _ref2.setDeleteGroup,
537
+ getGroupDetail = _ref2.getGroupDetail;
538
+ return [{
539
+ dataIndex: "name",
540
+ key: "name",
541
+ title: i18next.t("neetoTeamMembers.common.name"),
542
+ ellipsis: true,
543
+ width: 150,
544
+ render: function render(name, group) {
545
+ return renderName({
546
+ name: name,
547
+ group: group,
548
+ config: config,
549
+ setEditGroupDetail: setEditGroupDetail,
550
+ setDeleteGroup: setDeleteGroup,
551
+ getGroupDetail: getGroupDetail
552
+ });
553
+ }
554
+ }, {
555
+ dataIndex: "description",
556
+ key: "description",
557
+ title: i18next.t("neetoTeamMembers.common.description"),
558
+ render: function render(description) {
559
+ return description || "-";
560
+ },
561
+ width: 200
562
+ }].concat(toConsumableArray._toConsumableArray((_config$table$columns = config === null || config === void 0 || (_config$table2 = config.table) === null || _config$table2 === void 0 || (_config$table2$column = _config$table2.columnsData) === null || _config$table2$column === void 0 ? void 0 : _config$table2$column.call(_config$table2)) !== null && _config$table$columns !== void 0 ? _config$table$columns : []));
563
+ };
564
+
565
+ var Edit = function Edit(_ref) {
566
+ var config = _ref.config,
567
+ groupId = _ref.groupId,
568
+ isOpen = _ref.isOpen,
569
+ onClose = _ref.onClose;
570
+ var _useTranslation = reactI18next.useTranslation(),
571
+ t = _useTranslation.t;
572
+ var _useFetchGroup = useFetchGroup(groupId),
573
+ group = _useFetchGroup.data,
574
+ isLoading = _useFetchGroup.isLoading;
575
+ if (isLoading) {
576
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
577
+ className: "h-screen w-full",
578
+ children: /*#__PURE__*/jsxRuntime.jsx(PageLoader__default["default"], {})
579
+ });
580
+ }
581
+ return /*#__PURE__*/jsxRuntime.jsxs(Pane__default["default"], {
582
+ isOpen: isOpen,
583
+ onClose: onClose,
584
+ children: [/*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Header, {
585
+ children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
586
+ style: "h2",
587
+ weight: "semibold",
588
+ children: t("neetoTeamMembers.common.edit_", {
589
+ what: initializers.taxonomies.group.singular
590
+ })
591
+ })
592
+ }), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Body, {
593
+ children: /*#__PURE__*/jsxRuntime.jsx(Form, {
594
+ config: config,
595
+ group: group,
596
+ onClose: onClose,
597
+ isEdit: true
598
+ })
599
+ })]
600
+ });
601
+ };
602
+
603
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
604
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
605
+ var List = function List(_ref) {
606
+ var _config$table$deleteA, _config$table, _config$table$deleteA2;
607
+ var config = _ref.config,
608
+ groups = _ref.groups,
609
+ isLoading = _ref.isLoading,
610
+ searchTerm = _ref.searchTerm,
611
+ pageProperties = _ref.pageProperties,
612
+ setPageProperties = _ref.setPageProperties,
613
+ emptyStateAction = _ref.emptyStateAction;
614
+ var _useState = require$$0.useState(DEFAULT_EDIT_GROUP),
615
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
616
+ editGroupDetail = _useState2[0],
617
+ setEditGroupDetail = _useState2[1];
618
+ var _useState3 = require$$0.useState(DEFAULT_DELETE_GROUP_DATA),
619
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
620
+ deleteGroup = _useState4[0],
621
+ setDeleteGroup = _useState4[1];
622
+ var _useTranslation = reactI18next.useTranslation(),
623
+ t = _useTranslation.t;
624
+ var totalCount = groups === null || groups === void 0 ? void 0 : groups.length;
625
+ var _useDeleteGroup = useDeleteGroup(config),
626
+ groupDelete = _useDeleteGroup.mutate,
627
+ isDeleting = _useDeleteGroup.isPending;
628
+ var getGroupDetail = function getGroupDetail(id) {
629
+ return neetoCist.findById(id, groups);
630
+ };
631
+ var handleGroupDelete = function handleGroupDelete(group) {
632
+ groupDelete(group.id, {
633
+ onSuccess: function onSuccess() {
634
+ setDeleteGroup(DEFAULT_DELETE_GROUP_DATA);
635
+ }
636
+ });
637
+ };
638
+ var columnData = getColumnData({
639
+ config: config,
640
+ setEditGroupDetail: setEditGroupDetail,
641
+ setDeleteGroup: setDeleteGroup,
642
+ getGroupDetail: getGroupDetail
643
+ });
644
+ require$$0.useEffect(function () {
645
+ var _config$groupDependen, _config$groupDependen2, _config$groupDependen3, _config$groupDependen4;
646
+ if (config !== null && config !== void 0 && (_config$groupDependen = config.groupDependency) !== null && _config$groupDependen !== void 0 && _config$groupDependen.isCheckEnabled && ((_config$groupDependen2 = config.groupDependency) === null || _config$groupDependen2 === void 0 ? void 0 : _config$groupDependen2.verificationStatus) === "successful" && !(config !== null && config !== void 0 && (_config$groupDependen3 = config.groupDependency) !== null && _config$groupDependen3 !== void 0 && _config$groupDependen3.isDependent) && neetoCist.isPresent(config === null || config === void 0 || (_config$groupDependen4 = config.groupDependency) === null || _config$groupDependen4 === void 0 ? void 0 : _config$groupDependen4.selectedGroup)) {
647
+ var _config$groupDependen5;
648
+ setDeleteGroup({
649
+ isDeleting: true,
650
+ group: config === null || config === void 0 || (_config$groupDependen5 = config.groupDependency) === null || _config$groupDependen5 === void 0 ? void 0 : _config$groupDependen5.selectedGroup
651
+ });
652
+ }
653
+ }, [config === null || config === void 0 ? void 0 : config.groupDependency]);
654
+ if (isLoading || isDeleting) {
655
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
656
+ className: "h-screen w-full",
657
+ children: /*#__PURE__*/jsxRuntime.jsx(PageLoader__default["default"], {})
658
+ });
659
+ }
660
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
661
+ children: [!ramda.isEmpty(groups) ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
662
+ children: [/*#__PURE__*/jsxRuntime.jsx(SubHeader__default["default"], {
663
+ leftActionBlock: totalCount > 0 && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
664
+ className: "mr-4 font-semibold",
665
+ component: "h4",
666
+ "data-cy": "item-count",
667
+ children: utils$1.pluralizeLabelUsingTaxonomy(initializers.taxonomies.group.singular, totalCount)
668
+ })
669
+ }), /*#__PURE__*/jsxRuntime.jsx(TableWrapper__default["default"], {
670
+ hasPagination: totalCount > pageProperties.size,
671
+ children: /*#__PURE__*/jsxRuntime.jsx(Table__default["default"], {
672
+ columnData: columnData,
673
+ totalCount: totalCount,
674
+ fixedHeight: true,
675
+ allowRowClick: false,
676
+ currentPageNumber: pageProperties.index,
677
+ defaultPageSize: pageProperties.size,
678
+ loading: isLoading,
679
+ rowData: groups,
680
+ rowSelection: false,
681
+ scroll: {
682
+ x: "100%"
683
+ },
684
+ handlePageChange: function handlePageChange(index, size) {
685
+ return setPageProperties({
686
+ index: index,
687
+ size: size
688
+ });
689
+ }
690
+ })
691
+ })]
692
+ }) : /*#__PURE__*/jsxRuntime.jsx("div", {
693
+ className: "flex h-full w-full flex-grow items-center justify-center",
694
+ children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread(_objectSpread({
695
+ title: t("neetoTeamMembers.helpers.emptyTable", {
696
+ entity: initializers.taxonomies.group.plural
697
+ })
698
+ }, !searchTerm && {
699
+ primaryButtonProps: {
700
+ label: t("neetoTeamMembers.common.addNew_", {
701
+ what: initializers.taxonomies.group.singular
702
+ }),
703
+ onClick: emptyStateAction
704
+ }
705
+ }), config === null || config === void 0 ? void 0 : config.noDataProps))
706
+ }), /*#__PURE__*/jsxRuntime.jsx(Edit, {
707
+ config: config,
708
+ groupId: editGroupDetail.groupId,
709
+ isOpen: editGroupDetail.isVisible,
710
+ onClose: function onClose() {
711
+ return setEditGroupDetail(DEFAULT_EDIT_GROUP);
712
+ }
713
+ }), /*#__PURE__*/jsxRuntime.jsx(Alert__default["default"], {
714
+ isOpen: deleteGroup.isDeleting,
715
+ submitButtonLabel: t("neetoTeamMembers.common.delete"),
716
+ message: (_config$table$deleteA = config === null || config === void 0 || (_config$table = config.table) === null || _config$table === void 0 || (_config$table$deleteA2 = _config$table.deleteAlertMessage) === null || _config$table$deleteA2 === void 0 ? void 0 : _config$table$deleteA2.call(_config$table, deleteGroup.group)) !== null && _config$table$deleteA !== void 0 ? _config$table$deleteA : /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
717
+ i18nKey: "neetoTeamMembers.alerts.messages.delete",
718
+ values: {
719
+ resource: initializers.taxonomies.group.singular,
720
+ name: deleteGroup.group.name
721
+ }
722
+ }),
723
+ title: t("neetoTeamMembers.labels.deleteTitle", {
724
+ resource: initializers.taxonomies.group.singular
725
+ }),
726
+ onClose: function onClose() {
727
+ return setDeleteGroup(DEFAULT_DELETE_GROUP_DATA);
728
+ },
729
+ onSubmit: function onSubmit() {
730
+ return handleGroupDelete(deleteGroup.group);
731
+ }
732
+ })]
733
+ });
734
+ };
735
+
736
+ var Groups = function Groups(_ref) {
737
+ var _config$header$breadc, _config$header;
738
+ var _ref$config = _ref.config,
739
+ config = _ref$config === void 0 ? {} : _ref$config;
740
+ var _useQueryParams = reactUtils.useQueryParams(),
741
+ _useQueryParams$searc = _useQueryParams.searchTerm,
742
+ searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
743
+ var _useState = require$$0.useState(false),
744
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
745
+ isPaneOpen = _useState2[0],
746
+ setIsPaneOpen = _useState2[1];
747
+ var _useState3 = require$$0.useState(constants.DEFAULT_PAGE_PROPERTIES),
748
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
749
+ pageProperties = _useState4[0],
750
+ setPageProperties = _useState4[1];
751
+ var _useTranslation = reactI18next.useTranslation(),
752
+ t = _useTranslation.t;
753
+ var _useFetchGroups = useFetchGroups({
754
+ page: pageProperties.index,
755
+ pageSize: pageProperties.size,
756
+ searchTerm: searchTerm
757
+ }),
758
+ _useFetchGroups$data = _useFetchGroups.data,
759
+ _useFetchGroups$data2 = _useFetchGroups$data === void 0 ? {} : _useFetchGroups$data,
760
+ groups = _useFetchGroups$data2.groups,
761
+ isLoading = _useFetchGroups.isLoading;
762
+ var isFiltersVisible = neetoCist.isNotEmpty(groups) || neetoCist.isPresent(searchTerm);
763
+ require$$0.useEffect(function () {
764
+ setPageProperties(constants.DEFAULT_PAGE_PROPERTIES);
765
+ }, [searchTerm]);
766
+ return /*#__PURE__*/jsxRuntime.jsxs(Container__default["default"], {
767
+ children: [/*#__PURE__*/jsxRuntime.jsx(NeetoHeader__default["default"], {
768
+ breadcrumbs: (_config$header$breadc = config === null || config === void 0 || (_config$header = config.header) === null || _config$header === void 0 ? void 0 : _config$header.breadcrumbs) !== null && _config$header$breadc !== void 0 ? _config$header$breadc : [],
769
+ title: initializers.taxonomies.group.plural,
770
+ actionBlock: /*#__PURE__*/jsxRuntime.jsx("div", {
771
+ className: "flex flex-row items-center justify-end",
772
+ children: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
773
+ "data-cy": "add-new-group-button",
774
+ style: "primary",
775
+ label: t("neetoTeamMembers.common.addNew_", {
776
+ what: initializers.taxonomies.group.singular
777
+ }),
778
+ onClick: function onClick() {
779
+ return setIsPaneOpen(true);
780
+ }
781
+ })
782
+ }),
783
+ searchProps: isFiltersVisible && {
784
+ placeholder: t("neetoTeamMembers.placeholders.searchEntity", {
785
+ entity: initializers.taxonomies.group.plural
786
+ })
787
+ }
788
+ }), /*#__PURE__*/jsxRuntime.jsx(List, {
789
+ config: config,
790
+ groups: groups,
791
+ isLoading: isLoading,
792
+ pageProperties: pageProperties,
793
+ searchTerm: searchTerm,
794
+ setPageProperties: setPageProperties,
795
+ emptyStateAction: function emptyStateAction() {
796
+ return setIsPaneOpen(true);
797
+ },
798
+ onClose: function onClose() {
799
+ return setIsPaneOpen(false);
800
+ }
801
+ }), /*#__PURE__*/jsxRuntime.jsx(Create, {
802
+ config: config,
803
+ isOpen: isPaneOpen,
804
+ onClose: function onClose() {
805
+ return setIsPaneOpen(false);
806
+ }
807
+ })]
808
+ });
809
+ };
810
+
811
+ module.exports = Groups;
812
+ //# sourceMappingURL=Groups.js.map