@qsxy/element-plus-react 1.0.0-next.16 → 1.0.0-next.18

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 (39) hide show
  1. package/dist/CheckboxGroup/CheckboxGroup.js +1 -0
  2. package/dist/ConfigProvider/ConfigProvider.d.ts +2 -0
  3. package/dist/ConfigProvider/ConfigProvider.js +5 -1
  4. package/dist/ConfigProvider/index.d.ts +1 -1
  5. package/dist/ConfigProvider/index.js +1 -1
  6. package/dist/DateTimePicker/DateTimePicker.d.ts +1 -1
  7. package/dist/Dialog/Dialog.js +3 -1
  8. package/dist/Empty/Empty.js +1 -1
  9. package/dist/Empty/ImgEmpty.js +5 -5
  10. package/dist/Form/Form.d.ts +9 -4
  11. package/dist/Form/Form.js +6 -4
  12. package/dist/Form/typings.d.ts +2 -2
  13. package/dist/MessageBox/MessageBox.js +1 -0
  14. package/dist/MessageBox/typings.d.ts +1 -0
  15. package/dist/Pagination/Options.d.ts +7 -2
  16. package/dist/Pagination/Options.js +68 -53
  17. package/dist/Pagination/Pager.js +10 -10
  18. package/dist/Pagination/Pagination.js +288 -318
  19. package/dist/Pagination/typings.d.ts +27 -28
  20. package/dist/Select/SelectCore.js +6 -5
  21. package/dist/Select/SelectDropdown.js +65 -15
  22. package/dist/Select/typings.d.ts +5 -0
  23. package/dist/Table/Table.d.ts +1 -1
  24. package/dist/Table/hooks/useSelection.d.ts +3 -3
  25. package/dist/Table/util.d.ts +2 -4
  26. package/dist/Transfer/ListBody.js +1 -1
  27. package/dist/TreeSelect/TreeSelect.d.ts +1 -1
  28. package/dist/index.css +1 -1
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.js +2 -0
  31. package/dist/locale/en.d.ts +179 -0
  32. package/dist/locale/en.js +178 -0
  33. package/dist/locale/i18n.d.ts +2 -0
  34. package/dist/locale/i18n.js +44 -0
  35. package/dist/locale/zhCn.d.ts +178 -0
  36. package/dist/locale/zhCn.js +177 -0
  37. package/package.json +4 -1
  38. package/theme-chalk/pagination/index.scss +227 -439
  39. package/theme-chalk/select/index.scss +10 -7
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { BaseProps, NativeProps } from '../types/common';
2
+ import { IconName } from '../Icon';
3
+ import { BaseProps, NativeProps, TypeAttributes } from '../types/common';
3
4
  export interface PaginationRef {
4
5
  /** 当前页数 */
5
6
  pageNum: number;
@@ -12,9 +13,13 @@ export interface PaginationRef {
12
13
  }
13
14
  export interface PaginationProps extends BaseProps, NativeProps {
14
15
  /** 当前页数 */
15
- current?: number;
16
- /** 默认的当前页数 */
17
- defaultCurrent?: number;
16
+ currentPage?: number;
17
+ /** 当前页数的默认初始值,不设置时默认为 1 */
18
+ defaultCurrentPage?: number;
19
+ /** 分页大小 */
20
+ size?: TypeAttributes.Size;
21
+ /** 是否为分页按钮添加背景色 */
22
+ background?: boolean;
18
23
  /** 禁用分页 */
19
24
  disabled?: boolean;
20
25
  /** 数据总数 */
@@ -23,47 +28,41 @@ export interface PaginationProps extends BaseProps, NativeProps {
23
28
  defaultPageSize?: number;
24
29
  /** 每页条数 */
25
30
  pageSize?: number;
31
+ /** 设置最大页码按钮数。 页码按钮的数量,当总页数超过该值时会折叠 */
32
+ pagerCount?: number;
26
33
  /** 指定每页可以显示多少条 */
27
- pageSizeOptions?: Array<string>;
34
+ pageSizes?: Array<number>;
35
+ /** 组件布局,子组件名用逗号分隔 'prev, pager, next, sizes, jumper, ->, total' */
36
+ layout?: string;
37
+ /** 替代图标显示的上一页文字 */
38
+ prevText?: string;
39
+ /** 上一页的图标, 比 prevText 优先级更高 */
40
+ prevIcon?: IconName | React.ReactElement;
41
+ /** 替代图标显示的下一页文字 */
42
+ nextText?: string;
43
+ /** 下一页的图标, 比 nextText 优先级更高 */
44
+ nextIcon?: IconName | React.ReactElement;
28
45
  /** 只有一页时是否隐藏分页器 */
29
46
  hideOnSinglePage?: boolean;
30
- /** */
31
- showPrevNextJumpers?: boolean;
32
47
  /** 是否可以快速跳转至某页 */
33
- showQuickJumper?: boolean | {
34
- goButton: React.ReactElement;
35
- };
36
48
  /** 用于显示数据总量和当前数据顺序 */
37
49
  showTotal?: (total: number, [from, to]: [number, number]) => React.ReactElement | boolean | string;
38
- /** 是否显示较少页面内容 */
39
- showLessItems?: boolean;
40
- /** 是否显示原生 tooltip 页码提示 */
41
- showTitle?: boolean;
42
- /** 是否展示 pageSize 切换器,当 total 大于 50 时默认为 true */
43
- showSizeChanger?: boolean;
50
+ /** currentPage 改变时触发 */
44
51
  /** pageSize 变化的回调 */
45
- onShowSizeChange?: (current?: number, size?: number) => void;
46
- /** 用于自定义页码的结构,可用于优化 SEO */
47
- itemRender?: (page: number, type: PageType, element: React.ReactElement) => React.ReactElement<{
48
- disabled?: boolean;
49
- }>;
52
+ onSizeChange?: (pageSize: number, currentPage: number) => void;
50
53
  /** 页码或 pageSize 改变的回调,参数是改变后的页码及每页条数 */
51
- onChange?: (current: number, pageSize: number) => void;
54
+ onChange?: (currentPage: number, pageSize: number) => void;
52
55
  /** 当添加该属性时,显示为简单分页 */
53
56
  simple?: boolean;
54
- /** 当为 small 时,是小尺寸分页 */
55
- size?: 'small';
56
57
  }
57
58
  export type PageType = 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next';
58
59
  export interface PagerProps extends BaseProps, NativeProps {
59
60
  /** 页数 */
60
61
  page: number;
61
- /** 是否显示原生 tooltip 页码提示 */
62
- showTitle?: boolean;
63
62
  /** 是否激活状态 */
64
63
  active?: boolean;
64
+ /** 是否禁用状态 */
65
+ disabled?: boolean;
65
66
  /** 点击事件 */
66
67
  onClick?: (page: number) => void;
67
- /** 用于自定义页码的结构,可用于优化 SEO */
68
- itemRender?: (current: number, type: PageType, element: React.ReactElement) => React.ReactElement;
69
68
  }
@@ -184,7 +184,7 @@ var SelectCore = /*#__PURE__*/forwardRef(function (props, ref) {
184
184
  /** 动态计算下拉框宽度 */
185
185
  var handleEnter = useCallback(function (node) {
186
186
  if (visible && contentRef.current && containerRef.current) {
187
- var _selectDropdownRef$cu;
187
+ var _selectDropdownRef$cu, _selectDropdownRef$cu2;
188
188
  var rect = containerRef.current.getBoundingClientRect();
189
189
  // const { width } = contentRef.current.getBoundingClientRect();
190
190
  var options = Array.from(contentRef.current.querySelectorAll(".".concat(be('dropdown', 'item'), ">span")));
@@ -203,13 +203,14 @@ var SelectCore = /*#__PURE__*/forwardRef(function (props, ref) {
203
203
  }
204
204
  (_selectDropdownRef$cu = selectDropdownRef.current) === null || _selectDropdownRef$cu === void 0 || _selectDropdownRef$cu.scrollToSelected();
205
205
  onEnter === null || onEnter === void 0 || onEnter(node);
206
+ (_selectDropdownRef$cu2 = selectDropdownRef.current) === null || _selectDropdownRef$cu2 === void 0 || _selectDropdownRef$cu2.onEnter();
206
207
  }
207
208
  }, [be, onEnter, popperStyle, props.maxWidth, visible]);
208
209
 
209
210
  /** 关闭下拉框后清空搜索项 */
210
211
  var handleAfterLeave = useCallback(function (node) {
211
- var _selectDropdownRef$cu2;
212
- (_selectDropdownRef$cu2 = selectDropdownRef.current) === null || _selectDropdownRef$cu2 === void 0 || _selectDropdownRef$cu2.clear();
212
+ var _selectDropdownRef$cu3;
213
+ (_selectDropdownRef$cu3 = selectDropdownRef.current) === null || _selectDropdownRef$cu3 === void 0 || _selectDropdownRef$cu3.clear();
213
214
  afterLeave === null || afterLeave === void 0 || afterLeave(node);
214
215
  }, [afterLeave]);
215
216
 
@@ -245,10 +246,10 @@ var SelectCore = /*#__PURE__*/forwardRef(function (props, ref) {
245
246
 
246
247
  /** 重置值 */
247
248
  var onClear = useCallback(function () {
248
- var _selectDropdownRef$cu3;
249
+ var _selectDropdownRef$cu4;
249
250
  setValue(multiple ? [] : '');
250
251
  setLabel('');
251
- (_selectDropdownRef$cu3 = selectDropdownRef.current) === null || _selectDropdownRef$cu3 === void 0 || _selectDropdownRef$cu3.hover('');
252
+ (_selectDropdownRef$cu4 = selectDropdownRef.current) === null || _selectDropdownRef$cu4 === void 0 || _selectDropdownRef$cu4.hover('');
252
253
  onChange === null || onChange === void 0 || onChange(multiple ? [] : '', multiple ? [] : '');
253
254
  setCreateItem('');
254
255
  onClearProp === null || onClearProp === void 0 || onClearProp();
@@ -1,4 +1,4 @@
1
- var _templateObject, _templateObject2;
1
+ var _templateObject, _templateObject2, _templateObject3;
2
2
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -9,7 +9,6 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
9
  import classNames from 'classnames';
10
10
  import trim from 'lodash/trim';
11
11
  import React, { Children, cloneElement, forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
12
- import scrollIntoView from 'scroll-into-view-if-needed';
13
12
  import { Divider } from "../Divider";
14
13
  import Icon from "../Icon/Icon";
15
14
  import Input from "../Input/Input";
@@ -24,6 +23,9 @@ var SelectDropdown = /*#__PURE__*/forwardRef(function (props, ref) {
24
23
  _props$multiple = props.multiple,
25
24
  multiple = _props$multiple === void 0 ? false : _props$multiple,
26
25
  filterMethod = props.filterMethod,
26
+ _props$remote = props.remote,
27
+ remote = _props$remote === void 0 ? false : _props$remote,
28
+ remoteMethod = props.remoteMethod,
27
29
  loadingText = props.loadingText,
28
30
  noMatchText = props.noMatchText,
29
31
  noDataText = props.noDataText,
@@ -40,6 +42,7 @@ var SelectDropdown = /*#__PURE__*/forwardRef(function (props, ref) {
40
42
  be = _useClassNames.be,
41
43
  is = _useClassNames.is;
42
44
  var ulRef = useRef(null);
45
+ var remoteSearchRef = useRef(null);
43
46
 
44
47
  // 下拉项高亮
45
48
  var _useState = useState(value),
@@ -51,6 +54,8 @@ var SelectDropdown = /*#__PURE__*/forwardRef(function (props, ref) {
51
54
  _useState4 = _slicedToArray(_useState3, 2),
52
55
  searchText = _useState4[0],
53
56
  setSearchText = _useState4[1];
57
+ // const [remoteSearch, setRemoteSearch] = useState('');
58
+ // const remoteSearch = useMemo(() => searchInstance.current?.getValue(), [searchInstance]);
54
59
 
55
60
  /** 搜索时 */
56
61
  useEffect(function () {
@@ -77,6 +82,11 @@ var SelectDropdown = /*#__PURE__*/forwardRef(function (props, ref) {
77
82
  }
78
83
  setSearchText(keywords);
79
84
  }, [searchText]);
85
+
86
+ /** 搜索 */
87
+ var onRemote = useCallback(function (val) {
88
+ remoteMethod === null || remoteMethod === void 0 || remoteMethod(val);
89
+ }, [remoteMethod]);
80
90
  var filterAction = useCallback(function (p) {
81
91
  if (isNotEmpty(searchText) && isNotEmpty(p.value)) {
82
92
  if (filterMethod) {
@@ -94,19 +104,33 @@ var SelectDropdown = /*#__PURE__*/forwardRef(function (props, ref) {
94
104
  }
95
105
  }, [filterMethod, searchText]);
96
106
  var scrollToSelected = useCallback(function () {
97
- var _ulRef$current;
98
- var node = (_ulRef$current = ulRef.current) === null || _ulRef$current === void 0 ? void 0 : _ulRef$current.querySelectorAll('.selected');
99
- if (node && node.length > 0) {
100
- scrollIntoView(node[0], {
101
- scrollMode: 'if-needed',
102
- block: 'center'
103
- });
104
- }
107
+ // const node = ulRef.current?.querySelectorAll('.selected');
108
+ // if (node && node.length > 0) {
109
+ // scrollIntoView(node[0], {
110
+ // scrollMode: 'if-needed',
111
+ // block: 'center',
112
+ // });
113
+ // }
105
114
  }, []);
115
+
116
+ // useEffect(() => {
117
+ // if (remoteSearch == '') {
118
+ // remoteMethod?.('');
119
+ // }
120
+ // }, [remoteSearch]);
121
+
106
122
  useImperativeHandle(ref, function () {
107
123
  return {
108
124
  clear: function clear() {
109
- return setSearchText('');
125
+ setSearchText('');
126
+ remoteMethod === null || remoteMethod === void 0 || remoteMethod('');
127
+ },
128
+ onEnter: function onEnter() {
129
+ setTimeout(function () {
130
+ var _searchInstance$curre, _remoteSearchRef$curr;
131
+ (_searchInstance$curre = searchInstance.current) === null || _searchInstance$curre === void 0 || _searchInstance$curre.focus();
132
+ (_remoteSearchRef$curr = remoteSearchRef.current) === null || _remoteSearchRef$curr === void 0 || _remoteSearchRef$curr.focus();
133
+ }, 500);
110
134
  },
111
135
  hover: setHover,
112
136
  scrollToSelected: scrollToSelected
@@ -195,7 +219,7 @@ var SelectDropdown = /*#__PURE__*/forwardRef(function (props, ref) {
195
219
  return event.stopPropagation();
196
220
  },
197
221
  ref: contentRef
198
- }, /*#__PURE__*/React.createElement(React.Fragment, null, filterable && /*#__PURE__*/React.createElement("div", {
222
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, filterable && !remote ? /*#__PURE__*/React.createElement("div", {
199
223
  className: e(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["search"]))),
200
224
  onClick: function onClick(event) {
201
225
  return event.stopPropagation();
@@ -204,8 +228,9 @@ var SelectDropdown = /*#__PURE__*/forwardRef(function (props, ref) {
204
228
  ref: searchInstance,
205
229
  placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD",
206
230
  clearable: true,
207
- plain: true,
208
- debounceInput: true,
231
+ plain: true
232
+ // debounceInput
233
+ ,
209
234
  onClear: onClearSearch,
210
235
  onChange: onSearch,
211
236
  prefix: /*#__PURE__*/React.createElement(Icon, {
@@ -216,7 +241,32 @@ var SelectDropdown = /*#__PURE__*/forwardRef(function (props, ref) {
216
241
  style: {
217
242
  margin: 0
218
243
  }
219
- })), /*#__PURE__*/React.createElement(SelectContext.Provider, {
244
+ })) : null, filterable && remote ? /*#__PURE__*/React.createElement("div", {
245
+ className: e(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["search"]))),
246
+ onClick: function onClick(event) {
247
+ return event.stopPropagation();
248
+ }
249
+ }, /*#__PURE__*/React.createElement(Input, {
250
+ ref: remoteSearchRef
251
+ // value={remoteSearch}
252
+ ,
253
+ placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD",
254
+ clearable: true,
255
+ plain: true,
256
+ debounceInput: true,
257
+ onClear: function onClear() {
258
+ return onRemote('');
259
+ },
260
+ onChange: onRemote,
261
+ prefix: /*#__PURE__*/React.createElement(Icon, {
262
+ prefix: "fal",
263
+ name: "search"
264
+ })
265
+ }), /*#__PURE__*/React.createElement(Divider, {
266
+ style: {
267
+ margin: 0
268
+ }
269
+ })) : null, /*#__PURE__*/React.createElement(SelectContext.Provider, {
220
270
  value: {
221
271
  value: value,
222
272
  onChoose: onChoose,
@@ -70,6 +70,10 @@ export interface SelectProps<V = ValueType> extends Omit<FormControlBaseProps<V>
70
70
  size?: TypeAttributes.Size;
71
71
  /** 是否追加到body下 */
72
72
  appendToBody?: boolean;
73
+ /** 其中的选项是否从服务器远程加载 */
74
+ remote?: boolean;
75
+ /** 自定义搜索方法 */
76
+ remoteMethod?: (searchText: string) => void;
73
77
  /** 标签类型 */
74
78
  tagType?: TypeAttributes.Appearance;
75
79
  /** 标签效果 */
@@ -112,6 +116,7 @@ export interface SelectDropdownProps extends SelectProps {
112
116
  }
113
117
  export interface SelectDropdownRef {
114
118
  clear: () => void;
119
+ onEnter: () => void;
115
120
  hover: (value: ValueType) => void;
116
121
  scrollToSelected: () => void;
117
122
  }
@@ -1,7 +1,7 @@
1
1
  import React, { Ref } from 'react';
2
2
  import { TableProps, TableRef } from './typings';
3
3
  declare const ForwardTable: <RecordType extends object = any>(props: TableProps<RecordType> & {
4
- ref?: React.Ref<TableRef<RecordType>>;
4
+ ref?: Ref<TableRef<RecordType>>;
5
5
  }) => React.ReactElement;
6
6
  type InternalTableType = typeof ForwardTable;
7
7
  interface TableInterface extends InternalTableType {
@@ -12,7 +12,7 @@ export declare const useSelection: <T>(props: TableProps<T>, data: T[]) => {
12
12
  };
13
13
  dispatch: import("react").Dispatch<Action>;
14
14
  oldActiveRow: import("react").MutableRefObject<T>;
15
- setCurrentRow: (row?: T) => void;
15
+ setCurrentRow: (row?: T | null) => void;
16
16
  disabledRows: import("react").MutableRefObject<T[]>;
17
17
  toggleRowSelection: (row: T, selected: boolean) => void;
18
18
  toggleAllSelection: () => void;
@@ -33,10 +33,10 @@ export interface Action {
33
33
  * @param payload
34
34
  * @returns
35
35
  */
36
- export declare const activeRow: <T>(payload: T) => Action;
36
+ export declare const activeRow: <T>(payload: State<T>['currentRow']) => Action;
37
37
  /**
38
38
  * 多选模式下选中行
39
39
  * @param payload
40
40
  * @returns
41
41
  */
42
- export declare const onCheck: <T>(payload: Pick<State<T>, "selection" | "isIndeterminate">) => Action;
42
+ export declare const onCheck: <T>(payload: Pick<State<T>, 'isIndeterminate' | 'selection'>) => Action;
@@ -10,10 +10,8 @@ export declare const TableIdManager: {
10
10
  export declare const getStyle: (element: HTMLElement, styleName: keyof React.CSSProperties) => string;
11
11
  export declare let removePopper: () => void | undefined;
12
12
  export declare function createTablePopper(parentNode: HTMLElement | undefined, trigger: HTMLElement, popperContent: string, tooltipRef: React.MutableRefObject<TooltipRef>): void;
13
- export declare const getRowIdentity: <T>(row: T, rowKey: string | ((data: {
14
- row: T;
15
- }) => string)) => string;
16
- export declare const getRowIndex: <T>(index: number | ((index: number, row?: T) => number), rowIndex: number, row: T) => number;
13
+ export declare const getRowIdentity: <T>(row: T, rowKey: TableProps<T>['rowKey']) => string;
14
+ export declare const getRowIndex: <T>(index: TableColumnCtx<T>['index'], rowIndex: number, row: T) => number;
17
15
  export declare function parseHeight(height: number | string): string | number;
18
16
  /**
19
17
  * ��д�߼�
@@ -86,7 +86,7 @@ var ListBody = function ListBody(props) {
86
86
  className: b(_templateObject || (_templateObject = _taggedTemplateLiteral(["pagination"]))),
87
87
  total: filteredRenderItems.length,
88
88
  pageSize: mergedPagination.pageSize,
89
- current: current,
89
+ currentPage: current,
90
90
  onChange: onPageChange
91
91
  });
92
92
  }
@@ -1,6 +1,6 @@
1
1
  import React, { RefObject } from 'react';
2
2
  import { TreeSelectProps, TreeSelectRef } from './typings';
3
- declare const ForwardTreeSelect: <RecordType extends object = any>(props: TreeSelectProps<RecordType, string | number | readonly string[]> & {
3
+ declare const ForwardTreeSelect: <RecordType extends object = any>(props: TreeSelectProps<RecordType> & {
4
4
  ref?: RefObject<TreeSelectRef>;
5
5
  }) => React.ReactElement;
6
6
  type InternalDirectoryTreeType = typeof ForwardTreeSelect;