@aloudata/aloudata-design 2.13.13 → 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.
@@ -131,15 +131,16 @@
131
131
  }
132
132
 
133
133
  .ald-data-preview-progress {
134
- position: absolute;
134
+ position: fixed;
135
+ width: 100%;
135
136
  top: 0;
136
137
  left: 0;
137
138
  z-index: 3;
138
139
  }
139
140
 
140
141
  .ald-data-preview-table-error {
141
- height: calc(100% - 28px);
142
142
  display: flex;
143
+ height: 100%;
143
144
  align-items: center;
144
145
  justify-content: center;
145
146
  font-size: 16px;
@@ -152,5 +153,6 @@
152
153
  display: flex;
153
154
  justify-content: center;
154
155
  align-items: center;
155
- height: 200px;
156
+ height: 100%;
157
+ position: fixed;
156
158
  }
@@ -1,4 +1,4 @@
1
- import { OffsetOptions, UseHoverProps } from '@floating-ui/react';
1
+ import { FloatingFocusManagerProps, OffsetOptions, UseHoverProps } from '@floating-ui/react';
2
2
  import React from 'react';
3
3
  import { MenuProps } from '../Menu';
4
4
  import './style/index.less';
@@ -77,5 +77,9 @@ export interface IDropdownProps {
77
77
  * @default false
78
78
  */
79
79
  autoUpdatePos?: boolean;
80
+ /**
81
+ * @description 初始化焦点,参照:https://floating-ui.com/docs/floatingfocusmanager#initialfocus
82
+ */
83
+ initialFocus?: FloatingFocusManagerProps['initialFocus'];
80
84
  }
81
85
  export default function Dropdown(props: IDropdownProps): React.JSX.Element;
@@ -41,7 +41,8 @@ export default function Dropdown(props) {
41
41
  _props$delay = props.delay,
42
42
  delay = _props$delay === void 0 ? 0 : _props$delay,
43
43
  _props$autoUpdatePos = props.autoUpdatePos,
44
- autoUpdatePos = _props$autoUpdatePos === void 0 ? false : _props$autoUpdatePos;
44
+ autoUpdatePos = _props$autoUpdatePos === void 0 ? false : _props$autoUpdatePos,
45
+ initialFocus = props.initialFocus;
45
46
  var _useState = useState(open || false),
46
47
  _useState2 = _slicedToArray(_useState, 2),
47
48
  isOpen = _useState2[0],
@@ -140,7 +141,8 @@ export default function Dropdown(props) {
140
141
  var renderFloatingContent = useCallback(function () {
141
142
  var popupElem = /*#__PURE__*/React.createElement(FloatingFocusManager, {
142
143
  context: context,
143
- modal: false
144
+ modal: false,
145
+ initialFocus: initialFocus
144
146
  }, /*#__PURE__*/React.createElement("div", _extends({
145
147
  className: classNames('ald-dropdown-overlay', overlayClassName, _defineProperty({}, 'ald-dropdown-overlay-hidden', !isOpen)),
146
148
  ref: refs.setFloating,
@@ -149,7 +151,7 @@ export default function Dropdown(props) {
149
151
  }, getFloatingProps()), popupElement));
150
152
  var popupContainer = typeof getPopupContainer === 'function' ? getPopupContainer() : document.body;
151
153
  return /*#__PURE__*/ReactDOM.createPortal(popupElem, popupContainer);
152
- }, [context, floatingStyles, getFloatingProps, getPopupContainer, headingId, popupElement, refs.setFloating, overlayClassName, overlayStyle, isOpen]);
154
+ }, [context, floatingStyles, getFloatingProps, getPopupContainer, headingId, popupElement, refs.setFloating, overlayClassName, overlayStyle, isOpen, initialFocus]);
153
155
  var popup = destroyPopupOnHide ? isOpen && renderFloatingContent() : renderFloatingContent();
154
156
  var setTargetRef = useCallback(function (node) {
155
157
  refs.setReference(node);
@@ -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
  }