@bigbinary/neeto-team-members-frontend 5.0.28 → 5.0.30

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 (194) hide show
  1. package/app/javascript/src/translations/ar.json +6 -4
  2. package/app/javascript/src/translations/bg.json +6 -4
  3. package/app/javascript/src/translations/ca.json +8 -6
  4. package/app/javascript/src/translations/cs.json +4 -2
  5. package/app/javascript/src/translations/da.json +4 -2
  6. package/app/javascript/src/translations/de.json +4 -2
  7. package/app/javascript/src/translations/en.json +8 -6
  8. package/app/javascript/src/translations/es-MX.json +8 -6
  9. package/app/javascript/src/translations/es.json +8 -6
  10. package/app/javascript/src/translations/et.json +6 -4
  11. package/app/javascript/src/translations/fi.json +4 -2
  12. package/app/javascript/src/translations/fil.json +9 -7
  13. package/app/javascript/src/translations/fr.json +5 -3
  14. package/app/javascript/src/translations/he.json +5 -3
  15. package/app/javascript/src/translations/hi.json +7 -5
  16. package/app/javascript/src/translations/hr.json +4 -2
  17. package/app/javascript/src/translations/hu.json +4 -2
  18. package/app/javascript/src/translations/id.json +10 -8
  19. package/app/javascript/src/translations/it.json +8 -6
  20. package/app/javascript/src/translations/ja.json +6 -4
  21. package/app/javascript/src/translations/ko.json +4 -2
  22. package/app/javascript/src/translations/nl.json +7 -5
  23. package/app/javascript/src/translations/pl.json +5 -3
  24. package/app/javascript/src/translations/pt-BR.json +10 -8
  25. package/app/javascript/src/translations/pt.json +10 -8
  26. package/app/javascript/src/translations/ro.json +9 -7
  27. package/app/javascript/src/translations/ru.json +5 -3
  28. package/app/javascript/src/translations/sk.json +6 -4
  29. package/app/javascript/src/translations/sl.json +7 -5
  30. package/app/javascript/src/translations/sv.json +4 -2
  31. package/app/javascript/src/translations/th.json +5 -3
  32. package/app/javascript/src/translations/tr.json +10 -8
  33. package/app/javascript/src/translations/uk.json +7 -5
  34. package/app/javascript/src/translations/vi.json +7 -5
  35. package/app/javascript/src/translations/zh-CN.json +6 -4
  36. package/app/javascript/src/translations/zh-TW.json +5 -3
  37. package/dist/.ready +1 -1
  38. package/dist/ActionBlock-C9Iy0jGZ.js +53 -0
  39. package/dist/ActionBlock-C9Iy0jGZ.js.map +1 -0
  40. package/dist/ActionBlock-jgw1N-As.js +46 -0
  41. package/dist/ActionBlock-jgw1N-As.js.map +1 -0
  42. package/dist/Groups.js +1 -0
  43. package/dist/Groups.js.map +1 -1
  44. package/dist/InviteLinkError-AphtWLhe.js +63 -0
  45. package/dist/InviteLinkError-AphtWLhe.js.map +1 -0
  46. package/dist/InviteLinkError-C6OLGrD0.js +41 -0
  47. package/dist/InviteLinkError-C6OLGrD0.js.map +1 -0
  48. package/dist/ManageMember.js +3 -2
  49. package/dist/ManageMember.js.map +1 -1
  50. package/dist/MembersInvite.js +1 -38
  51. package/dist/MembersInvite.js.map +1 -1
  52. package/dist/Permissions-Bd6kLoPt.js +233 -0
  53. package/dist/Permissions-Bd6kLoPt.js.map +1 -0
  54. package/dist/Permissions-Bn862irP.js +244 -0
  55. package/dist/Permissions-Bn862irP.js.map +1 -0
  56. package/dist/Profile.js +125 -106
  57. package/dist/Profile.js.map +1 -1
  58. package/dist/{ProfileImage-Cpprgo-V.js → ProfileImage-QeSzsfzl.js} +1 -7
  59. package/dist/{ProfileImage-B_gfcE6b.js.map → ProfileImage-QeSzsfzl.js.map} +1 -1
  60. package/dist/{ProfileImage-B_gfcE6b.js → ProfileImage-Ypf3HreX.js} +2 -7
  61. package/dist/{ProfileImage-Cpprgo-V.js.map → ProfileImage-Ypf3HreX.js.map} +1 -1
  62. package/dist/Roles.js +3 -1398
  63. package/dist/Roles.js.map +1 -1
  64. package/dist/RolesRadioGroup-fBmS68cW.js +393 -0
  65. package/dist/RolesRadioGroup-fBmS68cW.js.map +1 -0
  66. package/dist/RolesRadioGroup-tSNC-Wtu.js +352 -0
  67. package/dist/RolesRadioGroup-tSNC-Wtu.js.map +1 -0
  68. package/dist/Select-CshPoN2b.js +119 -0
  69. package/dist/Select-CshPoN2b.js.map +1 -0
  70. package/dist/Select-DZ56UG-l.js +109 -0
  71. package/dist/Select-DZ56UG-l.js.map +1 -0
  72. package/dist/TeamMembers.js +3 -2
  73. package/dist/TeamMembers.js.map +1 -1
  74. package/dist/cjs/Groups.js +1 -0
  75. package/dist/cjs/Groups.js.map +1 -1
  76. package/dist/cjs/ManageMember.js +3 -2
  77. package/dist/cjs/ManageMember.js.map +1 -1
  78. package/dist/cjs/MembersInvite.js +2 -39
  79. package/dist/cjs/MembersInvite.js.map +1 -1
  80. package/dist/cjs/Profile.js +125 -104
  81. package/dist/cjs/Profile.js.map +1 -1
  82. package/dist/cjs/Roles.js +6 -1402
  83. package/dist/cjs/Roles.js.map +1 -1
  84. package/dist/cjs/TeamMembers.js +3 -2
  85. package/dist/cjs/TeamMembers.js.map +1 -1
  86. package/dist/cjs/index.js +6 -2
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/utils.js +3 -512
  89. package/dist/cjs/utils.js.map +1 -1
  90. package/dist/cjs/v2/Groups.js +781 -0
  91. package/dist/cjs/v2/Groups.js.map +1 -0
  92. package/dist/cjs/v2/ManageMember.js +49 -0
  93. package/dist/cjs/v2/ManageMember.js.map +1 -0
  94. package/dist/cjs/v2/MembersDropdown.js +200 -0
  95. package/dist/cjs/v2/MembersDropdown.js.map +1 -0
  96. package/dist/cjs/v2/MembersInvite.js +270 -0
  97. package/dist/cjs/v2/MembersInvite.js.map +1 -0
  98. package/dist/cjs/v2/Permissions.js +19 -0
  99. package/dist/cjs/v2/Permissions.js.map +1 -0
  100. package/dist/cjs/v2/Profile.js +686 -0
  101. package/dist/cjs/v2/Profile.js.map +1 -0
  102. package/dist/cjs/v2/Roles.js +1258 -0
  103. package/dist/cjs/v2/Roles.js.map +1 -0
  104. package/dist/cjs/v2/RolesRadioGroup.js +26 -0
  105. package/dist/cjs/v2/RolesRadioGroup.js.map +1 -0
  106. package/dist/cjs/v2/TeamMembers.js +949 -0
  107. package/dist/cjs/v2/TeamMembers.js.map +1 -0
  108. package/dist/cjs/v2/TeamsAndMembersDropdown.js +438 -0
  109. package/dist/cjs/v2/TeamsAndMembersDropdown.js.map +1 -0
  110. package/dist/cjs/v2/TeamsDropdown.js +112 -0
  111. package/dist/cjs/v2/TeamsDropdown.js.map +1 -0
  112. package/dist/cjs/v2/constants.js +28 -0
  113. package/dist/cjs/v2/constants.js.map +1 -0
  114. package/dist/cjs/v2/hooks.js +33 -0
  115. package/dist/cjs/v2/hooks.js.map +1 -0
  116. package/dist/cjs/v2/utils.js +34 -0
  117. package/dist/cjs/v2/utils.js.map +1 -0
  118. package/dist/constants-B1L6arSR.js +49 -0
  119. package/dist/constants-B1L6arSR.js.map +1 -0
  120. package/dist/constants-CMNbKvoF.js +61 -0
  121. package/dist/constants-CMNbKvoF.js.map +1 -0
  122. package/dist/index-BkEJugj1.js +184 -0
  123. package/dist/index-BkEJugj1.js.map +1 -0
  124. package/dist/index-C6ph58Vg.js +169 -0
  125. package/dist/index-C6ph58Vg.js.map +1 -0
  126. package/dist/{index-C26Vdbk5.js → index-DFFRcH_S.js} +2 -2
  127. package/dist/{index-C26Vdbk5.js.map → index-DFFRcH_S.js.map} +1 -1
  128. package/dist/{index-CeAVMlhg.js → index-DTONHIze.js} +2 -2
  129. package/dist/{index-CeAVMlhg.js.map → index-DTONHIze.js.map} +1 -1
  130. package/dist/index-DeYRFiJy.js +119 -0
  131. package/dist/index-DeYRFiJy.js.map +1 -0
  132. package/dist/index-DgxgaCRt.js +1317 -0
  133. package/dist/index-DgxgaCRt.js.map +1 -0
  134. package/dist/index-DqqXniGT.js +126 -0
  135. package/dist/index-DqqXniGT.js.map +1 -0
  136. package/dist/index-Dus0cbgo.js +1407 -0
  137. package/dist/index-Dus0cbgo.js.map +1 -0
  138. package/dist/index-aJIUa1Bd.js +1342 -0
  139. package/dist/index-aJIUa1Bd.js.map +1 -0
  140. package/dist/index-ureO6U2w.js +1401 -0
  141. package/dist/index-ureO6U2w.js.map +1 -0
  142. package/dist/index.js +6 -2
  143. package/dist/index.js.map +1 -1
  144. package/dist/pluralize-BoSEafiC.js +514 -0
  145. package/dist/pluralize-BoSEafiC.js.map +1 -0
  146. package/dist/pluralize-CFlSRsRn.js +516 -0
  147. package/dist/pluralize-CFlSRsRn.js.map +1 -0
  148. package/dist/queryClient-B-JFya8X.js +16 -0
  149. package/dist/queryClient-B-JFya8X.js.map +1 -0
  150. package/dist/queryClient-BncpekSV.js +14 -0
  151. package/dist/queryClient-BncpekSV.js.map +1 -0
  152. package/dist/useCountries-CQdvJz0R.js +249 -0
  153. package/dist/useCountries-CQdvJz0R.js.map +1 -0
  154. package/dist/useCountries-DePOPtue.js +235 -0
  155. package/dist/useCountries-DePOPtue.js.map +1 -0
  156. package/dist/useTeamsApi-CWp4G7JZ.js +179 -0
  157. package/dist/useTeamsApi-CWp4G7JZ.js.map +1 -0
  158. package/dist/useTeamsApi-Ch5sHR2_.js +197 -0
  159. package/dist/useTeamsApi-Ch5sHR2_.js.map +1 -0
  160. package/dist/utils.js +2 -511
  161. package/dist/utils.js.map +1 -1
  162. package/dist/v2/Groups.js +749 -0
  163. package/dist/v2/Groups.js.map +1 -0
  164. package/dist/v2/ManageMember.js +43 -0
  165. package/dist/v2/ManageMember.js.map +1 -0
  166. package/dist/v2/MembersDropdown.js +193 -0
  167. package/dist/v2/MembersDropdown.js.map +1 -0
  168. package/dist/v2/MembersInvite.js +242 -0
  169. package/dist/v2/MembersInvite.js.map +1 -0
  170. package/dist/v2/Permissions.js +13 -0
  171. package/dist/v2/Permissions.js.map +1 -0
  172. package/dist/v2/Profile.js +656 -0
  173. package/dist/v2/Profile.js.map +1 -0
  174. package/dist/v2/Roles.js +1242 -0
  175. package/dist/v2/Roles.js.map +1 -0
  176. package/dist/v2/RolesRadioGroup.js +20 -0
  177. package/dist/v2/RolesRadioGroup.js.map +1 -0
  178. package/dist/v2/TeamMembers.js +937 -0
  179. package/dist/v2/TeamMembers.js.map +1 -0
  180. package/dist/v2/TeamsAndMembersDropdown.js +430 -0
  181. package/dist/v2/TeamsAndMembersDropdown.js.map +1 -0
  182. package/dist/v2/TeamsDropdown.js +106 -0
  183. package/dist/v2/TeamsDropdown.js.map +1 -0
  184. package/dist/v2/constants.js +21 -0
  185. package/dist/v2/constants.js.map +1 -0
  186. package/dist/v2/hooks.js +29 -0
  187. package/dist/v2/hooks.js.map +1 -0
  188. package/dist/v2/utils.js +30 -0
  189. package/dist/v2/utils.js.map +1 -0
  190. package/dist/withReactQuery-CSuiy5RK.js +20 -0
  191. package/dist/withReactQuery-CSuiy5RK.js.map +1 -0
  192. package/dist/withReactQuery-DvSkXhEx.js +26 -0
  193. package/dist/withReactQuery-DvSkXhEx.js.map +1 -0
  194. package/package.json +31 -17
@@ -0,0 +1,781 @@
1
+ 'use strict';
2
+
3
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
+ var React = require('react');
5
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
6
+ var neetoCist = require('@bigbinary/neeto-cist');
7
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
8
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
9
+ var Container = require('@bigbinary/neeto-molecules/v2/Container');
10
+ var NeetoHeader = require('@bigbinary/neeto-molecules/v2/Header');
11
+ var reactI18next = require('react-i18next');
12
+ var constants = require('../../constants-CMNbKvoF.js');
13
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
14
+ var reactQuery = require('@tanstack/react-query');
15
+ var ramda = require('ramda');
16
+ var axios = require('axios');
17
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
18
+ var formik$1 = require('@bigbinary/neeto-atoms/formik');
19
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
20
+ var ActionBlock = require('../../ActionBlock-C9Iy0jGZ.js');
21
+ var Select = require('../../Select-CshPoN2b.js');
22
+ require('@babel/runtime/helpers/objectWithoutProperties');
23
+ var formik = require('formik');
24
+ var jsxRuntime = require('react/jsx-runtime');
25
+ var i18next = require('i18next');
26
+ var yup = require('yup');
27
+ var MoreDropdown = require('@bigbinary/neeto-molecules/v2/MoreDropdown');
28
+ var SubHeader = require('@bigbinary/neeto-molecules/v2/SubHeader');
29
+ var v2_utils = require('./utils.js');
30
+ require('@bigbinary/neeto-commons-frontend/constants');
31
+ require('../../pluralize-CFlSRsRn.js');
32
+ require('../../_commonjsHelpers-BJu3ubxk.js');
33
+ require('../../useTeamsApi-Ch5sHR2_.js');
34
+ require('qs');
35
+ require('../../queryClient-B-JFya8X.js');
36
+
37
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
38
+
39
+ function _interopNamespace(e) {
40
+ if (e && e.__esModule) return e;
41
+ var n = Object.create(null);
42
+ if (e) {
43
+ Object.keys(e).forEach(function (k) {
44
+ if (k !== 'default') {
45
+ var d = Object.getOwnPropertyDescriptor(e, k);
46
+ Object.defineProperty(n, k, d.get ? d : {
47
+ enumerable: true,
48
+ get: function () { return e[k]; }
49
+ });
50
+ }
51
+ });
52
+ }
53
+ n.default = e;
54
+ return Object.freeze(n);
55
+ }
56
+
57
+ var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
58
+ var Container__default = /*#__PURE__*/_interopDefault(Container);
59
+ var NeetoHeader__default = /*#__PURE__*/_interopDefault(NeetoHeader);
60
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefault(_toConsumableArray);
61
+ var axios__default = /*#__PURE__*/_interopDefault(axios);
62
+ var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
63
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
64
+ var MoreDropdown__default = /*#__PURE__*/_interopDefault(MoreDropdown);
65
+ var SubHeader__default = /*#__PURE__*/_interopDefault(SubHeader);
66
+
67
+ // eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis
68
+ var list$1 = function list(params) {
69
+ return axios__default.default.get("".concat(constants.BASE_URL, "/api/v1/groups"), {
70
+ params: params
71
+ });
72
+ };
73
+ var show = function show(id) {
74
+ return axios__default.default.get("".concat(constants.BASE_URL, "/api/v1/groups/").concat(id));
75
+ };
76
+ var create = function create(payload) {
77
+ return axios__default.default.post("".concat(constants.BASE_URL, "/api/v1/groups"), payload);
78
+ };
79
+ var update = function update(id, payload) {
80
+ return axios__default.default.patch("".concat(constants.BASE_URL, "/api/v1/groups/").concat(id), payload);
81
+ };
82
+ var destroy = function destroy(id) {
83
+ return axios__default.default["delete"]("".concat(constants.BASE_URL, "/api/v1/groups/").concat(id));
84
+ };
85
+ var groupsApi = {
86
+ create: create,
87
+ list: list$1,
88
+ update: update,
89
+ show: show,
90
+ destroy: destroy
91
+ };
92
+
93
+ var useFetchGroups = function useFetchGroups(_ref) {
94
+ var page = _ref.page,
95
+ pageSize = _ref.pageSize,
96
+ _ref$searchTerm = _ref.searchTerm,
97
+ searchTerm = _ref$searchTerm === void 0 ? "" : _ref$searchTerm;
98
+ return reactQuery.useQuery({
99
+ queryKey: [constants.QUERY_KEYS.GROUPS, searchTerm, page, pageSize],
100
+ queryFn: function queryFn() {
101
+ return groupsApi.list({
102
+ searchTerm: searchTerm,
103
+ page: page,
104
+ pageSize: pageSize,
105
+ loadDetails: true
106
+ });
107
+ }
108
+ });
109
+ };
110
+ var useCreateGroup = function useCreateGroup() {
111
+ var _config$form$otherKey, _config$form;
112
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
113
+ return reactUtils.useMutationWithInvalidation(function (payload) {
114
+ return groupsApi.create(payload);
115
+ }, {
116
+ keysToInvalidate: [[constants.QUERY_KEYS.GROUPS]].concat(_toConsumableArray__default.default((_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 : []))
117
+ });
118
+ };
119
+ var useDeleteGroup = function useDeleteGroup() {
120
+ var _config$form$otherKey2, _config$form2;
121
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
122
+ return reactUtils.useMutationWithInvalidation(function (id) {
123
+ return groupsApi.destroy(id);
124
+ }, {
125
+ keysToInvalidate: [[constants.QUERY_KEYS.GROUPS]].concat(_toConsumableArray__default.default((_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 : []))
126
+ });
127
+ };
128
+ var useFetchGroup = function useFetchGroup(id) {
129
+ return reactQuery.useQuery({
130
+ queryKey: [constants.QUERY_KEYS.GROUPS, id],
131
+ queryFn: function queryFn() {
132
+ return groupsApi.show(id);
133
+ },
134
+ select: ramda.prop("group"),
135
+ enabled: !!id
136
+ });
137
+ };
138
+ var useUpdateGroup = function useUpdateGroup() {
139
+ var _config$form$otherKey3, _config$form3;
140
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
141
+ return reactUtils.useMutationWithInvalidation(function (_ref2) {
142
+ var id = _ref2.id,
143
+ payload = _ref2.payload;
144
+ return groupsApi.update(id, payload);
145
+ }, {
146
+ keysToInvalidate: [[constants.QUERY_KEYS.GROUPS]].concat(_toConsumableArray__default.default((_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 : []))
147
+ });
148
+ };
149
+
150
+ var PaneSpinner = function PaneSpinner() {
151
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
152
+ className: "flex h-full w-full items-center justify-center",
153
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
154
+ });
155
+ };
156
+
157
+ // eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis
158
+ var list = function list() {
159
+ return axios__default.default.get("".concat(constants.BASE_URL, "/api/v1/users"));
160
+ };
161
+ var usersApi = {
162
+ list: list
163
+ };
164
+
165
+ var useFetchUsers = function useFetchUsers() {
166
+ return reactQuery.useQuery({
167
+ queryKey: [constants.QUERY_KEYS.USERS],
168
+ queryFn: usersApi.list
169
+ });
170
+ };
171
+
172
+ var MAXIMUM_NAME_LENGTH = 25;
173
+ var GROUP_FORM_VALIDATION_SCHEMA = yup__namespace.object({
174
+ name: yup__namespace.string().required(i18next.t("neetoTeamMembers.validations.required", {
175
+ what: i18next.t("neetoTeamMembers.common.name")
176
+ })).trim(i18next.t("neetoTeamMembers.validations.noWhiteSpaces", {
177
+ what: i18next.t("neetoTeamMembers.common.name")
178
+ })).max(MAXIMUM_NAME_LENGTH, i18next.t("neetoTeamMembers.validations.max", {
179
+ size: MAXIMUM_NAME_LENGTH
180
+ }))
181
+ });
182
+ var GROUP_FORM_INITIAL_VALUES = {
183
+ name: "",
184
+ description: "",
185
+ members: []
186
+ };
187
+ var DEFAULT_DELETE_GROUP_DATA = {
188
+ isDeleting: false,
189
+ group: {}
190
+ };
191
+ var DEFAULT_EDIT_GROUP = {
192
+ isVisible: false,
193
+ groupId: ""
194
+ };
195
+ var EVENTS = {
196
+ GROUP_CREATED: "group_created"
197
+ };
198
+
199
+ var Member = function Member(_ref) {
200
+ var member = _ref.member;
201
+ var _useState = React.useState(false),
202
+ _useState2 = _slicedToArray__default.default(_useState, 2),
203
+ isDeleteAlertOpen = _useState2[0],
204
+ setIsDeleteAlertOpen = _useState2[1];
205
+ var _useTranslation = reactI18next.useTranslation(),
206
+ t = _useTranslation.t;
207
+ var _useFormikContext = formik.useFormikContext(),
208
+ setFieldValue = _useFormikContext.setFieldValue,
209
+ values = _useFormikContext.values;
210
+ var handleRemoveMember = function handleRemoveMember(memberToRemove) {
211
+ setFieldValue("members", values.members.filter(function (id) {
212
+ return id !== memberToRemove.value;
213
+ }));
214
+ setIsDeleteAlertOpen(false);
215
+ };
216
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
217
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
218
+ className: "flex items-center justify-between neeto-ui-rounded-lg border p-2",
219
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
220
+ className: "flex items-center space-x-2",
221
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Avatar, {
222
+ className: "size-8 shrink-0",
223
+ user: {
224
+ name: member === null || member === void 0 ? void 0 : member.label
225
+ }
226
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
227
+ className: "ms-2 w-auto",
228
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
229
+ className: "mb-1 text-sm font-medium capitalize",
230
+ children: member === null || member === void 0 ? void 0 : member.label
231
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
232
+ className: "text-xs text-muted-foreground",
233
+ children: initializers.taxonomies.groupMember.singular
234
+ })]
235
+ })]
236
+ }), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown__default.default, {
237
+ dropdownProps: {
238
+ strategy: "fixed",
239
+ position: "bottom-end"
240
+ },
241
+ menuItems: [{
242
+ key: "delete-menu",
243
+ "data-testid": "member-remove-button",
244
+ label: t("neetoTeamMembers.common.remove"),
245
+ onClick: function onClick() {
246
+ return setIsDeleteAlertOpen(true);
247
+ }
248
+ }]
249
+ })]
250
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Alert, {
251
+ cancelButtonLabel: t("neetoTeamMembers.buttons.cancel"),
252
+ isOpen: isDeleteAlertOpen,
253
+ submitButtonLabel: t("neetoTeamMembers.common.remove"),
254
+ message: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
255
+ i18nKey: "neetoTeamMembers.alerts.messages.removeMember",
256
+ values: {
257
+ member: member === null || member === void 0 ? void 0 : member.label
258
+ }
259
+ }),
260
+ title: t("neetoTeamMembers.labels.removeMember", {
261
+ member: member === null || member === void 0 ? void 0 : member.label
262
+ }),
263
+ onClose: function onClose() {
264
+ return setIsDeleteAlertOpen(false);
265
+ },
266
+ onSubmit: function onSubmit() {
267
+ return handleRemoveMember(member);
268
+ }
269
+ })]
270
+ });
271
+ };
272
+
273
+ var Members = function Members(_ref) {
274
+ var _selectedMembers$leng;
275
+ var members = _ref.members,
276
+ membersSelectbox = _ref.membersSelectbox;
277
+ var _useState = React.useState(false),
278
+ _useState2 = _slicedToArray__default.default(_useState, 2),
279
+ isAddNewMemberDropdownVisible = _useState2[0],
280
+ setIsAddNewMemberDropdownVisible = _useState2[1];
281
+ var _useFormikContext = formik.useFormikContext(),
282
+ values = _useFormikContext.values;
283
+ var selectedMembers = members === null || members === void 0 ? void 0 : members.filter(function (member) {
284
+ var _values$members;
285
+ return values === null || values === void 0 || (_values$members = values.members) === null || _values$members === void 0 ? void 0 : _values$members.includes(member.value);
286
+ });
287
+ var _useTranslation = reactI18next.useTranslation(),
288
+ t = _useTranslation.t;
289
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
290
+ className: "w-full space-y-4",
291
+ children: [/*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Typography, {
292
+ className: "text-base font-semibold",
293
+ children: [initializers.taxonomies.groupMember.plural, " (", (_selectedMembers$leng = selectedMembers === null || selectedMembers === void 0 ? void 0 : selectedMembers.length) !== null && _selectedMembers$leng !== void 0 ? _selectedMembers$leng : 0, ")"]
294
+ }), isAddNewMemberDropdownVisible ? membersSelectbox : /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
295
+ "data-testid": "new-member-button",
296
+ variant: "outline",
297
+ onClick: function onClick() {
298
+ return setIsAddNewMemberDropdownVisible(true);
299
+ },
300
+ children: t("neetoTeamMembers.common.addNew_", {
301
+ what: initializers.taxonomies.groupMember.singular
302
+ })
303
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
304
+ className: "w-full space-y-1",
305
+ children: selectedMembers === null || selectedMembers === void 0 ? void 0 : selectedMembers.map(function (member) {
306
+ return /*#__PURE__*/React.createElement(Member, {
307
+ member: member,
308
+ key: member.value
309
+ });
310
+ })
311
+ })]
312
+ });
313
+ };
314
+
315
+ 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; }
316
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty__default.default(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; }
317
+ var Form = function Form(_ref) {
318
+ var _group$members$map, _group$members, _config$form$initialV, _config$form, _config$form2, _config$pane;
319
+ var _ref$group = _ref.group,
320
+ group = _ref$group === void 0 ? {} : _ref$group,
321
+ _ref$config = _ref.config,
322
+ config = _ref$config === void 0 ? {} : _ref$config,
323
+ _ref$isEdit = _ref.isEdit,
324
+ isEdit = _ref$isEdit === void 0 ? false : _ref$isEdit,
325
+ _ref$onClose = _ref.onClose,
326
+ onClose = _ref$onClose === void 0 ? neetoCist.noop : _ref$onClose;
327
+ var _useTranslation = reactI18next.useTranslation(),
328
+ t = _useTranslation.t;
329
+ var _useFetchUsers = useFetchUsers(),
330
+ _useFetchUsers$data = _useFetchUsers.data,
331
+ _useFetchUsers$data2 = _useFetchUsers$data === void 0 ? {} : _useFetchUsers$data,
332
+ users = _useFetchUsers$data2.users,
333
+ isLoading = _useFetchUsers.isLoading;
334
+ var _useCreateGroup = useCreateGroup(config),
335
+ create = _useCreateGroup.mutate,
336
+ isCreating = _useCreateGroup.isPending;
337
+ var _useUpdateGroup = useUpdateGroup(config),
338
+ update = _useUpdateGroup.mutate,
339
+ isUpdating = _useUpdateGroup.isPending;
340
+ var initialValues = isEdit ? _objectSpread(_objectSpread({}, group), {}, {
341
+ members: (_group$members$map = (_group$members = group.members) === null || _group$members === void 0 ? void 0 : _group$members.map(function (m) {
342
+ return String(m.id);
343
+ })) !== null && _group$members$map !== void 0 ? _group$members$map : []
344
+ }) : 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 : {});
345
+ 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);
346
+ var memberOptions = React.useMemo(function () {
347
+ var _users$map;
348
+ return (_users$map = users === null || users === void 0 ? void 0 : users.map(function (u) {
349
+ return {
350
+ label: u.name,
351
+ value: String(u.id)
352
+ };
353
+ })) !== null && _users$map !== void 0 ? _users$map : [];
354
+ }, [users]);
355
+ var handleSubmit = function handleSubmit(values) {
356
+ var _values$members, _config$form3, _config$form3$otherPa;
357
+ var payload = {
358
+ group: ramda.mergeLeft({
359
+ name: values.name,
360
+ description: values.description,
361
+ userIds: (_values$members = values.members) !== null && _values$members !== void 0 ? _values$members : []
362
+ }, 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))
363
+ };
364
+ if (isEdit) {
365
+ update({
366
+ id: group.id,
367
+ payload: payload
368
+ }, {
369
+ onSuccess: function onSuccess() {
370
+ return onClose();
371
+ }
372
+ });
373
+ } else {
374
+ create(payload, {
375
+ onSuccess: function onSuccess() {
376
+ utils.captureAnalyticsEvent(EVENTS.GROUP_CREATED);
377
+ onClose();
378
+ }
379
+ });
380
+ }
381
+ };
382
+ if (isLoading || config !== null && config !== void 0 && (_config$pane = config.pane) !== null && _config$pane !== void 0 && _config$pane.isLoading) return /*#__PURE__*/jsxRuntime.jsx(PaneSpinner, {});
383
+ var membersSelect = /*#__PURE__*/jsxRuntime.jsx(Select.FormikSelect, {
384
+ isMulti: true,
385
+ closeMenuOnSelect: false,
386
+ id: "members-autocomplete",
387
+ label: initializers.taxonomies.groupMember.plural,
388
+ name: "members",
389
+ options: memberOptions,
390
+ placeholder: initializers.taxonomies.groupMember.plural
391
+ });
392
+ return /*#__PURE__*/jsxRuntime.jsx(Select.FormikForm, {
393
+ formProps: {
394
+ noValidate: true,
395
+ className: "flex w-full flex-col gap-y-4 pb-6"
396
+ },
397
+ formikProps: {
398
+ enableReinitialize: true,
399
+ initialValues: initialValues,
400
+ validationSchema: validationSchema,
401
+ onSubmit: handleSubmit
402
+ },
403
+ children: function children(_ref2) {
404
+ var _config$form4, _config$form4$otherEl, _config$form5, _config$form5$otherEl;
405
+ var values = _ref2.values;
406
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
407
+ children: [/*#__PURE__*/jsxRuntime.jsx(formik$1.Input, {
408
+ required: true,
409
+ "data-testid": "group-name-text-field",
410
+ label: t("neetoTeamMembers.common.name"),
411
+ name: "name"
412
+ }), /*#__PURE__*/jsxRuntime.jsx(formik$1.Textarea, {
413
+ "data-testid": "group-description-text-area",
414
+ label: t("neetoTeamMembers.common.description"),
415
+ name: "description",
416
+ rows: 4
417
+ }), 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, {
418
+ members: memberOptions,
419
+ membersSelectbox: membersSelect
420
+ }) : membersSelect, 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(neetoAtoms.Sheet.Footer, {
421
+ className: "absolute bottom-0 start-0 gap-x-2",
422
+ children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock.FormikActionBlock, {
423
+ cancelButtonProps: {
424
+ onClick: onClose
425
+ },
426
+ isSubmitting: isCreating || isUpdating
427
+ })
428
+ })]
429
+ });
430
+ }
431
+ });
432
+ };
433
+
434
+ var Create = reactUtils.withT(function (_ref) {
435
+ var t = _ref.t,
436
+ config = _ref.config,
437
+ isOpen = _ref.isOpen,
438
+ onClose = _ref.onClose;
439
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
440
+ isOpen: isOpen,
441
+ onClose: onClose,
442
+ modal: false,
443
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
444
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
445
+ children: t("neetoTeamMembers.common.addNew_", {
446
+ what: initializers.taxonomies.group.singular
447
+ })
448
+ })
449
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
450
+ hasFooter: false,
451
+ children: /*#__PURE__*/jsxRuntime.jsx(Form, {
452
+ config: config,
453
+ onClose: onClose
454
+ })
455
+ })]
456
+ });
457
+ });
458
+
459
+ var Edit = function Edit(_ref) {
460
+ var config = _ref.config,
461
+ groupId = _ref.groupId,
462
+ isOpen = _ref.isOpen,
463
+ onClose = _ref.onClose;
464
+ var _useTranslation = reactI18next.useTranslation(),
465
+ t = _useTranslation.t;
466
+ var _useFetchGroup = useFetchGroup(groupId),
467
+ group = _useFetchGroup.data,
468
+ isLoading = _useFetchGroup.isLoading;
469
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
470
+ isOpen: isOpen,
471
+ onClose: onClose,
472
+ modal: false,
473
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
474
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
475
+ children: t("neetoTeamMembers.common.edit_", {
476
+ what: initializers.taxonomies.group.singular
477
+ })
478
+ })
479
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
480
+ hasFooter: false,
481
+ children: isLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
482
+ className: "flex h-full w-full items-center justify-center",
483
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
484
+ }) : /*#__PURE__*/jsxRuntime.jsx(Form, {
485
+ config: config,
486
+ group: group,
487
+ onClose: onClose,
488
+ isEdit: true
489
+ })
490
+ })]
491
+ });
492
+ };
493
+
494
+ var renderName = function renderName(_ref) {
495
+ var name = _ref.name,
496
+ group = _ref.group,
497
+ config = _ref.config,
498
+ setEditGroupDetail = _ref.setEditGroupDetail,
499
+ setDeleteGroup = _ref.setDeleteGroup,
500
+ getGroupDetail = _ref.getGroupDetail;
501
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
502
+ className: "flex items-center justify-between gap-x-3",
503
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
504
+ content: name,
505
+ position: "bottom",
506
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
507
+ className: "truncate text-sm",
508
+ children: name
509
+ })
510
+ }), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown__default.default, {
511
+ dropdownButtonProps: {
512
+ className: "me-1 my-1"
513
+ },
514
+ dropdownProps: {
515
+ strategy: "fixed",
516
+ position: "bottom-end",
517
+ appendTo: function appendTo() {
518
+ return document.body;
519
+ }
520
+ },
521
+ menuItems: [{
522
+ key: "edit-menu",
523
+ label: i18next.t("neetoTeamMembers.common.edit"),
524
+ onClick: function onClick() {
525
+ return setEditGroupDetail({
526
+ isVisible: true,
527
+ groupId: group.id
528
+ });
529
+ }
530
+ }, {
531
+ key: "delete-menu",
532
+ label: i18next.t("neetoTeamMembers.common.delete"),
533
+ onClick: function onClick() {
534
+ var _config$groupDependen, _config$table, _config$table$onBefor;
535
+ 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({
536
+ isDeleting: true,
537
+ group: getGroupDetail(group.id)
538
+ });
539
+ }
540
+ }]
541
+ })]
542
+ });
543
+ };
544
+ var getColumnData = function getColumnData(_ref2) {
545
+ var _config$table$columns, _config$table2, _config$table2$column;
546
+ var _ref2$config = _ref2.config,
547
+ config = _ref2$config === void 0 ? {} : _ref2$config,
548
+ setEditGroupDetail = _ref2.setEditGroupDetail,
549
+ setDeleteGroup = _ref2.setDeleteGroup,
550
+ getGroupDetail = _ref2.getGroupDetail;
551
+ return [{
552
+ accessorKey: "name",
553
+ id: "name",
554
+ header: i18next.t("neetoTeamMembers.common.name"),
555
+ size: 250,
556
+ cell: function cell(_ref3) {
557
+ var row = _ref3.row;
558
+ return renderName({
559
+ name: row.original.name,
560
+ group: row.original,
561
+ config: config,
562
+ setEditGroupDetail: setEditGroupDetail,
563
+ setDeleteGroup: setDeleteGroup,
564
+ getGroupDetail: getGroupDetail
565
+ });
566
+ }
567
+ }, {
568
+ accessorKey: "description",
569
+ id: "description",
570
+ header: i18next.t("neetoTeamMembers.common.description"),
571
+ cell: function cell(_ref4) {
572
+ var getValue = _ref4.getValue;
573
+ return getValue() || "-";
574
+ },
575
+ size: 300
576
+ }].concat(_toConsumableArray__default.default((_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 : []));
577
+ };
578
+
579
+ var List = function List(_ref) {
580
+ var _config$table$deleteA, _config$table, _config$table$deleteA2;
581
+ var config = _ref.config,
582
+ groups = _ref.groups,
583
+ isLoading = _ref.isLoading,
584
+ searchTerm = _ref.searchTerm,
585
+ pageProperties = _ref.pageProperties,
586
+ setPageProperties = _ref.setPageProperties,
587
+ emptyStateAction = _ref.emptyStateAction;
588
+ var _useState = React.useState(DEFAULT_EDIT_GROUP),
589
+ _useState2 = _slicedToArray__default.default(_useState, 2),
590
+ editGroupDetail = _useState2[0],
591
+ setEditGroupDetail = _useState2[1];
592
+ var _useState3 = React.useState(DEFAULT_DELETE_GROUP_DATA),
593
+ _useState4 = _slicedToArray__default.default(_useState3, 2),
594
+ deleteGroup = _useState4[0],
595
+ setDeleteGroup = _useState4[1];
596
+ var _useTranslation = reactI18next.useTranslation(),
597
+ t = _useTranslation.t;
598
+ var totalCount = groups === null || groups === void 0 ? void 0 : groups.length;
599
+ var _useDeleteGroup = useDeleteGroup(config),
600
+ groupDelete = _useDeleteGroup.mutate,
601
+ isDeleting = _useDeleteGroup.isPending;
602
+ var getGroupDetail = function getGroupDetail(id) {
603
+ return neetoCist.findById(id, groups);
604
+ };
605
+ var handleGroupDelete = function handleGroupDelete(group) {
606
+ groupDelete(group.id, {
607
+ onSuccess: function onSuccess() {
608
+ setDeleteGroup(DEFAULT_DELETE_GROUP_DATA);
609
+ }
610
+ });
611
+ };
612
+ var columnData = getColumnData({
613
+ config: config,
614
+ setEditGroupDetail: setEditGroupDetail,
615
+ setDeleteGroup: setDeleteGroup,
616
+ getGroupDetail: getGroupDetail
617
+ });
618
+ React.useEffect(function () {
619
+ var _config$groupDependen, _config$groupDependen2, _config$groupDependen3, _config$groupDependen4;
620
+ 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)) {
621
+ var _config$groupDependen5;
622
+ setDeleteGroup({
623
+ isDeleting: true,
624
+ group: config === null || config === void 0 || (_config$groupDependen5 = config.groupDependency) === null || _config$groupDependen5 === void 0 ? void 0 : _config$groupDependen5.selectedGroup
625
+ });
626
+ }
627
+ }, [config === null || config === void 0 ? void 0 : config.groupDependency]);
628
+ if (isLoading || isDeleting) {
629
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
630
+ className: "flex h-full w-full items-center justify-center",
631
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
632
+ });
633
+ }
634
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
635
+ children: [!ramda.isEmpty(groups) ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
636
+ children: [/*#__PURE__*/jsxRuntime.jsx(SubHeader__default.default, {
637
+ className: "mb-4",
638
+ leftActionBlock: totalCount > 0 && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
639
+ className: "me-4 text-base font-semibold",
640
+ "data-testid": "item-count",
641
+ children: v2_utils.pluralizeLabelUsingTaxonomy(initializers.taxonomies.group.singular, totalCount)
642
+ })
643
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
644
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DataTable, {
645
+ totalCount: totalCount,
646
+ fixedHeight: true,
647
+ allowRowClick: false,
648
+ columns: columnData,
649
+ currentPage: pageProperties.index,
650
+ data: groups || [],
651
+ loading: isLoading,
652
+ pageSize: pageProperties.size,
653
+ onPageChange: function onPageChange(index, size) {
654
+ return setPageProperties({
655
+ index: index,
656
+ size: size
657
+ });
658
+ }
659
+ })
660
+ })]
661
+ }) : /*#__PURE__*/jsxRuntime.jsx("div", {
662
+ className: "flex h-full w-full grow items-center justify-center",
663
+ children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Empty, {
664
+ title: t("neetoTeamMembers.helpers.emptyTable", {
665
+ entity: initializers.taxonomies.group.plural
666
+ }),
667
+ children: [!searchTerm && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
668
+ onClick: emptyStateAction,
669
+ children: t("neetoTeamMembers.common.addNew_", {
670
+ what: initializers.taxonomies.group.singular
671
+ })
672
+ }), (config === null || config === void 0 ? void 0 : config.noDataProps) && null]
673
+ })
674
+ }), /*#__PURE__*/jsxRuntime.jsx(Edit, {
675
+ config: config,
676
+ groupId: editGroupDetail.groupId,
677
+ isOpen: editGroupDetail.isVisible,
678
+ onClose: function onClose() {
679
+ return setEditGroupDetail(DEFAULT_EDIT_GROUP);
680
+ }
681
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Alert, {
682
+ cancelButtonLabel: t("neetoTeamMembers.buttons.cancel"),
683
+ isOpen: deleteGroup.isDeleting,
684
+ submitButtonLabel: t("neetoTeamMembers.common.delete"),
685
+ 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, {
686
+ i18nKey: "neetoTeamMembers.alerts.messages.delete",
687
+ values: {
688
+ resource: initializers.taxonomies.group.singular,
689
+ name: deleteGroup.group.name
690
+ }
691
+ }),
692
+ title: t("neetoTeamMembers.labels.deleteTitle", {
693
+ resource: initializers.taxonomies.group.singular
694
+ }),
695
+ onClose: function onClose() {
696
+ return setDeleteGroup(DEFAULT_DELETE_GROUP_DATA);
697
+ },
698
+ onSubmit: function onSubmit() {
699
+ return handleGroupDelete(deleteGroup.group);
700
+ }
701
+ })]
702
+ });
703
+ };
704
+
705
+ var Groups = function Groups(_ref) {
706
+ var _config$header$breadc, _config$header, _config$header$titleH, _config$header2;
707
+ var _ref$config = _ref.config,
708
+ config = _ref$config === void 0 ? {} : _ref$config;
709
+ var _useQueryParams = reactUtils.useQueryParams(),
710
+ _useQueryParams$searc = _useQueryParams.searchTerm,
711
+ searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
712
+ var _useState = React.useState(false),
713
+ _useState2 = _slicedToArray__default.default(_useState, 2),
714
+ isPaneOpen = _useState2[0],
715
+ setIsPaneOpen = _useState2[1];
716
+ var _useState3 = React.useState(constants.DEFAULT_PAGE_PROPERTIES),
717
+ _useState4 = _slicedToArray__default.default(_useState3, 2),
718
+ pageProperties = _useState4[0],
719
+ setPageProperties = _useState4[1];
720
+ var _useTranslation = reactI18next.useTranslation(),
721
+ t = _useTranslation.t;
722
+ var _useFetchGroups = useFetchGroups({
723
+ page: pageProperties.index,
724
+ pageSize: pageProperties.size,
725
+ searchTerm: searchTerm
726
+ }),
727
+ _useFetchGroups$data = _useFetchGroups.data,
728
+ _useFetchGroups$data2 = _useFetchGroups$data === void 0 ? {} : _useFetchGroups$data,
729
+ groups = _useFetchGroups$data2.groups,
730
+ isLoading = _useFetchGroups.isLoading;
731
+ var isFiltersVisible = neetoCist.isNotEmpty(groups) || neetoCist.isPresent(searchTerm);
732
+ React.useEffect(function () {
733
+ setPageProperties(constants.DEFAULT_PAGE_PROPERTIES);
734
+ }, [searchTerm]);
735
+ return /*#__PURE__*/jsxRuntime.jsxs(Container__default.default, {
736
+ children: [/*#__PURE__*/jsxRuntime.jsx(NeetoHeader__default.default, {
737
+ 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 : [],
738
+ title: initializers.taxonomies.group.plural,
739
+ titleHelpPopoverProps: (_config$header$titleH = config === null || config === void 0 || (_config$header2 = config.header) === null || _config$header2 === void 0 ? void 0 : _config$header2.titleHelpPopoverProps) !== null && _config$header$titleH !== void 0 ? _config$header$titleH : {},
740
+ actionBlock: /*#__PURE__*/jsxRuntime.jsx("div", {
741
+ className: "flex flex-row items-center justify-end",
742
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
743
+ "data-testid": "add-new-group-button",
744
+ onClick: function onClick() {
745
+ return setIsPaneOpen(true);
746
+ },
747
+ children: t("neetoTeamMembers.common.addNew_", {
748
+ what: initializers.taxonomies.group.singular
749
+ })
750
+ })
751
+ }),
752
+ searchProps: isFiltersVisible && {
753
+ placeholder: t("neetoTeamMembers.placeholders.searchEntity", {
754
+ entity: initializers.taxonomies.group.plural
755
+ })
756
+ }
757
+ }), /*#__PURE__*/jsxRuntime.jsx(List, {
758
+ config: config,
759
+ groups: groups,
760
+ isLoading: isLoading,
761
+ pageProperties: pageProperties,
762
+ searchTerm: searchTerm,
763
+ setPageProperties: setPageProperties,
764
+ emptyStateAction: function emptyStateAction() {
765
+ return setIsPaneOpen(true);
766
+ },
767
+ onClose: function onClose() {
768
+ return setIsPaneOpen(false);
769
+ }
770
+ }), /*#__PURE__*/jsxRuntime.jsx(Create, {
771
+ config: config,
772
+ isOpen: isPaneOpen,
773
+ onClose: function onClose() {
774
+ return setIsPaneOpen(false);
775
+ }
776
+ })]
777
+ });
778
+ };
779
+
780
+ module.exports = Groups;
781
+ //# sourceMappingURL=Groups.js.map