@aloudata/aloudata-design 2.15.12 → 2.15.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ interface IMemberSelectionProps {
9
9
  onSearchValueChange?: (value: string) => void;
10
10
  loading: boolean;
11
11
  width: number;
12
+ filterItem?: (item: IUser) => boolean;
12
13
  lockedIds: Array<TUserValue | TUserGroupValue>;
13
14
  }
14
15
  export declare const OPTION_HEIGHT = 36;
@@ -7,7 +7,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
7
  import { useVirtualizer } from '@tanstack/react-virtual';
8
8
  import classNames from 'classnames';
9
9
  import _ from 'lodash';
10
- import React, { useContext, useDeferredValue, useEffect, useState } from 'react';
10
+ import React, { useContext, useDeferredValue, useEffect, useMemo, useState } from 'react';
11
11
  import Empty from "../../Empty";
12
12
  import { SearchLine } from "../../Icon";
13
13
  import Input from "../../Input";
@@ -30,12 +30,21 @@ export default function MemberSelection(props) {
30
30
  onSearchValueChange = props.onSearchValueChange,
31
31
  loading = props.loading,
32
32
  width = props.width,
33
- lockedIds = props.lockedIds;
33
+ lockedIds = props.lockedIds,
34
+ filterItem = props.filterItem;
35
+ var filteredList = useMemo(function () {
36
+ return userList.filter(function (item) {
37
+ if (filterItem) {
38
+ return filterItem(item);
39
+ }
40
+ return true;
41
+ });
42
+ }, [userList, filterItem]);
34
43
  var parentRef = React.useRef(null);
35
44
 
36
45
  // The virtualizer
37
46
  var rowVirtualizer = useVirtualizer({
38
- count: userList.length,
47
+ count: filteredList.length,
39
48
  getScrollElement: function getScrollElement() {
40
49
  return parentRef.current;
41
50
  },
@@ -66,7 +75,7 @@ export default function MemberSelection(props) {
66
75
  onChange: function onChange(e) {
67
76
  setSearchValue(e.target.value);
68
77
  }
69
- }), userList.length === 0 && !loading && /*#__PURE__*/React.createElement(Empty, {
78
+ }), filteredList.length === 0 && !loading && /*#__PURE__*/React.createElement(Empty, {
70
79
  title: t.MemberPicker.noData,
71
80
  size: "small",
72
81
  image: Empty.PRESENTED_IMAGE_SEARCH,
@@ -84,7 +93,7 @@ export default function MemberSelection(props) {
84
93
  overflowX: 'hidden'
85
94
  },
86
95
  className: classNames('ald-member-picker-member-list', {
87
- 'ald-member-picker-member-list-null': userList.length === 0 && !loading
96
+ 'ald-member-picker-member-list-null': filteredList.length === 0 && !loading
88
97
  })
89
98
  // innerClassName="ald-member-picker-member-scroll"
90
99
  }, /*#__PURE__*/React.createElement("div", {
@@ -96,7 +105,7 @@ export default function MemberSelection(props) {
96
105
  height: "".concat(rowVirtualizer.getTotalSize(), "px")
97
106
  }
98
107
  }, rowVirtualizer.getVirtualItems().map(function (virtualItem) {
99
- var user = userList[virtualItem.index];
108
+ var user = filteredList[virtualItem.index];
100
109
  var isSelected = selectedUsers.some(function (selectedUser) {
101
110
  return selectedUser.userId === user.userId;
102
111
  });
@@ -10,6 +10,7 @@ interface IProps {
10
10
  onSearchValueChange?: (value: string) => void;
11
11
  width: number;
12
12
  lockedIds: Array<TUserValue | TUserGroupValue>;
13
+ filterItem?: (item: IUserGroup) => boolean;
13
14
  }
14
- declare const UserGroupSelection: ({ className, userGroupList, multiple, onChange, selectedUsersGroup: selectedUsersGroups, loading, width, lockedIds, }: IProps) => React.JSX.Element;
15
+ declare const UserGroupSelection: ({ className, userGroupList, multiple, onChange, selectedUsersGroup: selectedUsersGroups, loading, width, lockedIds, filterItem, }: IProps) => React.JSX.Element;
15
16
  export default UserGroupSelection;
@@ -34,7 +34,8 @@ var UserGroupSelection = function UserGroupSelection(_ref) {
34
34
  selectedUsersGroups = _ref.selectedUsersGroup,
35
35
  loading = _ref.loading,
36
36
  width = _ref.width,
37
- lockedIds = _ref.lockedIds;
37
+ lockedIds = _ref.lockedIds,
38
+ filterItem = _ref.filterItem;
38
39
  var _useContext = useContext(LocaleContext),
39
40
  locale = _useContext.locale;
40
41
  var t = getTranslator(locale);
@@ -85,7 +86,12 @@ var UserGroupSelection = function UserGroupSelection(_ref) {
85
86
  })), [userGroupList, groupPath, searchKey, getNextLevelGroup]);
86
87
  useEffect(function () {
87
88
  getFilterUserList().then(function (userGroups) {
88
- setFilterUserList(userGroups);
89
+ setFilterUserList(userGroups.filter(function (userGroup) {
90
+ if (filterItem) {
91
+ return filterItem(userGroup);
92
+ }
93
+ return true;
94
+ }));
89
95
  });
90
96
  }, [getFilterUserList]);
91
97
  return /*#__PURE__*/React.createElement("div", {
@@ -1,4 +1,4 @@
1
- var _excluded = ["value", "type", "onChange", "multiple", "dropdownWidth", "open", "onOpenChange", "placeholder", "className", "allowClear", "disabled", "onClear", "size", "prefix", "lockedIds", "footer", "onCancel"];
1
+ var _excluded = ["value", "type", "onChange", "multiple", "dropdownWidth", "open", "onOpenChange", "placeholder", "className", "allowClear", "disabled", "onClear", "size", "prefix", "lockedIds", "footer", "onCancel", "filterItem"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
4
4
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -53,6 +53,7 @@ var Component = function Component(props) {
53
53
  lockedIds = _props$lockedIds === void 0 ? [] : _props$lockedIds,
54
54
  footer = props.footer,
55
55
  _onCancel = props.onCancel,
56
+ filterItem = props.filterItem,
56
57
  restProps = _objectWithoutProperties(props, _excluded);
57
58
  var _ConfigProvider$useGe = ConfigProvider.useGetUserList(),
58
59
  getUsersByIds = _ConfigProvider$useGe.getUsersByIds,
@@ -129,6 +130,11 @@ var Component = function Component(props) {
129
130
  return _.uniqBy(totalUsers, function (data) {
130
131
  if (data.type === EUserType.USER) return data.userId;
131
132
  return data.groupId;
133
+ }).filter(function (item) {
134
+ if (filterItem) {
135
+ return filterItem(item);
136
+ }
137
+ return true;
132
138
  });
133
139
  }, [searchString, searchUserList, selectedUserList]);
134
140
  useEffect(function () {
@@ -20,6 +20,7 @@ export interface IBaseMemberSelectorProps extends Omit<ISelectProps, 'type'> {
20
20
  lockedIds?: Array<TUserValue | TUserGroupValue>;
21
21
  footer?: ReactNode;
22
22
  onCancel?: () => void;
23
+ filterItem?: (item: IUser | IUserGroup) => boolean;
23
24
  }
24
25
  export interface IMultipleMemberSelectorProps extends IBaseMemberSelectorProps {
25
26
  multiple: true | Mode;