@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,949 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
+ var React = require('react');
6
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
7
+ var constants = require('@bigbinary/neeto-commons-frontend/constants');
8
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
9
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
10
+ var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
11
+ var FiltersBar = require('@bigbinary/neeto-filters-frontend/Bar');
12
+ var Columns = require('@bigbinary/neeto-molecules/v2/Columns');
13
+ var Container = require('@bigbinary/neeto-molecules/v2/Container');
14
+ var SubHeader$1 = require('@bigbinary/neeto-molecules/v2/SubHeader');
15
+ var ramda = require('ramda');
16
+ var reactI18next = require('react-i18next');
17
+ var reactRouterDom = require('react-router-dom');
18
+ var withReactQuery = require('../../withReactQuery-DvSkXhEx.js');
19
+ var index$1 = require('../../index-BkEJugj1.js');
20
+ var useTeamsApi = require('../../useTeamsApi-Ch5sHR2_.js');
21
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
22
+ var utils = require('@bigbinary/neeto-filters-frontend/utils');
23
+ var v2_ManageMember = require('../../index-aJIUa1Bd.js');
24
+ var neetoCist = require('@bigbinary/neeto-cist');
25
+ var i18next = require('i18next');
26
+ var jsxRuntime = require('react/jsx-runtime');
27
+ var lucideReact = require('lucide-react');
28
+ var v2_constants = require('./constants.js');
29
+ var sonner = require('sonner');
30
+ var NeetoHeader = require('@bigbinary/neeto-molecules/v2/Header');
31
+ require('@tanstack/react-query');
32
+ require('../../queryClient-B-JFya8X.js');
33
+ require('@babel/runtime/helpers/objectWithoutProperties');
34
+ require('axios');
35
+ require('../../constants-CMNbKvoF.js');
36
+ require('formik');
37
+ require('qs');
38
+ require('@babel/runtime/helpers/asyncToGenerator');
39
+ require('@babel/runtime/regenerator');
40
+ require('classnames');
41
+ require('@bigbinary/neeto-image-uploader-frontend/hooks');
42
+ require('../../ActionBlock-C9Iy0jGZ.js');
43
+ require('../../Select-CshPoN2b.js');
44
+ require('../../useCountries-CQdvJz0R.js');
45
+ require('../../RolesRadioGroup-fBmS68cW.js');
46
+ require('yup');
47
+ require('@bigbinary/neeto-atoms/formik');
48
+ require('./utils.js');
49
+ require('../../pluralize-CFlSRsRn.js');
50
+ require('../../_commonjsHelpers-BJu3ubxk.js');
51
+ require('@bigbinary/neeto-time-zones');
52
+ require('@bigbinary/neeto-atoms/primitives');
53
+ require('@bigbinary/neeto-molecules/v2/MoreDropdown');
54
+
55
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
56
+
57
+ var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
58
+ var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
59
+ var FiltersBar__default = /*#__PURE__*/_interopDefault(FiltersBar);
60
+ var Container__default = /*#__PURE__*/_interopDefault(Container);
61
+ var SubHeader__default = /*#__PURE__*/_interopDefault(SubHeader$1);
62
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefault(_toConsumableArray);
63
+ var NeetoHeader__default = /*#__PURE__*/_interopDefault(NeetoHeader);
64
+
65
+ function ownKeys$6(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; }
66
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
67
+ var useFilters = function useFilters(_ref) {
68
+ var _config$filterColumns;
69
+ var config = _ref.config;
70
+ var _useTranslation = reactI18next.useTranslation(),
71
+ t = _useTranslation.t;
72
+ var _useQueryParams = reactUtils.useQueryParams(),
73
+ _useQueryParams$searc = _useQueryParams.searchTerm,
74
+ searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
75
+ var searchKeywordProps = {
76
+ node: "first_name,last_name,email",
77
+ value: searchTerm,
78
+ key: "search_term"
79
+ };
80
+ var _useState = React.useState(""),
81
+ _useState2 = _slicedToArray__default.default(_useState, 2),
82
+ emailSearchTerm = _useState2[0],
83
+ setEmailSearchTerm = _useState2[1];
84
+ var defaultNeetoFilters = utils.buildFiltersFromURL([].concat(_toConsumableArray__default.default((_config$filterColumns = config === null || config === void 0 ? void 0 : config.filterColumns) !== null && _config$filterColumns !== void 0 ? _config$filterColumns : v2_ManageMember.defaultNeetoFiltersColumns()), [searchKeywordProps]));
85
+ var _useState3 = React.useState(_objectSpread$6(_objectSpread$6(_objectSpread$6({}, v2_ManageMember.DEFAULT_FILTER_VALUES), config === null || config === void 0 ? void 0 : config.defaultFilterValues), {}, {
86
+ neetoFilters: defaultNeetoFilters
87
+ })),
88
+ _useState4 = _slicedToArray__default.default(_useState3, 2),
89
+ filters = _useState4[0],
90
+ setFilters = _useState4[1];
91
+ var resetPage = reactUtils.useFuncDebounce(function () {
92
+ return setFilters(ramda.mergeLeft({
93
+ page: constants.DEFAULT_PAGE_INDEX
94
+ }));
95
+ });
96
+ var debouncedEmailSearchTerm = reactUtils.useDebounce(emailSearchTerm, 750);
97
+ var shouldFetchFilterOptions = ramda.isNil(config === null || config === void 0 ? void 0 : config.filterColumns);
98
+ var _useFetchFilterOption = useTeamsApi.useFetchFilterOptions({
99
+ params: {
100
+ emailSearchTerm: debouncedEmailSearchTerm
101
+ },
102
+ options: {
103
+ enabled: shouldFetchFilterOptions
104
+ }
105
+ }),
106
+ _useFetchFilterOption2 = _useFetchFilterOption.data,
107
+ filterOptions = _useFetchFilterOption2 === void 0 ? {} : _useFetchFilterOption2,
108
+ isFilterOptionsLoading = _useFetchFilterOption.isLoading;
109
+ var filterColumns = shouldFetchFilterOptions ? v2_ManageMember.buildFilterColumns({
110
+ options: filterOptions,
111
+ emailConfig: {
112
+ setSearchTerm: setEmailSearchTerm,
113
+ isLoading: isFilterOptionsLoading
114
+ }
115
+ }) : config === null || config === void 0 ? void 0 : config.filterColumns;
116
+ var searchProps = React.useMemo(function () {
117
+ return {
118
+ "data-testid": "ntm-search-members-input",
119
+ placeholder: t("neetoTeamMembers.common.search_", {
120
+ what: initializers.taxonomies.member.plural
121
+ }),
122
+ onChange: resetPage
123
+ };
124
+ }, []);
125
+ return {
126
+ filters: filters,
127
+ setFilters: setFilters,
128
+ filterColumns: filterColumns,
129
+ searchProps: searchProps,
130
+ searchKeywordProps: searchKeywordProps
131
+ };
132
+ };
133
+
134
+ function ownKeys$5(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; }
135
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
136
+ var useTeams = function useTeams(_ref) {
137
+ var config = _ref.config,
138
+ filters = _ref.filters,
139
+ setFilters = _ref.setFilters,
140
+ updateMember = _ref.updateMember;
141
+ var history = reactRouterDom.useHistory();
142
+ var _useState = React.useState(null),
143
+ _useState2 = _slicedToArray__default.default(_useState, 2),
144
+ selectedMember = _useState2[0],
145
+ setSelectedMember = _useState2[1];
146
+ var _useState3 = React.useState(v2_ManageMember.DEFAULT_IS_OPEN_VALUES),
147
+ _useState4 = _slicedToArray__default.default(_useState3, 2),
148
+ isOpen = _useState4[0],
149
+ setIsOpen = _useState4[1];
150
+ var _useState5 = React.useState(v2_ManageMember.DEFAULT_SELECTED_ROWS),
151
+ _useState6 = _slicedToArray__default.default(_useState5, 2),
152
+ selectedRows = _useState6[0],
153
+ setSelectedRows = _useState6[1];
154
+ var handleRemoveMember = function handleRemoveMember() {
155
+ if (!selectedMember) return;
156
+ var id = selectedMember.id;
157
+ var payload = {
158
+ active: false
159
+ };
160
+ updateMember({
161
+ id: id,
162
+ payload: payload
163
+ });
164
+ };
165
+ var handleUpdateStatus = function handleUpdateStatus(user) {
166
+ setSelectedMember(user);
167
+ setIsOpen(ramda.assoc("alert", true));
168
+ };
169
+ var handleUpdateRole = function handleUpdateRole(user) {
170
+ setSelectedMember(user);
171
+ setIsOpen(ramda.assoc("manageMember", true));
172
+ };
173
+ var handleAlertClose = function handleAlertClose() {
174
+ setIsOpen(ramda.assoc("alert", false));
175
+ setSelectedMember(null);
176
+ };
177
+ var handlePaneClose = function handlePaneClose() {
178
+ setIsOpen(ramda.assoc("manageMember", false));
179
+ setSelectedMember(null);
180
+ };
181
+ var resetSelectedRows = function resetSelectedRows() {
182
+ return setSelectedRows(v2_ManageMember.DEFAULT_SELECTED_ROWS);
183
+ };
184
+ var handleMemberFilterChange = function handleMemberFilterChange() {
185
+ var _filters$pageSize;
186
+ setSelectedRows(v2_ManageMember.DEFAULT_SELECTED_ROWS);
187
+ v2_ManageMember.handlePageChange(setFilters, history)(constants.DEFAULT_PAGE_INDEX, (_filters$pageSize = filters.pageSize) !== null && _filters$pageSize !== void 0 ? _filters$pageSize : constants.DEFAULT_PAGE_SIZE);
188
+ };
189
+ var handleTableChange = function handleTableChange(_, __, sorter) {
190
+ setFilters(ramda.mergeLeft({
191
+ sortBy: sorter.field,
192
+ orderBy: sorter.order
193
+ }));
194
+ };
195
+ var handleRowSelect = function handleRowSelect(keys, rowData) {
196
+ var _config$table, _config$table$onRowSe;
197
+ var rows = {
198
+ active: ramda.pluck("active", rowData),
199
+ displayNames: ramda.pluck("displayName", rowData),
200
+ emails: ramda.pluck("email", rowData),
201
+ keys: keys
202
+ };
203
+ setSelectedRows(_objectSpread$5({}, rows));
204
+ config === null || config === void 0 || (_config$table = config.table) === null || _config$table === void 0 || (_config$table$onRowSe = _config$table.onRowSelect) === null || _config$table$onRowSe === void 0 || _config$table$onRowSe.call(_config$table, {
205
+ rows: rows,
206
+ resetSelectedRows: resetSelectedRows,
207
+ rowData: rowData
208
+ });
209
+ };
210
+ return {
211
+ handleAlertClose: handleAlertClose,
212
+ handleMemberFilterChange: handleMemberFilterChange,
213
+ handlePaneClose: handlePaneClose,
214
+ handleRowSelect: handleRowSelect,
215
+ handleTableChange: handleTableChange,
216
+ handleRemoveMember: handleRemoveMember,
217
+ handleUpdateRole: handleUpdateRole,
218
+ handleUpdateStatus: handleUpdateStatus,
219
+ isOpen: isOpen,
220
+ selectedMember: selectedMember,
221
+ selectedRows: selectedRows,
222
+ setIsOpen: setIsOpen,
223
+ setSelectedRows: setSelectedRows
224
+ };
225
+ };
226
+
227
+ var FIXED_COLUMNS = ["name", "actions"];
228
+ var MANAGE_ROLES_BUTTON_LABEL = i18next.t("neetoTeamMembers.labels.manageRole", constants.PLURAL);
229
+
230
+ function ownKeys$4(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; }
231
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
232
+ var Header$2 = function Header(_ref) {
233
+ var isCreatePermissionGranted = _ref.isCreatePermissionGranted,
234
+ otherActionBlock = _ref.otherActionBlock,
235
+ _ref$onClick = _ref.onClick,
236
+ onClick = _ref$onClick === void 0 ? neetoCist.noop : _ref$onClick,
237
+ rolesButtonProps = _ref.rolesButtonProps;
238
+ var _useTranslation = reactI18next.useTranslation(),
239
+ t = _useTranslation.t;
240
+ var isRolesButtonVisible = !!rolesButtonProps;
241
+ var isOtherActionBlockVisible = !!otherActionBlock;
242
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
243
+ children: [isOtherActionBlockVisible && otherActionBlock(), isRolesButtonVisible ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, _objectSpread$4(_objectSpread$4({
244
+ "data-testid": "ntm-manage-roles-button",
245
+ variant: "outline"
246
+ }, rolesButtonProps), {}, {
247
+ children: MANAGE_ROLES_BUTTON_LABEL
248
+ })) : null, /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
249
+ content: !isCreatePermissionGranted ? t("neetoTeamMembers.tooltips.noPermissionToAddMember") : null,
250
+ children: /*#__PURE__*/jsxRuntime.jsx("span", {
251
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
252
+ onClick: onClick,
253
+ "data-testid": "ntm-add-member-button",
254
+ disabled: !isCreatePermissionGranted,
255
+ children: t("neetoTeamMembers.common.addNew_", {
256
+ what: initializers.taxonomies.member.singular
257
+ })
258
+ })
259
+ })
260
+ })]
261
+ });
262
+ };
263
+ var HeaderActionBlock = /*#__PURE__*/React.memo(Header$2);
264
+
265
+ var filterBySearchTerm = function filterBySearchTerm(searchTerm, roles) {
266
+ return ramda.filter(function (_ref) {
267
+ var name = _ref.name;
268
+ return ramda.includes(ramda.trim(ramda.toLower(searchTerm)), ramda.trim(ramda.toLower(name)));
269
+ }, roles);
270
+ };
271
+ var getDeactivatedButtonVisible = function getDeactivatedButtonVisible(selectedRows, config) {
272
+ var _config$hiddenBulkAct;
273
+ return selectedRows.active.some(function (active) {
274
+ return active === true;
275
+ }) && !(config !== null && config !== void 0 && (_config$hiddenBulkAct = config.hiddenBulkActions) !== null && _config$hiddenBulkAct !== void 0 && _config$hiddenBulkAct.includes("remove"));
276
+ };
277
+
278
+ var RolesDropdown = function RolesDropdown(_ref) {
279
+ var _ref$disabled = _ref.disabled,
280
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
281
+ hasUpdatePermission = _ref.hasUpdatePermission,
282
+ _ref$isSearchable = _ref.isSearchable,
283
+ isSearchable = _ref$isSearchable === void 0 ? false : _ref$isSearchable,
284
+ _ref$roles = _ref.roles,
285
+ roles = _ref$roles === void 0 ? [] : _ref$roles,
286
+ _ref$selectedMembersC = _ref.selectedMembersCount,
287
+ selectedMembersCount = _ref$selectedMembersC === void 0 ? 0 : _ref$selectedMembersC,
288
+ setAlertType = _ref.setAlertType,
289
+ setBulkUpdateRole = _ref.setBulkUpdateRole;
290
+ var _useTranslation = reactI18next.useTranslation(),
291
+ t = _useTranslation.t;
292
+ var _useState = React.useState(""),
293
+ _useState2 = _slicedToArray__default.default(_useState, 2),
294
+ searchTerm = _useState2[0],
295
+ setSearchTerm = _useState2[1];
296
+ var filteredRoles = filterBySearchTerm(searchTerm, roles);
297
+ var isUpdatingAllowed = hasUpdatePermission && !disabled;
298
+ var handleSearch = function handleSearch(_ref2) {
299
+ var value = _ref2.target.value;
300
+ return setSearchTerm(value);
301
+ };
302
+ var handleSelectRole = function handleSelectRole(role) {
303
+ setBulkUpdateRole(role);
304
+ setAlertType("role");
305
+ };
306
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
307
+ content: !isUpdatingAllowed ? t("neetoTeamMembers.tooltips.activateUserToEdit", {
308
+ count: selectedMembersCount
309
+ }) : null,
310
+ children: /*#__PURE__*/jsxRuntime.jsx("span", {
311
+ children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.DropdownMenu.SubMenu, {
312
+ contentProps: {
313
+ align: "end"
314
+ },
315
+ label: t("neetoTeamMembers.buttons.changeRole"),
316
+ triggerProps: {
317
+ disabled: !isUpdatingAllowed
318
+ },
319
+ children: [isSearchable && /*#__PURE__*/jsxRuntime.jsx("div", {
320
+ className: "px-3 py-2",
321
+ onClick: function onClick(e) {
322
+ return e.stopPropagation();
323
+ },
324
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
325
+ className: "relative",
326
+ children: [/*#__PURE__*/jsxRuntime.jsx(lucideReact.Search, {
327
+ className: "absolute left-2 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"
328
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Input, {
329
+ className: "ps-8",
330
+ "data-testid": "ntm-members-roles-search-input",
331
+ type: "search",
332
+ value: searchTerm,
333
+ placeholder: t("neetoTeamMembers.placeholders.searchRole", constants.PLURAL),
334
+ onChange: handleSearch
335
+ })]
336
+ })
337
+ }), neetoCist.isNotEmpty(filteredRoles) ? filteredRoles.map(function (_ref3) {
338
+ var id = _ref3.id,
339
+ name = _ref3.name;
340
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
341
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem.Button, {
342
+ "data-testid": "change-role-".concat(neetoCist.hyphenate(name), "-button"),
343
+ onClick: function onClick() {
344
+ return handleSelectRole(name);
345
+ },
346
+ children: name
347
+ })
348
+ }, id);
349
+ }) : /*#__PURE__*/jsxRuntime.jsx("div", {
350
+ className: "flex justify-center p-1",
351
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
352
+ className: "text-muted-foreground text-sm",
353
+ children: t("neetoTeamMembers.helpers.noRolesFound")
354
+ })
355
+ })]
356
+ })
357
+ })
358
+ });
359
+ };
360
+
361
+ function ownKeys$3(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; }
362
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
363
+ var Left = function Left(_ref) {
364
+ var _ref2, _selectedRows$keys, _selectedRows$active, _config$hiddenBulkAct, _config$otherBulkActi;
365
+ var config = _ref.config,
366
+ filteredCount = _ref.filteredCount,
367
+ resetToFirstPage = _ref.resetToFirstPage,
368
+ roles = _ref.roles,
369
+ selectedRows = _ref.selectedRows,
370
+ setSelectedRows = _ref.setSelectedRows,
371
+ selectedRowsCount = _ref.selectedRowsCount,
372
+ bulkParams = _ref.bulkParams;
373
+ var _useTranslation = reactI18next.useTranslation(),
374
+ t = _useTranslation.t;
375
+ var isUpdatePermissionGranted = config.permissions.update;
376
+ var _useState = React.useState(""),
377
+ _useState2 = _slicedToArray__default.default(_useState, 2),
378
+ alertType = _useState2[0],
379
+ setAlertType = _useState2[1];
380
+ var _useState3 = React.useState(""),
381
+ _useState4 = _slicedToArray__default.default(_useState3, 2),
382
+ bulkUpdateRole = _useState4[0],
383
+ setBulkUpdateRole = _useState4[1];
384
+ var hasSelectedRows = neetoCist.isNotEmpty(selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.keys);
385
+ var selectedMembersCountValues = {
386
+ count: (_ref2 = selectedRowsCount || (selectedRows === null || selectedRows === void 0 || (_selectedRows$keys = selectedRows.keys) === null || _selectedRows$keys === void 0 ? void 0 : _selectedRows$keys.length) || filteredCount) !== null && _ref2 !== void 0 ? _ref2 : 0,
387
+ metaName: hasSelectedRows && (selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.keys.length) > 1 ? initializers.taxonomies.member.plural : initializers.taxonomies.member.singular,
388
+ totalCount: filteredCount !== null && filteredCount !== void 0 ? filteredCount : 0
389
+ };
390
+ var hasDeactivateMembers = selectedRows === null || selectedRows === void 0 || (_selectedRows$active = selectedRows.active) === null || _selectedRows$active === void 0 ? void 0 : _selectedRows$active.some(function (active) {
391
+ return !active;
392
+ });
393
+ var _useBulkUpdateMembers = useTeamsApi.useBulkUpdateMembers({
394
+ onSuccess: function onSuccess() {
395
+ var _config$bulkUpdateMem;
396
+ setSelectedRows(v2_ManageMember.DEFAULT_SELECTED_ROWS);
397
+ resetToFirstPage();
398
+ config === null || config === void 0 || (_config$bulkUpdateMem = config.bulkUpdateMembers) === null || _config$bulkUpdateMem === void 0 || (_config$bulkUpdateMem = _config$bulkUpdateMem.onSuccess) === null || _config$bulkUpdateMem === void 0 || _config$bulkUpdateMem.callback();
399
+ }
400
+ }),
401
+ bulkUpdateMember = _useBulkUpdateMembers.mutate;
402
+ var handleDeactivateMembers = function handleDeactivateMembers() {
403
+ bulkUpdateMember({
404
+ users: {
405
+ active: false,
406
+ emails: selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.emails
407
+ },
408
+ filterParams: bulkParams
409
+ });
410
+ };
411
+ var resetSelectedRows = function resetSelectedRows() {
412
+ return setSelectedRows(v2_ManageMember.DEFAULT_SELECTED_ROWS);
413
+ };
414
+ var handleRoleChange = function handleRoleChange(role) {
415
+ bulkUpdateMember({
416
+ users: {
417
+ active: true,
418
+ emails: selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.emails,
419
+ organization_role: role
420
+ },
421
+ filterParams: bulkParams
422
+ });
423
+ };
424
+ var alertTypes = [{
425
+ message: "neetoTeamMembers.alerts.messages.removeMember",
426
+ onSubmit: handleDeactivateMembers,
427
+ title: t("neetoTeamMembers.common.remove_", {
428
+ what: selectedMembersCountValues === null || selectedMembersCountValues === void 0 ? void 0 : selectedMembersCountValues.metaName
429
+ }),
430
+ type: "remove"
431
+ }, {
432
+ message: "neetoTeamMembers.alerts.messages.changeRole",
433
+ onSubmit: handleRoleChange,
434
+ title: t("neetoTeamMembers.common.changeRole"),
435
+ type: "role"
436
+ }];
437
+ var selectedAlert = neetoCist.findBy({
438
+ type: alertType
439
+ }, alertTypes);
440
+ var handleAlertClose = function handleAlertClose() {
441
+ selectedAlert.onSubmit(bulkUpdateRole);
442
+ setAlertType("");
443
+ };
444
+ var getButtonLabel = function getButtonLabel(type) {
445
+ if (type === "role") {
446
+ return t("neetoTeamMembers.buttons.changeRole");
447
+ }
448
+ return t("neetoTeamMembers.buttons.remove");
449
+ };
450
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
451
+ className: "flex items-center gap-4",
452
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
453
+ "data-testid": "ntm-filtered-members-count",
454
+ children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
455
+ components: {
456
+ span: /*#__PURE__*/jsxRuntime.jsx("span", {
457
+ className: "text-muted-foreground"
458
+ })
459
+ },
460
+ values: selectedMembersCountValues,
461
+ i18nKey: hasSelectedRows ? "neetoTeamMembers.helpers.selectedMembersCount" : "neetoTeamMembers.helpers.metaNameWithCount"
462
+ })
463
+ }), hasSelectedRows && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
464
+ content: !isUpdatePermissionGranted ? t("neetoTeamMembers.tooltips.noPermissionToEditMembers") : null,
465
+ children: /*#__PURE__*/jsxRuntime.jsx("span", {
466
+ children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.DropdownMenu, {
467
+ buttonStyle: "tertiary",
468
+ disabled: !isUpdatePermissionGranted,
469
+ label: t("neetoTeamMembers.common.takeAction"),
470
+ buttonProps: {
471
+ "data-testid": "ntm-members-take-action-dropdown-button"
472
+ },
473
+ children: [!(config !== null && config !== void 0 && (_config$hiddenBulkAct = config.hiddenBulkActions) !== null && _config$hiddenBulkAct !== void 0 && _config$hiddenBulkAct.includes("role")) && /*#__PURE__*/jsxRuntime.jsx(RolesDropdown, {
474
+ roles: roles,
475
+ setAlertType: setAlertType,
476
+ setBulkUpdateRole: setBulkUpdateRole,
477
+ disabled: hasDeactivateMembers,
478
+ hasUpdatePermission: isUpdatePermissionGranted,
479
+ selectedMembersCount: selectedMembersCountValues === null || selectedMembersCountValues === void 0 ? void 0 : selectedMembersCountValues.count
480
+ }), config === null || config === void 0 || (_config$otherBulkActi = config.otherBulkActions) === null || _config$otherBulkActi === void 0 ? void 0 : _config$otherBulkActi.call(config, resetSelectedRows, selectedRows), getDeactivatedButtonVisible(selectedRows, config) && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
481
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem.Button, {
482
+ "data-testid": "ntm-deactivate-members-button",
483
+ isDisabled: !isUpdatePermissionGranted,
484
+ onClick: function onClick() {
485
+ return setAlertType("remove");
486
+ },
487
+ children: t("neetoTeamMembers.common.remove")
488
+ })
489
+ })]
490
+ })
491
+ })
492
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Alert, {
493
+ cancelButtonLabel: t("neetoTeamMembers.buttons.cancel"),
494
+ isOpen: !!selectedAlert,
495
+ submitButtonLabel: getButtonLabel(selectedAlert === null || selectedAlert === void 0 ? void 0 : selectedAlert.type),
496
+ title: selectedAlert === null || selectedAlert === void 0 ? void 0 : selectedAlert.title,
497
+ message: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
498
+ i18nKey: selectedAlert === null || selectedAlert === void 0 ? void 0 : selectedAlert.message,
499
+ values: _objectSpread$3(_objectSpread$3({}, selectedMembersCountValues), {}, {
500
+ person: selectedRows.displayNames[0],
501
+ role: bulkUpdateRole
502
+ })
503
+ }),
504
+ onClose: function onClose() {
505
+ return setAlertType("");
506
+ },
507
+ onSubmit: handleAlertClose
508
+ })]
509
+ });
510
+ };
511
+ var Right = reactUtils.withT(function (_ref3) {
512
+ var t = _ref3.t,
513
+ columns = _ref3.columns,
514
+ filterColumns = _ref3.filterColumns,
515
+ handleNeetoFilterChange = _ref3.handleNeetoFilterChange,
516
+ isFiltersPaneOpen = _ref3.isFiltersPaneOpen,
517
+ searchKeywordProps = _ref3.searchKeywordProps,
518
+ setIsDownloadPaneOpen = _ref3.setIsDownloadPaneOpen,
519
+ setIsFiltersPaneOpen = _ref3.setIsFiltersPaneOpen;
520
+ return /*#__PURE__*/jsxRuntime.jsx(SubHeader__default.default.RightBlock, {
521
+ columnsButtonProps: {
522
+ columnData: columns,
523
+ fixedColumns: FIXED_COLUMNS,
524
+ tableKey: v2_constants.TABLE_KEYS.TEAM_MEMBERS_TABLE,
525
+ noColumnMessage: t("neetoTeamMembers.columns.noColumnsFound"),
526
+ searchProps: {
527
+ placeholder: t("neetoTeamMembers.columns.search")
528
+ }
529
+ },
530
+ downloadButtonProps: {
531
+ isVisible: true,
532
+ tooltipProps: {
533
+ content: t("neetoTeamMembers.buttons.export")
534
+ },
535
+ onClick: function onClick() {
536
+ return setIsDownloadPaneOpen(true);
537
+ }
538
+ },
539
+ filterProps: {
540
+ columns: filterColumns,
541
+ isOpen: isFiltersPaneOpen,
542
+ setIsOpen: setIsFiltersPaneOpen,
543
+ onChange: handleNeetoFilterChange,
544
+ keyword: searchKeywordProps
545
+ }
546
+ });
547
+ });
548
+ var SubHeader = {
549
+ Left: Left,
550
+ Right: Right
551
+ };
552
+
553
+ var EXPORT_TYPES = {
554
+ PDF: "pdf",
555
+ CSV: "csv",
556
+ EXCEL: "xlsx"
557
+ };
558
+ var DEFAULT_EXPORT_OPTIONS = {
559
+ exportType: EXPORT_TYPES.EXCEL
560
+ };
561
+ var EXPORT_OPTIONS = [{
562
+ type: EXPORT_TYPES.EXCEL,
563
+ individualExportLabel: i18next.t("neetoTeamMembers.labels.exports.xlsx"),
564
+ bulkExportLabel: i18next.t("neetoTeamMembers.labels.exportAs", {
565
+ format: i18next.t("neetoTeamMembers.labels.exports.xlsx")
566
+ }),
567
+ dataTestid: "download-as-excel-radio-item"
568
+ }, {
569
+ type: EXPORT_TYPES.CSV,
570
+ individualExportLabel: i18next.t("neetoTeamMembers.labels.exports.csv"),
571
+ bulkExportLabel: i18next.t("neetoTeamMembers.labels.exportAs", {
572
+ format: i18next.t("neetoTeamMembers.labels.exports.csv")
573
+ }),
574
+ dataTestid: "download-as-csv-radio-item"
575
+ }, {
576
+ type: EXPORT_TYPES.PDF,
577
+ individualExportLabel: i18next.t("neetoTeamMembers.labels.exports.pdf"),
578
+ bulkExportLabel: i18next.t("neetoTeamMembers.labels.exportAs", {
579
+ format: i18next.t("neetoTeamMembers.labels.exports.pdf")
580
+ }),
581
+ dataTestid: "download-as-pdf-radio-item"
582
+ }];
583
+
584
+ function ownKeys$2(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; }
585
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
586
+ var ExportPane = function ExportPane(_ref) {
587
+ var isOpen = _ref.isOpen,
588
+ onClose = _ref.onClose,
589
+ appliedFilters = _ref.appliedFilters,
590
+ hasBulkSelectedAllRows = _ref.hasBulkSelectedAllRows,
591
+ selectedMemberIds = _ref.selectedMemberIds,
592
+ selectedRowsCount = _ref.selectedRowsCount;
593
+ var _useState = React.useState(DEFAULT_EXPORT_OPTIONS),
594
+ _useState2 = _slicedToArray__default.default(_useState, 2),
595
+ exportOptions = _useState2[0],
596
+ setExportOptions = _useState2[1];
597
+ var _useTranslation = reactI18next.useTranslation(),
598
+ t = _useTranslation.t;
599
+ var setExportOption = function setExportOption(options) {
600
+ return setExportOptions(ramda.mergeLeft(options));
601
+ };
602
+ var exportType = exportOptions.exportType;
603
+ var getParams = function getParams() {
604
+ return _objectSpread$2(_objectSpread$2({}, exportOptions), {}, {
605
+ filters: appliedFilters || undefined,
606
+ considerAllMembers: hasBulkSelectedAllRows,
607
+ memberIds: hasBulkSelectedAllRows ? undefined : selectedMemberIds
608
+ });
609
+ };
610
+ var _useExportMembers = useTeamsApi.useExportMembers({
611
+ onSuccess: function onSuccess() {
612
+ var _globalProps$user;
613
+ onClose();
614
+ setExportOptions(DEFAULT_EXPORT_OPTIONS);
615
+ sonner.toast.success(/*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
616
+ i18nKey: "toastr.success.exportMembers",
617
+ values: {
618
+ email: (_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.email
619
+ }
620
+ }));
621
+ utils$1.captureAnalyticsEvent(v2_constants.EVENTS.TEAM_MEMBERS_DOWNLOADED, _objectSpread$2({}, exportOptions));
622
+ },
623
+ onError: function onError(error) {
624
+ return sonner.toast.error(error.message);
625
+ }
626
+ }),
627
+ exportMembers = _useExportMembers.mutate;
628
+ var description = neetoCist.isNotEmpty(selectedMemberIds) || hasBulkSelectedAllRows ? t("neetoTeamMembers.exportPane.description.selectedMembers", {
629
+ count: selectedRowsCount
630
+ }) : t("neetoTeamMembers.exportPane.description.allMembers");
631
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
632
+ isOpen: isOpen,
633
+ onClose: onClose,
634
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
635
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
636
+ "data-testid": "export-member-heading",
637
+ children: t("neetoTeamMembers.exportPane.title")
638
+ })
639
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
640
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
641
+ className: "space-y-4",
642
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
643
+ className: "text-sm",
644
+ children: description
645
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.RadioGroup, {
646
+ value: exportType,
647
+ onValueChange: function onValueChange(type) {
648
+ return setExportOption({
649
+ exportType: type
650
+ });
651
+ },
652
+ children: EXPORT_OPTIONS.map(function (_ref2) {
653
+ var type = _ref2.type,
654
+ bulkExportLabel = _ref2.bulkExportLabel,
655
+ dataTestid = _ref2.dataTestid;
656
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.RadioGroup.Item, {
657
+ "data-testid": dataTestid,
658
+ id: type,
659
+ label: bulkExportLabel,
660
+ value: type
661
+ }, type);
662
+ })
663
+ })]
664
+ })
665
+ }), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Footer, {
666
+ className: "gap-x-2",
667
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
668
+ "data-testid": "export-submit-button",
669
+ onClick: function onClick() {
670
+ return exportMembers({
671
+ "export": getParams()
672
+ });
673
+ },
674
+ children: t("neetoTeamMembers.buttons.export")
675
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
676
+ "data-testid": "export-cancel-button",
677
+ variant: "ghost",
678
+ onClick: onClose,
679
+ children: t("neetoTeamMembers.buttons.cancel")
680
+ })]
681
+ })]
682
+ });
683
+ };
684
+
685
+ function ownKeys$1(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; }
686
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
687
+ var Header = function Header(_ref) {
688
+ var _config$header, _config$header2;
689
+ var config = _ref.config,
690
+ setIsOpen = _ref.setIsOpen,
691
+ searchProps = _ref.searchProps;
692
+ return /*#__PURE__*/jsxRuntime.jsx(NeetoHeader__default.default, _objectSpread$1({
693
+ searchProps: searchProps,
694
+ title: initializers.taxonomies.member.plural,
695
+ actionBlock: /*#__PURE__*/jsxRuntime.jsx(HeaderActionBlock, {
696
+ isCreatePermissionGranted: config.permissions.create,
697
+ otherActionBlock: (_config$header = config.header) === null || _config$header === void 0 ? void 0 : _config$header.otherActionBlock,
698
+ rolesButtonProps: config.rolesButtonProps,
699
+ onClick: function onClick() {
700
+ return setIsOpen(ramda.assoc("manageMember", true));
701
+ }
702
+ })
703
+ }, config === null || config === void 0 || (_config$header2 = config.header) === null || _config$header2 === void 0 ? void 0 : _config$header2.otherProps));
704
+ };
705
+ var Header$1 = /*#__PURE__*/React.memo(Header);
706
+
707
+ 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; }
708
+ 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; }
709
+ var TeamMembers = function TeamMembers(_ref) {
710
+ var _config$fetchApiRespo, _config$table, _config$table$onDropd, _config$table2, _filters$pageSize3;
711
+ var config = _ref.config;
712
+ var _useTranslation = reactI18next.useTranslation(),
713
+ t = _useTranslation.t;
714
+ var history = reactRouterDom.useHistory();
715
+ var _useBreakpoints = reactUtils.useBreakpoints(),
716
+ isSize = _useBreakpoints.isSize;
717
+ var queryParams = reactUtils.useQueryParams();
718
+ var isViewPermissionGranted = config.permissions.view;
719
+ var isCreatePermissionGranted = config.permissions.create;
720
+ var _useState = React.useState(false),
721
+ _useState2 = _slicedToArray__default.default(_useState, 2),
722
+ isFiltersPaneOpen = _useState2[0],
723
+ setIsFiltersPaneOpen = _useState2[1];
724
+ var _useState3 = React.useState(false),
725
+ _useState4 = _slicedToArray__default.default(_useState3, 2),
726
+ isDownloadPaneOpen = _useState4[0],
727
+ setIsDownloadPaneOpen = _useState4[1];
728
+ var _useState5 = React.useState(false),
729
+ _useState6 = _slicedToArray__default.default(_useState5, 2),
730
+ hasBulkSelectedAllRows = _useState6[0],
731
+ setHasBulkSelectedAllRows = _useState6[1];
732
+ React.useEffect(function () {
733
+ handleMemberFilterChange();
734
+ }, []);
735
+ var _useFilters = useFilters({
736
+ config: config
737
+ }),
738
+ filters = _useFilters.filters,
739
+ setFilters = _useFilters.setFilters,
740
+ filterColumns = _useFilters.filterColumns,
741
+ searchProps = _useFilters.searchProps,
742
+ searchKeywordProps = _useFilters.searchKeywordProps;
743
+ var _useFetchMembers = useTeamsApi.useFetchMembers(_objectSpread({}, filters), {
744
+ enabled: isViewPermissionGranted
745
+ }),
746
+ team = _useFetchMembers.data,
747
+ isMembersLoading = _useFetchMembers.isLoading,
748
+ isMembersFetching = _useFetchMembers.isFetching;
749
+ var bulkParams = {
750
+ neetoFilters: filters["neetoFilters"],
751
+ considerAllTeamMembers: hasBulkSelectedAllRows
752
+ };
753
+ var _useFetchRoles = index$1.useFetchRoles({
754
+ select: function select(response) {
755
+ var _response$organizatio;
756
+ return ramda.reverse((_response$organizatio = response === null || response === void 0 ? void 0 : response.organizationRoles) !== null && _response$organizatio !== void 0 ? _response$organizatio : []);
757
+ },
758
+ enabled: isViewPermissionGranted
759
+ }),
760
+ roles = _useFetchRoles.data,
761
+ isRolesLoading = _useFetchRoles.isLoading;
762
+ var _useUpdateMember = useTeamsApi.useUpdateMember({
763
+ onSuccess: function onSuccess() {
764
+ var _filters$pageSize, _config$updateMember;
765
+ handleAlertClose();
766
+ v2_ManageMember.handlePageChange(setFilters, history)(constants.DEFAULT_PAGE_INDEX, (_filters$pageSize = filters.pageSize) !== null && _filters$pageSize !== void 0 ? _filters$pageSize : constants.DEFAULT_PAGE_SIZE);
767
+ config === null || config === void 0 || (_config$updateMember = config.updateMember) === null || _config$updateMember === void 0 || (_config$updateMember = _config$updateMember.onSuccess) === null || _config$updateMember === void 0 || _config$updateMember.callback();
768
+ }
769
+ }),
770
+ updateMember = _useUpdateMember.mutate,
771
+ isUpdatingMember = _useUpdateMember.isPending;
772
+ var filteredRoles = v2_ManageMember.getFilteredRoles(roles, config);
773
+ var _useTeams = useTeams({
774
+ config: config,
775
+ filters: filters,
776
+ setFilters: setFilters,
777
+ updateMember: updateMember
778
+ }),
779
+ handleAlertClose = _useTeams.handleAlertClose,
780
+ handleMemberFilterChange = _useTeams.handleMemberFilterChange,
781
+ handlePaneClose = _useTeams.handlePaneClose,
782
+ handleRowSelect = _useTeams.handleRowSelect,
783
+ handleRemoveMember = _useTeams.handleRemoveMember,
784
+ handleUpdateRole = _useTeams.handleUpdateRole,
785
+ handleUpdateStatus = _useTeams.handleUpdateStatus,
786
+ isOpen = _useTeams.isOpen,
787
+ selectedMember = _useTeams.selectedMember,
788
+ selectedRows = _useTeams.selectedRows,
789
+ setIsOpen = _useTeams.setIsOpen,
790
+ setSelectedRows = _useTeams.setSelectedRows;
791
+ var selectedRowsCount = hasBulkSelectedAllRows ? team === null || team === void 0 ? void 0 : team.membersCount : selectedRows.keys.length;
792
+ config === null || config === void 0 || (_config$fetchApiRespo = config.fetchApiResponse) === null || _config$fetchApiRespo === void 0 || _config$fetchApiRespo.call(config, {
793
+ team: team
794
+ });
795
+ var hasMembers = (team === null || team === void 0 ? void 0 : team.activeUsersCount) > 0;
796
+ var updateMemberAlertProps = {
797
+ member: selectedMember,
798
+ config: config
799
+ };
800
+ config === null || config === void 0 || (_config$table = config.table) === null || _config$table === void 0 || (_config$table$onDropd = _config$table.onDropdownClick) === null || _config$table$onDropd === void 0 || _config$table$onDropd.call(_config$table, {
801
+ handleUpdateRole: handleUpdateRole,
802
+ handleUpdateStatus: handleUpdateStatus
803
+ });
804
+ var columns = React.useMemo(function () {
805
+ return v2_ManageMember.getColumnData({
806
+ config: config,
807
+ handleUpdateRole: handleUpdateRole,
808
+ handleUpdateStatus: handleUpdateStatus,
809
+ isSize: isSize
810
+ });
811
+ }, [(_config$table2 = config.table) === null || _config$table2 === void 0 ? void 0 : _config$table2.dropdownProps] // eslint-disable-line react-hooks/exhaustive-deps
812
+ );
813
+ var _useTableConfiguratio = Columns.useTableConfigurations(v2_constants.TABLE_KEYS.TEAM_MEMBERS_TABLE, columns),
814
+ isTableConfigurationLoading = _useTableConfiguratio.isTableConfigurationLoading,
815
+ customizedColumns = _useTableConfiguratio.customizedColumns,
816
+ hideColumn = _useTableConfiguratio.hideColumn;
817
+ var handleNeetoFilterChange = function handleNeetoFilterChange(filters) {
818
+ setFilters(ramda.mergeLeft({
819
+ neetoFilters: filters,
820
+ page: constants.DEFAULT_PAGE_INDEX
821
+ }));
822
+ setSelectedRows(v2_ManageMember.DEFAULT_SELECTED_ROWS);
823
+ history.push(utils$1.buildUrl(window.location.pathname, ramda.mergeLeft({
824
+ page: constants.DEFAULT_PAGE_INDEX
825
+ }, queryParams)));
826
+ };
827
+ var _generateNoDataConten = v2_ManageMember.generateNoDataContent({
828
+ buttonProps: {
829
+ onClick: function onClick() {
830
+ return setIsOpen(ramda.assoc("manageMember", true));
831
+ },
832
+ disabled: !isCreatePermissionGranted
833
+ }
834
+ }),
835
+ noDataTitle = _generateNoDataConten.noDataTitle,
836
+ noDataButtonProps = _generateNoDataConten.noDataButtonProps;
837
+ if (isRolesLoading || isMembersLoading) {
838
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
839
+ className: "flex h-full min-h-screen w-full items-center justify-center",
840
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
841
+ });
842
+ }
843
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
844
+ children: [/*#__PURE__*/jsxRuntime.jsxs(Container__default.default, {
845
+ children: [/*#__PURE__*/jsxRuntime.jsx(Header$1, {
846
+ config: config,
847
+ setIsOpen: setIsOpen,
848
+ searchProps: hasMembers ? searchProps : null
849
+ }), /*#__PURE__*/jsxRuntime.jsx(SubHeader__default.default, {
850
+ className: "mb-4",
851
+ leftActionBlock: hasMembers && /*#__PURE__*/jsxRuntime.jsx(SubHeader.Left, {
852
+ bulkParams: bulkParams,
853
+ config: config,
854
+ selectedRows: selectedRows,
855
+ selectedRowsCount: selectedRowsCount,
856
+ setSelectedRows: setSelectedRows,
857
+ filteredCount: team === null || team === void 0 ? void 0 : team.membersCount,
858
+ roles: filteredRoles,
859
+ resetToFirstPage: function resetToFirstPage() {
860
+ var _filters$pageSize2;
861
+ return v2_ManageMember.handlePageChange(setFilters, history)(constants.DEFAULT_PAGE_INDEX, (_filters$pageSize2 = filters.pageSize) !== null && _filters$pageSize2 !== void 0 ? _filters$pageSize2 : constants.DEFAULT_PAGE_SIZE);
862
+ }
863
+ }),
864
+ rightActionBlock: hasMembers && /*#__PURE__*/jsxRuntime.jsx(SubHeader.Right, {
865
+ columns: columns,
866
+ filterColumns: filterColumns,
867
+ handleNeetoFilterChange: handleNeetoFilterChange,
868
+ isFiltersPaneOpen: isFiltersPaneOpen,
869
+ searchKeywordProps: searchKeywordProps,
870
+ setIsDownloadPaneOpen: setIsDownloadPaneOpen,
871
+ setIsFiltersPaneOpen: setIsFiltersPaneOpen
872
+ })
873
+ }), /*#__PURE__*/jsxRuntime.jsx(FiltersBar__default.default, {
874
+ className: "mb-4",
875
+ columns: filterColumns,
876
+ keyword: searchKeywordProps,
877
+ setIsPaneOpen: setIsFiltersPaneOpen,
878
+ onChange: handleNeetoFilterChange
879
+ }), /*#__PURE__*/jsxRuntime.jsx(ExportPane, {
880
+ hasBulkSelectedAllRows: hasBulkSelectedAllRows,
881
+ selectedRowsCount: selectedRowsCount,
882
+ appliedFilters: filters,
883
+ isOpen: isDownloadPaneOpen,
884
+ selectedMemberIds: selectedRows.keys,
885
+ onClose: function onClose() {
886
+ return setIsDownloadPaneOpen(false);
887
+ }
888
+ }), (team === null || team === void 0 ? void 0 : team.membersCount) !== 0 ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DataTable, {
889
+ fixedHeight: true,
890
+ allowRowClick: false,
891
+ columns: customizedColumns,
892
+ currentPage: parseInt(filters.page, v2_ManageMember.DEFAULT_RADIX),
893
+ data: (team === null || team === void 0 ? void 0 : team.members) || [],
894
+ "data-testid": "ntm-members-table",
895
+ loading: isMembersFetching || isTableConfigurationLoading,
896
+ pageSize: (_filters$pageSize3 = filters.pageSize) !== null && _filters$pageSize3 !== void 0 ? _filters$pageSize3 : constants.DEFAULT_PAGE_SIZE,
897
+ selectedRowKeys: selectedRows.keys,
898
+ totalCount: team === null || team === void 0 ? void 0 : team.membersCount,
899
+ bulkSelectAllRowsProps: {
900
+ selectAllRowMessage: t("neetoTeamMembers.helpers.selectedMembers", {
901
+ count: selectedRowsCount
902
+ }),
903
+ selectAllRowButtonLabel: t("neetoTeamMembers.helpers.selectAll", {
904
+ count: team === null || team === void 0 ? void 0 : team.membersCount
905
+ }),
906
+ setBulkSelectedAllRows: setHasBulkSelectedAllRows
907
+ },
908
+ onColumnHide: function onColumnHide(_ref2) {
909
+ var key = _ref2.key;
910
+ return hideColumn(key);
911
+ },
912
+ onPageChange: v2_ManageMember.handlePageChange(setFilters, history),
913
+ onRowSelect: handleRowSelect
914
+ }) : /*#__PURE__*/jsxRuntime.jsx("div", {
915
+ className: "flex h-full w-full items-center justify-center",
916
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Empty, {
917
+ title: noDataTitle,
918
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
919
+ "data-testid": noDataButtonProps["data-testid"],
920
+ disabled: noDataButtonProps.disabled,
921
+ onClick: noDataButtonProps.onClick,
922
+ children: noDataButtonProps.label
923
+ })
924
+ })
925
+ })]
926
+ }), /*#__PURE__*/jsxRuntime.jsx(v2_ManageMember.ManageMember, {
927
+ config: config,
928
+ selectedMember: selectedMember,
929
+ componentConfig: {
930
+ isOpen: isOpen.manageMember
931
+ },
932
+ roles: filteredRoles,
933
+ onComplete: handlePaneClose
934
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Alert, {
935
+ cancelButtonLabel: t("neetoTeamMembers.buttons.cancel"),
936
+ isOpen: isOpen.alert,
937
+ isSubmitting: isUpdatingMember,
938
+ message: v2_ManageMember.renderUpdateAlert("message", updateMemberAlertProps),
939
+ submitButtonLabel: t("neetoTeamMembers.buttons.remove"),
940
+ title: v2_ManageMember.renderUpdateAlert("title", updateMemberAlertProps),
941
+ onClose: handleAlertClose,
942
+ onSubmit: handleRemoveMember
943
+ })]
944
+ });
945
+ };
946
+ var index = reactUtils.withTitle(withReactQuery.withReactQuery(TeamMembers), initializers.taxonomies.member.plural);
947
+
948
+ module.exports = index;
949
+ //# sourceMappingURL=TeamMembers.js.map