@aloudata/aloudata-design 2.13.14 → 2.13.15

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.
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  import { IUserGroup, TUser, TUserGroupValue, TUserValue } from '../../ConfigProvider/getUserList';
3
3
  import { EMemberPicker, IUser } from '../interface';
4
4
  interface IPanelProps {
@@ -13,6 +13,7 @@ interface IPanelProps {
13
13
  loading: boolean;
14
14
  className?: string;
15
15
  lockedIds: Array<TUserValue | TUserGroupValue>;
16
+ footer?: ReactNode;
16
17
  }
17
18
  export declare const userDisplayNameIsRepeated: (userList: TUser, displayName?: string) => boolean;
18
19
  export default function Panel(props: IPanelProps): React.JSX.Element;
@@ -42,7 +42,9 @@ export default function Panel(props) {
42
42
  dataList = props.dataList,
43
43
  onSearchValueChange = props.onSearchValueChange,
44
44
  className = props.className,
45
- lockedIds = props.lockedIds;
45
+ lockedIds = props.lockedIds,
46
+ footer = props.footer,
47
+ onCancel = props.onCancel;
46
48
  var _useState = useState([]),
47
49
  _useState2 = _slicedToArray(_useState, 2),
48
50
  selectedUsers = _useState2[0],
@@ -80,9 +82,6 @@ export default function Panel(props) {
80
82
  return 160;
81
83
  }
82
84
  }, [dropdownWidth, multiple]);
83
- var onOk = useCallback(function () {
84
- onChange === null || onChange === void 0 ? void 0 : onChange(selectedUsers);
85
- }, [onChange, selectedUsers]);
86
85
  useEffect(function () {
87
86
  if (value) {
88
87
  if (Array.isArray(value)) {
@@ -154,8 +153,11 @@ export default function Panel(props) {
154
153
  userList: dataList
155
154
  }), /*#__PURE__*/React.createElement(SelectorFooter, {
156
155
  className: 'ald-member-picker-selector-footer',
157
- onCancel: props.onCancel,
158
- onOk: onOk
156
+ onCancel: onCancel,
157
+ onOk: function onOk() {
158
+ onChange === null || onChange === void 0 ? void 0 : onChange(selectedUsers);
159
+ },
160
+ footer: footer
159
161
  })) : /*#__PURE__*/React.createElement(React.Fragment, null, type === EMemberPicker.USER && /*#__PURE__*/React.createElement(MemberSelection, {
160
162
  className: 'ald-member-picker-member-selection-single',
161
163
  userList: dataList.filter(isUser),
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  import { IUserGroup, TUser, TUserGroupValue, TUserValue } from '../../ConfigProvider/getUserList';
3
3
  import { EMemberPicker, IUser, TMemberPickerValue } from '../interface';
4
4
  interface IProps {
@@ -11,6 +11,7 @@ interface IProps {
11
11
  onCancel?: () => void;
12
12
  lockedIds?: Array<TUserValue | TUserGroupValue>;
13
13
  showUserId?: boolean;
14
+ footer?: ReactNode;
14
15
  }
15
- export declare const PanelWrapper: ({ type, value, multiple, dropdownWidth, onChange, onCancel, className, lockedIds, }: IProps) => React.JSX.Element;
16
+ export declare const PanelWrapper: ({ type, value, multiple, dropdownWidth, onChange, onCancel, className, footer, lockedIds, }: IProps) => React.JSX.Element;
16
17
  export default PanelWrapper;
@@ -22,6 +22,7 @@ export var PanelWrapper = function PanelWrapper(_ref) {
22
22
  onChange = _ref.onChange,
23
23
  onCancel = _ref.onCancel,
24
24
  className = _ref.className,
25
+ footer = _ref.footer,
25
26
  _ref$lockedIds = _ref.lockedIds,
26
27
  lockedIds = _ref$lockedIds === void 0 ? [] : _ref$lockedIds;
27
28
  var _useContext = useContext(LocaleContext),
@@ -134,7 +135,8 @@ export var PanelWrapper = function PanelWrapper(_ref) {
134
135
  onChange: onSelectedChange,
135
136
  className: className,
136
137
  onCancel: onCancel,
137
- lockedIds: lockedIds
138
+ lockedIds: lockedIds,
139
+ footer: footer
138
140
  });
139
141
  };
140
142
  export default PanelWrapper;
@@ -1,8 +1,9 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  interface ISelectorFooterProps {
3
3
  className?: string;
4
4
  onOk?: () => void;
5
5
  onCancel?: () => void;
6
+ footer?: ReactNode;
6
7
  }
7
8
  export default function SelectorFooter(props: ISelectorFooterProps): React.JSX.Element;
8
9
  export {};
@@ -6,14 +6,38 @@ export default function SelectorFooter(props) {
6
6
  var _useContext = useContext(LocaleContext),
7
7
  locale = _useContext.locale;
8
8
  var t = getTranslator(locale);
9
- var className = props.className;
10
- return /*#__PURE__*/React.createElement("div", {
9
+ var className = props.className,
10
+ _onOk = props.onOk,
11
+ _onCancel = props.onCancel;
12
+ var footer = props.footer ? /*#__PURE__*/React.cloneElement(props.footer, {
13
+ onCancel: function onCancel() {
14
+ // 如果自定义 footer 有 onCancel,则先执行自定义的 onCancel
15
+ if (typeof props.footer.props.onCancel === 'function') {
16
+ props.footer.props.onCancel();
17
+ }
18
+ // 然后执行组件的 onCancel
19
+ if (typeof _onCancel === 'function') {
20
+ _onCancel();
21
+ }
22
+ },
23
+ onOk: function onOk() {
24
+ // 如果自定义 footer 有 onCancel,则先执行自定义的 onCancel
25
+ if (typeof props.footer.props.onOk === 'function') {
26
+ props.footer.props.onOk();
27
+ }
28
+ // 然后执行组件的 onOk
29
+ if (typeof _onOk === 'function') {
30
+ _onOk();
31
+ }
32
+ }
33
+ }) : /*#__PURE__*/React.createElement("div", {
11
34
  className: classNames(className, 'ald-member-picker-footer')
12
35
  }, /*#__PURE__*/React.createElement(Button, {
13
- onClick: props.onCancel,
36
+ onClick: _onCancel,
14
37
  type: "secondary"
15
38
  }, t.MemberPicker.cancel), /*#__PURE__*/React.createElement(Button, {
16
- onClick: props.onOk,
39
+ onClick: _onOk,
17
40
  type: "primary"
18
41
  }, t.MemberPicker.confirm));
42
+ return footer;
19
43
  }
@@ -1,4 +1,4 @@
1
- var _excluded = ["value", "type", "onChange", "multiple", "dropdownWidth", "open", "onOpenChange", "placeholder", "className", "allowClear", "disabled", "onClear", "size", "selectType", "prefix", "lockedIds"];
1
+ var _excluded = ["value", "type", "onChange", "multiple", "dropdownWidth", "open", "onOpenChange", "placeholder", "className", "allowClear", "disabled", "onClear", "size", "selectType", "prefix", "lockedIds", "footer", "onCancel"];
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,8 @@ var Component = function Component(props) {
53
53
  propPrefix = props.prefix,
54
54
  _props$lockedIds = props.lockedIds,
55
55
  lockedIds = _props$lockedIds === void 0 ? [] : _props$lockedIds,
56
+ footer = props.footer,
57
+ _onCancel = props.onCancel,
56
58
  restProps = _objectWithoutProperties(props, _excluded);
57
59
  var _ConfigProvider$useGe = ConfigProvider.useGetUserList(),
58
60
  getUsersByIds = _ConfigProvider$useGe.getUsersByIds,
@@ -289,6 +291,7 @@ var Component = function Component(props) {
289
291
  ref: triggerRef
290
292
  }, /*#__PURE__*/React.createElement(Panel, {
291
293
  type: type,
294
+ footer: footer,
292
295
  value: selectedUserList,
293
296
  dataList: totalUserList,
294
297
  lockedIds: lockedIds,
@@ -298,7 +301,10 @@ var Component = function Component(props) {
298
301
  dropdownWidth: dropdownContentWidth,
299
302
  onSearchValueChange: onSearchValueChange,
300
303
  onChange: onSelectedChange,
301
- onCancel: setDropdownOpen.bind(null, false)
304
+ onCancel: function onCancel() {
305
+ _onCancel === null || _onCancel === void 0 ? void 0 : _onCancel();
306
+ setDropdownOpen(false);
307
+ }
302
308
  }));
303
309
  }
304
310
  }));
@@ -1,3 +1,4 @@
1
+ import { ReactNode } from 'react';
1
2
  import { IUser, IUserGroup, TUser } from '../ConfigProvider/getUserList';
2
3
  import { ISelectProps } from '../Select';
3
4
  import { RequiredProperties } from '../_utils/type';
@@ -17,6 +18,8 @@ export interface IBaseMemberSelectorProps extends Omit<ISelectProps, 'type'> {
17
18
  type?: EMemberPicker;
18
19
  selectType?: ISelectProps['type'];
19
20
  lockedIds?: Array<TUserValue | TUserGroupValue>;
21
+ footer?: ReactNode;
22
+ onCancel?: () => void;
20
23
  }
21
24
  export interface IMultipleMemberSelectorProps extends IBaseMemberSelectorProps {
22
25
  multiple: true;
@@ -115,7 +115,7 @@ export default function Radio(props) {
115
115
  }
116
116
  }), /*#__PURE__*/React.createElement("span", {
117
117
  className: "ald-radio-inner"
118
- })), /*#__PURE__*/React.createElement("span", {
118
+ })), props.children && /*#__PURE__*/React.createElement("span", {
119
119
  className: "ald-radio-desc"
120
120
  }, props.children));
121
121
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aloudata/aloudata-design",
3
- "version": "2.13.14",
3
+ "version": "2.13.15",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",