@bigbinary/neeto-team-members-frontend 5.0.63 → 5.0.64

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.
@@ -0,0 +1,318 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
5
+ var primitives = require('@bigbinary/neeto-atoms/primitives');
6
+ var i18next = require('i18next');
7
+ var lucideReact = require('lucide-react');
8
+ var neetoCist = require('@bigbinary/neeto-cist');
9
+ var constants = require('@bigbinary/neeto-commons-frontend/v2/constants');
10
+ var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
11
+ var utils = require('@bigbinary/neeto-commons-frontend/v2/utils');
12
+ var MoreDropdown = require('@bigbinary/neeto-molecules/v2/MoreDropdown');
13
+ var ramda = require('ramda');
14
+ var reactI18next = require('react-i18next');
15
+ var jsxRuntime = require('react/jsx-runtime');
16
+
17
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
+
19
+ var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
20
+ var i18next__default = /*#__PURE__*/_interopDefault(i18next);
21
+ var MoreDropdown__default = /*#__PURE__*/_interopDefault(MoreDropdown);
22
+
23
+ var _getQueryParams = utils.getQueryParams(),
24
+ page = _getQueryParams.page,
25
+ pageSize = _getQueryParams.pageSize;
26
+ var DEFAULT_RADIX = 10;
27
+ var DEFAULT_IS_OPEN_VALUES = {
28
+ menuBar: false,
29
+ manageMember: false,
30
+ alert: false
31
+ };
32
+ var DEFAULT_FILTER_VALUES = {
33
+ page: ramda.clamp(1, Infinity, parseInt(page)) || constants.DEFAULT_PAGE_INDEX,
34
+ pageSize: ramda.clamp(10, 100, parseInt(pageSize)) || constants.DEFAULT_PAGE_SIZE,
35
+ sortBy: undefined,
36
+ orderBy: undefined,
37
+ neetoFilters: []
38
+ };
39
+ var DEFAULT_SELECTED_ROWS = {
40
+ active: [],
41
+ emails: [],
42
+ keys: [],
43
+ displayNames: []
44
+ };
45
+
46
+ 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; }
47
+ 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; }
48
+ var renderNameColumn = function renderNameColumn(_ref) {
49
+ var config = _ref.config,
50
+ handleUpdateRole = _ref.handleUpdateRole,
51
+ handleUpdateStatus = _ref.handleUpdateStatus,
52
+ tableData = _ref.tableData;
53
+ var name = tableData.displayName,
54
+ imageUrl = tableData.profileImageUrl;
55
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
56
+ className: "flex w-full justify-between gap-3",
57
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
58
+ className: "flex items-center gap-2",
59
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Avatar, {
60
+ className: "size-8",
61
+ user: {
62
+ name: name,
63
+ imageUrl: imageUrl
64
+ }
65
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
66
+ className: "whitespace-normal",
67
+ "data-testid": "ntm-member-name-".concat(utils.hyphenize(name)),
68
+ variant: "body3",
69
+ children: name
70
+ })]
71
+ }), renderDropdownButton({
72
+ config: config,
73
+ handleUpdateRole: handleUpdateRole,
74
+ handleUpdateStatus: handleUpdateStatus,
75
+ tableData: tableData
76
+ })]
77
+ });
78
+ };
79
+ var renderDropdownButton = function renderDropdownButton(_ref2) {
80
+ var _config$table, _config$table$dropdow;
81
+ var config = _ref2.config,
82
+ handleUpdateRole = _ref2.handleUpdateRole,
83
+ handleUpdateStatus = _ref2.handleUpdateStatus,
84
+ tableData = _ref2.tableData;
85
+ return /*#__PURE__*/jsxRuntime.jsx(MoreDropdown__default.default, {
86
+ isDisabled: ramda.not(config.permissions.update),
87
+ dropdownButtonProps: {
88
+ "data-testid": "ntm-members-table-row-dropdown-button",
89
+ tooltipProps: {
90
+ content: i18next__default.default.t("neetoTeamMembers.tooltips.noPermissionToEditMembers"),
91
+ disabled: config.permissions.update,
92
+ position: "top"
93
+ }
94
+ },
95
+ menuTopChildren: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
96
+ children: [/*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuItem, {
97
+ className: "cursor-pointer",
98
+ "data-testid": "ntm-edit-member-button",
99
+ onClick: function onClick() {
100
+ return handleUpdateRole(tableData);
101
+ },
102
+ children: i18next__default.default.t("neetoTeamMembers.common.edit")
103
+ }), config === null || config === void 0 || (_config$table = config.table) === null || _config$table === void 0 || (_config$table$dropdow = _config$table.dropdownProps) === null || _config$table$dropdow === void 0 ? void 0 : _config$table$dropdow.call(_config$table, tableData), /*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuItem, {
104
+ className: "cursor-pointer",
105
+ "data-testid": "ntm-deactivate-member-button",
106
+ onClick: function onClick() {
107
+ return handleUpdateStatus(tableData);
108
+ },
109
+ children: i18next__default.default.t("neetoTeamMembers.common.remove")
110
+ })]
111
+ })
112
+ });
113
+ };
114
+ var getDefaultAlertTitle = function getDefaultAlertTitle(_ref3) {
115
+ var member = _ref3.member;
116
+ return member !== null && member !== void 0 && member.active ? i18next__default.default.t("neetoTeamMembers.common.remove_", {
117
+ what: initializers.taxonomies.member.singular
118
+ }) : i18next__default.default.t("neetoTeamMembers.common.activate_", {
119
+ what: initializers.taxonomies.member.singular
120
+ });
121
+ };
122
+ var getDefaultAlertMessage = function getDefaultAlertMessage(_ref4) {
123
+ var member = _ref4.member;
124
+ return /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
125
+ i18nKey: "neetoTeamMembers.alerts.messages.removeMember",
126
+ values: _objectSpread(_objectSpread({}, constants.SINGULAR), {}, {
127
+ person: member === null || member === void 0 ? void 0 : member.displayName
128
+ })
129
+ });
130
+ };
131
+ var getDefaultColumns = function getDefaultColumns(_ref5) {
132
+ var config = _ref5.config,
133
+ handleUpdateRole = _ref5.handleUpdateRole,
134
+ handleUpdateStatus = _ref5.handleUpdateStatus,
135
+ otherColumns = _ref5.otherColumns,
136
+ isSize = _ref5.isSize;
137
+ return [{
138
+ accessorKey: "name",
139
+ id: "name",
140
+ size: 300,
141
+ enablePinning: neetoCist.isNotEmpty(otherColumns) && !isSize("mobile"),
142
+ cell: function cell(_ref6) {
143
+ var row = _ref6.row;
144
+ return renderNameColumn({
145
+ config: config,
146
+ handleUpdateRole: handleUpdateRole,
147
+ handleUpdateStatus: handleUpdateStatus,
148
+ tableData: row.original
149
+ });
150
+ },
151
+ enableSorting: true,
152
+ header: i18next__default.default.t("neetoTeamMembers.common.name"),
153
+ enableHiding: false
154
+ }, {
155
+ accessorKey: "email",
156
+ id: "email",
157
+ enableSorting: true,
158
+ size: 350,
159
+ header: i18next__default.default.t("neetoTeamMembers.common.email", constants.SINGULAR)
160
+ }, {
161
+ accessorKey: "role",
162
+ enableSorting: true,
163
+ size: 200,
164
+ header: i18next__default.default.t("neetoTeamMembers.common.role", constants.SINGULAR)
165
+ }];
166
+ };
167
+ var removeExcludedRole = ramda.curry(function (excludedRoles, role) {
168
+ return !(excludedRoles !== null && excludedRoles !== void 0 && excludedRoles.includes(role === null || role === void 0 ? void 0 : role.name));
169
+ });
170
+ var getColumnData = function getColumnData(_ref7) {
171
+ var _config$otherColumns;
172
+ var config = _ref7.config,
173
+ handleUpdateRole = _ref7.handleUpdateRole,
174
+ handleUpdateStatus = _ref7.handleUpdateStatus,
175
+ isSize = _ref7.isSize;
176
+ var otherColumns = (_config$otherColumns = config === null || config === void 0 ? void 0 : config.otherColumns) !== null && _config$otherColumns !== void 0 ? _config$otherColumns : [];
177
+ var defaultColumns = getDefaultColumns({
178
+ config: config,
179
+ handleUpdateRole: handleUpdateRole,
180
+ handleUpdateStatus: handleUpdateStatus,
181
+ otherColumns: otherColumns,
182
+ isSize: isSize
183
+ });
184
+ var columns = defaultColumns.map(function (column) {
185
+ var otherColumn = otherColumns.find(function (col) {
186
+ return ramda.identical(col.accessorKey || col.id, column.accessorKey || column.id);
187
+ });
188
+ return otherColumn || column;
189
+ });
190
+ otherColumns.forEach(function (otherColumn) {
191
+ var key = otherColumn.accessorKey || otherColumn.id;
192
+ var exists = columns.find(function (col) {
193
+ return ramda.identical(col.accessorKey || col.id, key);
194
+ });
195
+ if (!exists) columns.push(otherColumn);
196
+ });
197
+ return columns;
198
+ };
199
+ var renderUpdateAlert = function renderUpdateAlert(field, props) {
200
+ var _config$alert;
201
+ var config = props.config,
202
+ member = props.member;
203
+ if (config !== null && config !== void 0 && (_config$alert = config.alert) !== null && _config$alert !== void 0 && _config$alert[field]) {
204
+ var _config$alert2;
205
+ return (_config$alert2 = config.alert) === null || _config$alert2 === void 0 ? void 0 : _config$alert2[field]({
206
+ active: member === null || member === void 0 ? void 0 : member.active,
207
+ id: member === null || member === void 0 ? void 0 : member.id,
208
+ name: member === null || member === void 0 ? void 0 : member.displayName
209
+ });
210
+ }
211
+ return field === "title" ? getDefaultAlertTitle(props) : getDefaultAlertMessage(props);
212
+ };
213
+ var handlePageChange = function handlePageChange(setFilters, history) {
214
+ return function (page, pageSize) {
215
+ var searchParams = utils.getQueryParams({
216
+ toCamelCase: false
217
+ });
218
+ history.replace(utils.buildUrl(window.location.pathname, ramda.mergeLeft({
219
+ page: page,
220
+ page_size: pageSize
221
+ }, searchParams)));
222
+ setFilters(ramda.mergeLeft({
223
+ page: page,
224
+ pageSize: pageSize
225
+ }));
226
+ };
227
+ };
228
+ var defaultNeetoFiltersColumns = function defaultNeetoFiltersColumns() {
229
+ return [{
230
+ key: "email",
231
+ label: i18next__default.default.t("neetoTeamMembers.common.email", constants.SINGULAR),
232
+ model: "User",
233
+ node: "email",
234
+ showRuleSelector: true,
235
+ type: "text"
236
+ }, {
237
+ key: "name",
238
+ label: i18next__default.default.t("neetoTeamMembers.common.name"),
239
+ model: "User",
240
+ node: "first_name,last_name",
241
+ type: "text",
242
+ values: ""
243
+ }, {
244
+ key: "role",
245
+ label: i18next__default.default.t("neetoTeamMembers.common.role", constants.SINGULAR),
246
+ model: "OrganizationRole",
247
+ node: "organization_role.name",
248
+ type: "multi_option",
249
+ values: []
250
+ }];
251
+ };
252
+ var buildFilterColumns = function buildFilterColumns(_ref8) {
253
+ var _ref8$options = _ref8.options,
254
+ _ref8$options$emails = _ref8$options.emails,
255
+ emails = _ref8$options$emails === void 0 ? [] : _ref8$options$emails,
256
+ _ref8$options$organiz = _ref8$options.organizationRoles,
257
+ organizationRoles = _ref8$options$organiz === void 0 ? [] : _ref8$options$organiz,
258
+ _ref8$emailConfig = _ref8.emailConfig,
259
+ setSearchTerm = _ref8$emailConfig.setSearchTerm,
260
+ isLoading = _ref8$emailConfig.isLoading;
261
+ var columnValues = {
262
+ email: emails.map(neetoCist.toLabelAndValue),
263
+ role: organizationRoles.map(neetoCist.toLabelAndValue)
264
+ };
265
+ return defaultNeetoFiltersColumns().map(function (column) {
266
+ var values = columnValues[column.key];
267
+ if (column.key === "role") return ramda.assoc("values", values, column);
268
+ var emailConfig = {
269
+ values: values,
270
+ isLoading: isLoading,
271
+ onInputChange: setSearchTerm
272
+ };
273
+ return ramda.mergeLeft(emailConfig, column);
274
+ });
275
+ };
276
+ var getFilteredRoles = function getFilteredRoles() {
277
+ var roles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
278
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
279
+ return ramda.filter(removeExcludedRole(config === null || config === void 0 ? void 0 : config.excludedRoles), roles);
280
+ };
281
+ var generateNoDataContent = function generateNoDataContent(_ref9) {
282
+ var buttonProps = _ref9.buttonProps;
283
+ var disabled = buttonProps.disabled,
284
+ onClick = buttonProps.onClick;
285
+ var noDataTitle = i18next__default.default.t("neetoTeamMembers.common.memberEmptyTitle", {
286
+ what: initializers.taxonomies.member.plural
287
+ });
288
+ var noDataDescription = i18next__default.default.t("neetoTeamMembers.common.memberEmptyDescription", {
289
+ what: initializers.taxonomies.member.plural
290
+ });
291
+ var noDataButtonProps = {
292
+ "data-testid": "ntm-add-member-button",
293
+ disabled: disabled,
294
+ label: i18next__default.default.t("neetoTeamMembers.common.addNew_", {
295
+ what: initializers.taxonomies.member.singular
296
+ }),
297
+ onClick: onClick
298
+ };
299
+ return {
300
+ noDataTitle: noDataTitle,
301
+ noDataDescription: noDataDescription,
302
+ noDataIcon: lucideReact.Users,
303
+ noDataButtonProps: noDataButtonProps
304
+ };
305
+ };
306
+
307
+ exports.DEFAULT_FILTER_VALUES = DEFAULT_FILTER_VALUES;
308
+ exports.DEFAULT_IS_OPEN_VALUES = DEFAULT_IS_OPEN_VALUES;
309
+ exports.DEFAULT_RADIX = DEFAULT_RADIX;
310
+ exports.DEFAULT_SELECTED_ROWS = DEFAULT_SELECTED_ROWS;
311
+ exports.buildFilterColumns = buildFilterColumns;
312
+ exports.defaultNeetoFiltersColumns = defaultNeetoFiltersColumns;
313
+ exports.generateNoDataContent = generateNoDataContent;
314
+ exports.getColumnData = getColumnData;
315
+ exports.getFilteredRoles = getFilteredRoles;
316
+ exports.handlePageChange = handlePageChange;
317
+ exports.renderUpdateAlert = renderUpdateAlert;
318
+ //# sourceMappingURL=utils-BFRNzhia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-BFRNzhia.js","sources":["../app/javascript/src/v2/components/TeamMembers/constants.js","../app/javascript/src/v2/components/TeamMembers/utils.jsx"],"sourcesContent":["import {\n DEFAULT_PAGE_INDEX,\n DEFAULT_PAGE_SIZE,\n} from \"neetocommons/v2/constants\";\nimport { getQueryParams } from \"neetocommons/v2/utils\";\nimport { clamp } from \"ramda\";\n\nconst { page, pageSize } = getQueryParams();\n\nexport const DEFAULT_RADIX = 10;\n\nexport const DEFAULT_IS_OPEN_VALUES = {\n menuBar: false,\n manageMember: false,\n alert: false,\n};\n\nexport const DEFAULT_FILTER_VALUES = {\n page: clamp(1, Infinity, parseInt(page)) || DEFAULT_PAGE_INDEX,\n pageSize: clamp(10, 100, parseInt(pageSize)) || DEFAULT_PAGE_SIZE,\n sortBy: undefined,\n orderBy: undefined,\n neetoFilters: [],\n};\n\nexport const DEFAULT_SELECTED_ROWS = {\n active: [],\n emails: [],\n keys: [],\n displayNames: [],\n};\n\nexport const TEAM_MEMBERS_HIDDEN_COLUMNS = \"TEAM_MEMBERS_TABLE_HIDDEN_COLUMNS\";\n","import { Avatar, Typography } from \"@bigbinary/neeto-atoms\";\nimport { DropdownMenuItem } from \"@bigbinary/neeto-atoms/primitives\";\nimport i18next from \"i18next\";\nimport { Users } from \"lucide-react\";\nimport { isNotEmpty, toLabelAndValue } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/v2/constants\";\nimport { taxonomies } from \"neetocommons/v2/initializers\";\nimport { buildUrl, getQueryParams, hyphenize } from \"neetocommons/v2/utils\";\nimport MoreDropdown from \"neetomolecules/v2/MoreDropdown\";\nimport { assoc, curry, filter, identical, mergeLeft, not } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport { DEFAULT_RADIX } from \"./constants\";\n\nconst renderNameColumn = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n}) => {\n const { displayName: name, profileImageUrl: imageUrl } = tableData;\n\n return (\n <div className=\"flex w-full justify-between gap-3\">\n <div className=\"flex items-center gap-2\">\n <Avatar className=\"size-8\" user={{ name, imageUrl }} />\n <Typography\n className=\"whitespace-normal\"\n data-testid={`ntm-member-name-${hyphenize(name)}`}\n variant=\"body3\"\n >\n {name}\n </Typography>\n </div>\n {renderDropdownButton({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n })}\n </div>\n );\n};\n\nconst renderDropdownButton = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n}) => (\n <MoreDropdown\n isDisabled={not(config.permissions.update)}\n dropdownButtonProps={{\n \"data-testid\": \"ntm-members-table-row-dropdown-button\",\n tooltipProps: {\n content: i18next.t(\n \"neetoTeamMembers.tooltips.noPermissionToEditMembers\"\n ),\n disabled: config.permissions.update,\n position: \"top\",\n },\n }}\n menuTopChildren={\n <>\n <DropdownMenuItem\n className=\"cursor-pointer\"\n data-testid=\"ntm-edit-member-button\"\n onClick={() => handleUpdateRole(tableData)}\n >\n {i18next.t(\"neetoTeamMembers.common.edit\")}\n </DropdownMenuItem>\n {config?.table?.dropdownProps?.(tableData)}\n <DropdownMenuItem\n className=\"cursor-pointer\"\n data-testid=\"ntm-deactivate-member-button\"\n onClick={() => handleUpdateStatus(tableData)}\n >\n {i18next.t(\"neetoTeamMembers.common.remove\")}\n </DropdownMenuItem>\n </>\n }\n />\n);\n\nconst getDefaultAlertTitle = ({ member }) =>\n member?.active\n ? i18next.t(\"neetoTeamMembers.common.remove_\", {\n what: taxonomies.member.singular,\n })\n : i18next.t(\"neetoTeamMembers.common.activate_\", {\n what: taxonomies.member.singular,\n });\n\nconst getDefaultAlertMessage = ({ member }) => (\n <Trans\n i18nKey=\"neetoTeamMembers.alerts.messages.removeMember\"\n values={{ ...SINGULAR, person: member?.displayName }}\n />\n);\n\nconst getDefaultColumns = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n otherColumns,\n isSize,\n}) => [\n {\n accessorKey: \"name\",\n id: \"name\",\n size: 300,\n enablePinning: isNotEmpty(otherColumns) && !isSize(\"mobile\"),\n cell: ({ row }) =>\n renderNameColumn({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData: row.original,\n }),\n enableSorting: true,\n header: i18next.t(\"neetoTeamMembers.common.name\"),\n enableHiding: false,\n },\n {\n accessorKey: \"email\",\n id: \"email\",\n enableSorting: true,\n size: 350,\n header: i18next.t(\"neetoTeamMembers.common.email\", SINGULAR),\n },\n {\n accessorKey: \"role\",\n enableSorting: true,\n size: 200,\n header: i18next.t(\"neetoTeamMembers.common.role\", SINGULAR),\n },\n];\n\nconst removeExcludedRole = curry(\n (excludedRoles, role) => !excludedRoles?.includes(role?.name)\n);\n\nexport const getColumnData = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n isSize,\n}) => {\n const otherColumns = config?.otherColumns ?? [];\n const defaultColumns = getDefaultColumns({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n otherColumns,\n isSize,\n });\n\n const columns = defaultColumns.map(column => {\n const otherColumn = otherColumns.find(col =>\n identical(col.accessorKey || col.id, column.accessorKey || column.id)\n );\n\n return otherColumn || column;\n });\n\n otherColumns.forEach(otherColumn => {\n const key = otherColumn.accessorKey || otherColumn.id;\n const exists = columns.find(col =>\n identical(col.accessorKey || col.id, key)\n );\n if (!exists) columns.push(otherColumn);\n });\n\n return columns;\n};\n\nexport const renderUpdateAlert = (field, props) => {\n const { config, member } = props;\n\n if (config?.alert?.[field]) {\n return config.alert?.[field]({\n active: member?.active,\n id: member?.id,\n name: member?.displayName,\n });\n }\n\n return field === \"title\"\n ? getDefaultAlertTitle(props)\n : getDefaultAlertMessage(props);\n};\n\nexport const handlePageChange = (setFilters, history) => (page, pageSize) => {\n const searchParams = getQueryParams({ toCamelCase: false });\n history.replace(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, searchParams)\n )\n );\n setFilters(mergeLeft({ page, pageSize }));\n};\n\nexport const renderPaginationProps = size => ({\n pageSize: parseInt(size, DEFAULT_RADIX),\n});\n\nexport const defaultNeetoFiltersColumns = () => [\n {\n key: \"email\",\n label: i18next.t(\"neetoTeamMembers.common.email\", SINGULAR),\n model: \"User\",\n node: \"email\",\n showRuleSelector: true,\n type: \"text\",\n },\n {\n key: \"name\",\n label: i18next.t(\"neetoTeamMembers.common.name\"),\n model: \"User\",\n node: \"first_name,last_name\",\n type: \"text\",\n values: \"\",\n },\n {\n key: \"role\",\n label: i18next.t(\"neetoTeamMembers.common.role\", SINGULAR),\n model: \"OrganizationRole\",\n node: \"organization_role.name\",\n type: \"multi_option\",\n values: [],\n },\n];\n\nexport const buildFilterColumns = ({\n options: { emails = [], organizationRoles = [] },\n emailConfig: { setSearchTerm, isLoading },\n}) => {\n const columnValues = {\n email: emails.map(toLabelAndValue),\n role: organizationRoles.map(toLabelAndValue),\n };\n\n return defaultNeetoFiltersColumns().map(column => {\n const values = columnValues[column.key];\n if (column.key === \"role\") return assoc(\"values\", values, column);\n\n const emailConfig = {\n values,\n isLoading,\n onInputChange: setSearchTerm,\n };\n\n return mergeLeft(emailConfig, column);\n });\n};\n\nexport const getFilteredRoles = (roles = [], config = {}) =>\n filter(removeExcludedRole(config?.excludedRoles), roles);\n\nexport const generateNoDataContent = ({ buttonProps }) => {\n const { disabled, onClick } = buttonProps;\n\n const noDataTitle = i18next.t(\"neetoTeamMembers.common.memberEmptyTitle\", {\n what: taxonomies.member.plural,\n });\n\n const noDataDescription = i18next.t(\n \"neetoTeamMembers.common.memberEmptyDescription\",\n { what: taxonomies.member.plural }\n );\n\n const noDataButtonProps = {\n \"data-testid\": \"ntm-add-member-button\",\n disabled,\n label: i18next.t(\"neetoTeamMembers.common.addNew_\", {\n what: taxonomies.member.singular,\n }),\n onClick,\n };\n\n return {\n noDataTitle,\n noDataDescription,\n noDataIcon: Users,\n noDataButtonProps,\n };\n};\n"],"names":["_getQueryParams","getQueryParams","page","pageSize","DEFAULT_RADIX","DEFAULT_IS_OPEN_VALUES","menuBar","manageMember","alert","DEFAULT_FILTER_VALUES","clamp","Infinity","parseInt","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","sortBy","undefined","orderBy","neetoFilters","DEFAULT_SELECTED_ROWS","active","emails","keys","displayNames","renderNameColumn","_ref","config","handleUpdateRole","handleUpdateStatus","tableData","name","displayName","imageUrl","profileImageUrl","_jsxs","className","children","_jsx","Avatar","user","Typography","concat","hyphenize","variant","renderDropdownButton","_ref2","_config$table","_config$table$dropdow","MoreDropdown","isDisabled","not","permissions","update","dropdownButtonProps","tooltipProps","content","i18next","t","disabled","position","menuTopChildren","_Fragment","DropdownMenuItem","onClick","table","dropdownProps","call","getDefaultAlertTitle","_ref3","member","what","taxonomies","singular","getDefaultAlertMessage","_ref4","Trans","i18nKey","values","_objectSpread","SINGULAR","person","getDefaultColumns","_ref5","otherColumns","isSize","accessorKey","id","size","enablePinning","isNotEmpty","cell","_ref6","row","original","enableSorting","header","enableHiding","removeExcludedRole","curry","excludedRoles","role","includes","getColumnData","_ref7","_config$otherColumns","defaultColumns","columns","map","column","otherColumn","find","col","identical","forEach","key","exists","push","renderUpdateAlert","field","props","_config$alert","_config$alert2","handlePageChange","setFilters","history","searchParams","toCamelCase","replace","buildUrl","window","location","pathname","mergeLeft","page_size","defaultNeetoFiltersColumns","label","model","node","showRuleSelector","type","buildFilterColumns","_ref8","_ref8$options","options","_ref8$options$emails","_ref8$options$organiz","organizationRoles","_ref8$emailConfig","emailConfig","setSearchTerm","isLoading","columnValues","email","toLabelAndValue","assoc","onInputChange","getFilteredRoles","roles","arguments","length","filter","generateNoDataContent","_ref9","buttonProps","noDataTitle","plural","noDataDescription","noDataButtonProps","noDataIcon","Users"],"mappings":"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"}
@@ -0,0 +1,300 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { Avatar, Typography } from '@bigbinary/neeto-atoms';
3
+ import { DropdownMenuItem } from '@bigbinary/neeto-atoms/primitives';
4
+ import i18next from 'i18next';
5
+ import { Users } from 'lucide-react';
6
+ import { isNotEmpty, toLabelAndValue } from '@bigbinary/neeto-cist';
7
+ import { DEFAULT_PAGE_SIZE, DEFAULT_PAGE_INDEX, SINGULAR } from '@bigbinary/neeto-commons-frontend/v2/constants';
8
+ import { taxonomies } from '@bigbinary/neeto-commons-frontend/v2/initializers';
9
+ import { getQueryParams, buildUrl, hyphenize } from '@bigbinary/neeto-commons-frontend/v2/utils';
10
+ import MoreDropdown from '@bigbinary/neeto-molecules/v2/MoreDropdown';
11
+ import { clamp, curry, mergeLeft, filter, identical, not, assoc } from 'ramda';
12
+ import { Trans } from 'react-i18next';
13
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
14
+
15
+ var _getQueryParams = getQueryParams(),
16
+ page = _getQueryParams.page,
17
+ pageSize = _getQueryParams.pageSize;
18
+ var DEFAULT_RADIX = 10;
19
+ var DEFAULT_IS_OPEN_VALUES = {
20
+ menuBar: false,
21
+ manageMember: false,
22
+ alert: false
23
+ };
24
+ var DEFAULT_FILTER_VALUES = {
25
+ page: clamp(1, Infinity, parseInt(page)) || DEFAULT_PAGE_INDEX,
26
+ pageSize: clamp(10, 100, parseInt(pageSize)) || DEFAULT_PAGE_SIZE,
27
+ sortBy: undefined,
28
+ orderBy: undefined,
29
+ neetoFilters: []
30
+ };
31
+ var DEFAULT_SELECTED_ROWS = {
32
+ active: [],
33
+ emails: [],
34
+ keys: [],
35
+ displayNames: []
36
+ };
37
+
38
+ 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; }
39
+ 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(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; }
40
+ var renderNameColumn = function renderNameColumn(_ref) {
41
+ var config = _ref.config,
42
+ handleUpdateRole = _ref.handleUpdateRole,
43
+ handleUpdateStatus = _ref.handleUpdateStatus,
44
+ tableData = _ref.tableData;
45
+ var name = tableData.displayName,
46
+ imageUrl = tableData.profileImageUrl;
47
+ return /*#__PURE__*/jsxs("div", {
48
+ className: "flex w-full justify-between gap-3",
49
+ children: [/*#__PURE__*/jsxs("div", {
50
+ className: "flex items-center gap-2",
51
+ children: [/*#__PURE__*/jsx(Avatar, {
52
+ className: "size-8",
53
+ user: {
54
+ name: name,
55
+ imageUrl: imageUrl
56
+ }
57
+ }), /*#__PURE__*/jsx(Typography, {
58
+ className: "whitespace-normal",
59
+ "data-testid": "ntm-member-name-".concat(hyphenize(name)),
60
+ variant: "body3",
61
+ children: name
62
+ })]
63
+ }), renderDropdownButton({
64
+ config: config,
65
+ handleUpdateRole: handleUpdateRole,
66
+ handleUpdateStatus: handleUpdateStatus,
67
+ tableData: tableData
68
+ })]
69
+ });
70
+ };
71
+ var renderDropdownButton = function renderDropdownButton(_ref2) {
72
+ var _config$table, _config$table$dropdow;
73
+ var config = _ref2.config,
74
+ handleUpdateRole = _ref2.handleUpdateRole,
75
+ handleUpdateStatus = _ref2.handleUpdateStatus,
76
+ tableData = _ref2.tableData;
77
+ return /*#__PURE__*/jsx(MoreDropdown, {
78
+ isDisabled: not(config.permissions.update),
79
+ dropdownButtonProps: {
80
+ "data-testid": "ntm-members-table-row-dropdown-button",
81
+ tooltipProps: {
82
+ content: i18next.t("neetoTeamMembers.tooltips.noPermissionToEditMembers"),
83
+ disabled: config.permissions.update,
84
+ position: "top"
85
+ }
86
+ },
87
+ menuTopChildren: /*#__PURE__*/jsxs(Fragment, {
88
+ children: [/*#__PURE__*/jsx(DropdownMenuItem, {
89
+ className: "cursor-pointer",
90
+ "data-testid": "ntm-edit-member-button",
91
+ onClick: function onClick() {
92
+ return handleUpdateRole(tableData);
93
+ },
94
+ children: i18next.t("neetoTeamMembers.common.edit")
95
+ }), config === null || config === void 0 || (_config$table = config.table) === null || _config$table === void 0 || (_config$table$dropdow = _config$table.dropdownProps) === null || _config$table$dropdow === void 0 ? void 0 : _config$table$dropdow.call(_config$table, tableData), /*#__PURE__*/jsx(DropdownMenuItem, {
96
+ className: "cursor-pointer",
97
+ "data-testid": "ntm-deactivate-member-button",
98
+ onClick: function onClick() {
99
+ return handleUpdateStatus(tableData);
100
+ },
101
+ children: i18next.t("neetoTeamMembers.common.remove")
102
+ })]
103
+ })
104
+ });
105
+ };
106
+ var getDefaultAlertTitle = function getDefaultAlertTitle(_ref3) {
107
+ var member = _ref3.member;
108
+ return member !== null && member !== void 0 && member.active ? i18next.t("neetoTeamMembers.common.remove_", {
109
+ what: taxonomies.member.singular
110
+ }) : i18next.t("neetoTeamMembers.common.activate_", {
111
+ what: taxonomies.member.singular
112
+ });
113
+ };
114
+ var getDefaultAlertMessage = function getDefaultAlertMessage(_ref4) {
115
+ var member = _ref4.member;
116
+ return /*#__PURE__*/jsx(Trans, {
117
+ i18nKey: "neetoTeamMembers.alerts.messages.removeMember",
118
+ values: _objectSpread(_objectSpread({}, SINGULAR), {}, {
119
+ person: member === null || member === void 0 ? void 0 : member.displayName
120
+ })
121
+ });
122
+ };
123
+ var getDefaultColumns = function getDefaultColumns(_ref5) {
124
+ var config = _ref5.config,
125
+ handleUpdateRole = _ref5.handleUpdateRole,
126
+ handleUpdateStatus = _ref5.handleUpdateStatus,
127
+ otherColumns = _ref5.otherColumns,
128
+ isSize = _ref5.isSize;
129
+ return [{
130
+ accessorKey: "name",
131
+ id: "name",
132
+ size: 300,
133
+ enablePinning: isNotEmpty(otherColumns) && !isSize("mobile"),
134
+ cell: function cell(_ref6) {
135
+ var row = _ref6.row;
136
+ return renderNameColumn({
137
+ config: config,
138
+ handleUpdateRole: handleUpdateRole,
139
+ handleUpdateStatus: handleUpdateStatus,
140
+ tableData: row.original
141
+ });
142
+ },
143
+ enableSorting: true,
144
+ header: i18next.t("neetoTeamMembers.common.name"),
145
+ enableHiding: false
146
+ }, {
147
+ accessorKey: "email",
148
+ id: "email",
149
+ enableSorting: true,
150
+ size: 350,
151
+ header: i18next.t("neetoTeamMembers.common.email", SINGULAR)
152
+ }, {
153
+ accessorKey: "role",
154
+ enableSorting: true,
155
+ size: 200,
156
+ header: i18next.t("neetoTeamMembers.common.role", SINGULAR)
157
+ }];
158
+ };
159
+ var removeExcludedRole = curry(function (excludedRoles, role) {
160
+ return !(excludedRoles !== null && excludedRoles !== void 0 && excludedRoles.includes(role === null || role === void 0 ? void 0 : role.name));
161
+ });
162
+ var getColumnData = function getColumnData(_ref7) {
163
+ var _config$otherColumns;
164
+ var config = _ref7.config,
165
+ handleUpdateRole = _ref7.handleUpdateRole,
166
+ handleUpdateStatus = _ref7.handleUpdateStatus,
167
+ isSize = _ref7.isSize;
168
+ var otherColumns = (_config$otherColumns = config === null || config === void 0 ? void 0 : config.otherColumns) !== null && _config$otherColumns !== void 0 ? _config$otherColumns : [];
169
+ var defaultColumns = getDefaultColumns({
170
+ config: config,
171
+ handleUpdateRole: handleUpdateRole,
172
+ handleUpdateStatus: handleUpdateStatus,
173
+ otherColumns: otherColumns,
174
+ isSize: isSize
175
+ });
176
+ var columns = defaultColumns.map(function (column) {
177
+ var otherColumn = otherColumns.find(function (col) {
178
+ return identical(col.accessorKey || col.id, column.accessorKey || column.id);
179
+ });
180
+ return otherColumn || column;
181
+ });
182
+ otherColumns.forEach(function (otherColumn) {
183
+ var key = otherColumn.accessorKey || otherColumn.id;
184
+ var exists = columns.find(function (col) {
185
+ return identical(col.accessorKey || col.id, key);
186
+ });
187
+ if (!exists) columns.push(otherColumn);
188
+ });
189
+ return columns;
190
+ };
191
+ var renderUpdateAlert = function renderUpdateAlert(field, props) {
192
+ var _config$alert;
193
+ var config = props.config,
194
+ member = props.member;
195
+ if (config !== null && config !== void 0 && (_config$alert = config.alert) !== null && _config$alert !== void 0 && _config$alert[field]) {
196
+ var _config$alert2;
197
+ return (_config$alert2 = config.alert) === null || _config$alert2 === void 0 ? void 0 : _config$alert2[field]({
198
+ active: member === null || member === void 0 ? void 0 : member.active,
199
+ id: member === null || member === void 0 ? void 0 : member.id,
200
+ name: member === null || member === void 0 ? void 0 : member.displayName
201
+ });
202
+ }
203
+ return field === "title" ? getDefaultAlertTitle(props) : getDefaultAlertMessage(props);
204
+ };
205
+ var handlePageChange = function handlePageChange(setFilters, history) {
206
+ return function (page, pageSize) {
207
+ var searchParams = getQueryParams({
208
+ toCamelCase: false
209
+ });
210
+ history.replace(buildUrl(window.location.pathname, mergeLeft({
211
+ page: page,
212
+ page_size: pageSize
213
+ }, searchParams)));
214
+ setFilters(mergeLeft({
215
+ page: page,
216
+ pageSize: pageSize
217
+ }));
218
+ };
219
+ };
220
+ var defaultNeetoFiltersColumns = function defaultNeetoFiltersColumns() {
221
+ return [{
222
+ key: "email",
223
+ label: i18next.t("neetoTeamMembers.common.email", SINGULAR),
224
+ model: "User",
225
+ node: "email",
226
+ showRuleSelector: true,
227
+ type: "text"
228
+ }, {
229
+ key: "name",
230
+ label: i18next.t("neetoTeamMembers.common.name"),
231
+ model: "User",
232
+ node: "first_name,last_name",
233
+ type: "text",
234
+ values: ""
235
+ }, {
236
+ key: "role",
237
+ label: i18next.t("neetoTeamMembers.common.role", SINGULAR),
238
+ model: "OrganizationRole",
239
+ node: "organization_role.name",
240
+ type: "multi_option",
241
+ values: []
242
+ }];
243
+ };
244
+ var buildFilterColumns = function buildFilterColumns(_ref8) {
245
+ var _ref8$options = _ref8.options,
246
+ _ref8$options$emails = _ref8$options.emails,
247
+ emails = _ref8$options$emails === void 0 ? [] : _ref8$options$emails,
248
+ _ref8$options$organiz = _ref8$options.organizationRoles,
249
+ organizationRoles = _ref8$options$organiz === void 0 ? [] : _ref8$options$organiz,
250
+ _ref8$emailConfig = _ref8.emailConfig,
251
+ setSearchTerm = _ref8$emailConfig.setSearchTerm,
252
+ isLoading = _ref8$emailConfig.isLoading;
253
+ var columnValues = {
254
+ email: emails.map(toLabelAndValue),
255
+ role: organizationRoles.map(toLabelAndValue)
256
+ };
257
+ return defaultNeetoFiltersColumns().map(function (column) {
258
+ var values = columnValues[column.key];
259
+ if (column.key === "role") return assoc("values", values, column);
260
+ var emailConfig = {
261
+ values: values,
262
+ isLoading: isLoading,
263
+ onInputChange: setSearchTerm
264
+ };
265
+ return mergeLeft(emailConfig, column);
266
+ });
267
+ };
268
+ var getFilteredRoles = function getFilteredRoles() {
269
+ var roles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
270
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
271
+ return filter(removeExcludedRole(config === null || config === void 0 ? void 0 : config.excludedRoles), roles);
272
+ };
273
+ var generateNoDataContent = function generateNoDataContent(_ref9) {
274
+ var buttonProps = _ref9.buttonProps;
275
+ var disabled = buttonProps.disabled,
276
+ onClick = buttonProps.onClick;
277
+ var noDataTitle = i18next.t("neetoTeamMembers.common.memberEmptyTitle", {
278
+ what: taxonomies.member.plural
279
+ });
280
+ var noDataDescription = i18next.t("neetoTeamMembers.common.memberEmptyDescription", {
281
+ what: taxonomies.member.plural
282
+ });
283
+ var noDataButtonProps = {
284
+ "data-testid": "ntm-add-member-button",
285
+ disabled: disabled,
286
+ label: i18next.t("neetoTeamMembers.common.addNew_", {
287
+ what: taxonomies.member.singular
288
+ }),
289
+ onClick: onClick
290
+ };
291
+ return {
292
+ noDataTitle: noDataTitle,
293
+ noDataDescription: noDataDescription,
294
+ noDataIcon: Users,
295
+ noDataButtonProps: noDataButtonProps
296
+ };
297
+ };
298
+
299
+ export { DEFAULT_FILTER_VALUES as D, DEFAULT_IS_OPEN_VALUES as a, buildFilterColumns as b, DEFAULT_SELECTED_ROWS as c, defaultNeetoFiltersColumns as d, getColumnData as e, generateNoDataContent as f, getFilteredRoles as g, handlePageChange as h, DEFAULT_RADIX as i, renderUpdateAlert as r };
300
+ //# sourceMappingURL=utils-DEOuQRcK.js.map