@hi-ui/check-select 4.0.0-alpha.2 → 4.0.0-alpha.23

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.
@@ -10,12 +10,13 @@
10
10
  import { __rest } from 'tslib';
11
11
  import React, { useMemo, useCallback } from 'react';
12
12
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
13
- import { useSearch } from './hooks/use-search.js';
14
13
  import { useCheck } from '@hi-ui/use-check';
15
14
  import { useLatestCallback } from '@hi-ui/use-latest';
16
15
  import { toArray } from '@hi-ui/use-children';
16
+ import { flattenTree } from '@hi-ui/tree-utils';
17
17
  var NOOP_ARRAY = [];
18
18
  var NOOP_VALUE = [];
19
+ var DEFAULT_FIELD_NAMES = {};
19
20
 
20
21
  var useCheckSelect = function useCheckSelect(_a) {
21
22
  var _a$data = _a.data,
@@ -30,46 +31,93 @@ var useCheckSelect = function useCheckSelect(_a) {
30
31
  onSelect = _a.onSelect,
31
32
  _a$emptyContent = _a.emptyContent,
32
33
  emptyContent = _a$emptyContent === void 0 ? '无匹配选项' : _a$emptyContent,
33
- searchPlaceholder = _a.searchPlaceholder,
34
- titleRender = _a.titleRender,
35
- rest = __rest(_a, ["data", "children", "disabled", "value", "defaultValue", "onChange", "onSelect", "emptyContent", "searchPlaceholder", "titleRender"]);
34
+ _a$fieldNames = _a.fieldNames,
35
+ fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
36
+ rest = __rest(_a, ["data", "children", "disabled", "value", "defaultValue", "onChange", "onSelect", "emptyContent", "searchPlaceholder", "filter", "fieldNames"]);
36
37
 
37
38
  var data = useMemo(function () {
38
39
  if (children) {
39
- var list = toArray(children);
40
- var arr = [];
41
-
42
- var dfs = function dfs(list) {
40
+ var dfs = function dfs(child) {
41
+ var arr = [];
42
+ var list = toArray(child);
43
43
  list.forEach(function (item) {
44
44
  if (! /*#__PURE__*/React.isValidElement(item)) return; // @ts-ignore
45
45
 
46
- if (item.type && item.type.HiName === 'CheckSelectOption') {
47
- arr.push(item); // @ts-ignore
48
- } else if (item.type && item.type.HiName === 'CheckSelectOptionGroup') {
49
- // @ts-ignore
50
- if (item.props && item.props.children) {
51
- // @ts-ignore
52
- var _list = toArray(item.props.children);
46
+ if (item.type.HiName === 'CheckSelectOption') {
47
+ var props = item.props;
48
+
49
+ var _value = props.value,
50
+ _children = props.children,
51
+ _disabled = props.disabled,
52
+ _rest = __rest(props, ["value", "children", "disabled", "groupTitle"]);
53
+
54
+ var option = {
55
+ id: _value,
56
+ title: _children,
57
+ disabled: _disabled,
58
+ rootProps: _rest
59
+ };
60
+ arr.push(option); // @ts-ignore
61
+ } else if (item.type.HiName === 'CheckSelectOptionGroup') {
62
+ var _props = item.props;
63
+
64
+ var groupId = _props.groupId,
65
+ label = _props.label,
66
+ _children2 = _props.children,
67
+ _rest2 = __rest(_props, ["groupId", "label", "children"]);
53
68
 
54
- dfs(_list);
69
+ var optGroup = {
70
+ groupId: groupId,
71
+ groupTitle: label,
72
+ children: [],
73
+ rootProps: _rest2
74
+ }; // @ts-ignore
75
+
76
+ if (_children2) {
77
+ // @ts-ignore
78
+ optGroup.children = dfs(_children2);
55
79
  }
80
+
81
+ arr.push(optGroup);
56
82
  }
57
83
  });
84
+ return arr;
58
85
  };
59
86
 
60
- dfs(list);
61
- return arr.map(function (_ref) {
62
- var props = _ref.props;
63
- return {
64
- id: props.value,
65
- title: props.children,
66
- disabled: props.disabled || false
67
- };
68
- });
87
+ return dfs(children);
69
88
  }
70
89
 
71
90
  return dataProp;
72
91
  }, [children, dataProp]);
92
+ /**
93
+ * 转换对象
94
+ */
95
+
96
+ var getKeyFields = useCallback(function (node, key) {
97
+ return node[fieldNames[key] || key];
98
+ }, [fieldNames]);
99
+ var flattedData = useMemo(function () {
100
+ // @ts-ignore
101
+ return flattenTree(data, function (node) {
102
+ if ('groupId' in node.raw) {
103
+ // @ts-ignore
104
+ node.id = node.raw.groupId; // @ts-ignore
105
+
106
+ node.groupTitle = node.raw.groupTitle; // @ts-ignore
107
+
108
+ node.groupId = node.raw.groupId;
109
+ } else {
110
+ // TODO:support children field map
111
+ node.id = getKeyFields(node.raw, 'id'); // @ts-ignore
112
+
113
+ node.title = getKeyFields(node.raw, 'title'); // @ts-ignore
114
+
115
+ node.disabled = getKeyFields(node.raw, 'disabled');
116
+ }
117
+
118
+ return node;
119
+ });
120
+ }, [data, getKeyFields]);
73
121
 
74
122
  var _useUncontrolledState = useUncontrolledState(defaultValue, valueProp, onChangeProp),
75
123
  value = _useUncontrolledState[0],
@@ -88,34 +136,30 @@ var useCheckSelect = function useCheckSelect(_a) {
88
136
  allowCheck: allowCheck
89
137
  }),
90
138
  onOptionCheck = _useCheckDefault[0],
91
- isSelectedId = _useCheckDefault[1];
92
-
93
- var _useSearch = useSearch(data),
94
- inSearch = _useSearch[0],
95
- matchedItems = _useSearch[1],
96
- inputProps = _useSearch[2],
97
- isEmpty = _useSearch[3],
98
- resetSearch = _useSearch[4];
99
-
100
- var getSearchInputProps = useCallback(function () {
101
- return {
102
- placeholder: searchPlaceholder,
103
- value: inputProps.value,
104
- onChange: inputProps.onChange
105
- };
106
- }, [searchPlaceholder, inputProps]);
139
+ isSelectedId = _useCheckDefault[1]; // const [inSearch, matchedItems, inputProps, isEmpty, resetSearch] = useSearch(data, filter)
140
+ // const getSearchInputProps = useCallback(
141
+ // () => ({
142
+ // placeholder: searchPlaceholder,
143
+ // value: inputProps.value,
144
+ // onChange: inputProps.onChange,
145
+ // }),
146
+ // [searchPlaceholder, inputProps]
147
+ // )
148
+
149
+
107
150
  return {
108
151
  rootProps: rest,
109
- data: inSearch ? matchedItems : data,
152
+ // data: inSearch ? matchedItems : data,
153
+ data: data,
154
+ flattedData: flattedData,
110
155
  value: value,
156
+ tryChangeValue: tryChangeValue,
111
157
  onSelect: onOptionCheck,
112
158
  isSelectedId: isSelectedId,
113
- emptyContent: emptyContent,
114
- getSearchInputProps: getSearchInputProps,
115
- tryChangeValue: tryChangeValue,
116
- isEmpty: isEmpty,
117
- resetSearch: resetSearch,
118
- titleRender: titleRender
159
+ emptyContent: emptyContent // getSearchInputProps,
160
+ // isEmpty,
161
+ // resetSearch,
162
+
119
163
  };
120
164
  };
121
165
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-check-select.js","sources":["../../src/use-check-select.ts"],"sourcesContent":[null],"names":["NOOP_ARRAY","NOOP_VALUE","useCheckSelect","_a","data","dataProp","children","disabled","valueProp","value","defaultValue","onChangeProp","onChange","onSelect","emptyContent","searchPlaceholder","titleRender","rest","useMemo","list","toArray","arr","dfs","forEach","item","React","isValidElement","type","HiName","push","props","map","id","title","useUncontrolledState","tryChangeValue","onSelectLatest","useLatestCallback","proxyTryChangeValue","useCallback","shouldChecked","useCheckDefault","checkedIds","onCheck","allowCheck","onOptionCheck","isSelectedId","useSearch","inSearch","matchedItems","inputProps","isEmpty","resetSearch","getSearchInputProps","placeholder","rootProps","option"],"mappings":"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"}
1
+ {"version":3,"file":"use-check-select.js","sources":["../../src/use-check-select.ts"],"sourcesContent":[null],"names":["NOOP_ARRAY","NOOP_VALUE","DEFAULT_FIELD_NAMES","useCheckSelect","_a","data","dataProp","children","disabled","valueProp","value","defaultValue","onChangeProp","onChange","onSelect","emptyContent","fieldNames","rest","useMemo","dfs","child","arr","list","toArray","forEach","item","React","isValidElement","type","HiName","props","option","id","title","rootProps","push","groupId","label","optGroup","groupTitle","getKeyFields","useCallback","node","key","flattedData","flattenTree","raw","useUncontrolledState","tryChangeValue","onSelectLatest","useLatestCallback","proxyTryChangeValue","shouldChecked","useCheckDefault","checkedIds","onCheck","allowCheck","onOptionCheck","isSelectedId"],"mappings":"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"}
@@ -1,28 +1,31 @@
1
1
  import React from 'react';
2
+ import { UseCheckSelectProps } from './use-check-select';
2
3
  import type { HiBaseHTMLProps } from '@hi-ui/core';
3
4
  import { PopperProps } from '@hi-ui/popper';
4
- import { CheckSelectItem } from './types';
5
+ import { CheckSelectDataItem, CheckSelectEventData } from './types';
6
+ import { PickerProps } from '@hi-ui/picker';
7
+ import { UseDataSource } from '@hi-ui/use-data-source';
5
8
  /**
6
9
  * TODO: What is CheckSelect
7
10
  */
8
11
  export declare const CheckSelect: React.ForwardRefExoticComponent<CheckSelectProps & React.RefAttributes<HTMLDivElement | null>>;
9
- export interface CheckSelectProps extends Omit<HiBaseHTMLProps<'div'>, 'onChange' | 'onSelect' | 'defaultValue'> {
12
+ export interface CheckSelectProps extends Omit<PickerProps, 'trigger'>, UseCheckSelectProps {
10
13
  /**
11
- * 设置当前选中值
14
+ * 自定义控制 popper 行为
12
15
  */
13
- value?: React.ReactText[];
16
+ popper?: PopperProps;
14
17
  /**
15
- * 设置当前选中值默认值
18
+ * 设置虚拟滚动容器的可视高度
16
19
  */
17
- defaultValue?: React.ReactText[];
20
+ height?: number;
18
21
  /**
19
- * 选中值改变时的回调
22
+ * 设置虚拟列表每项的固定高度
20
23
  */
21
- onChange?: (value: React.ReactText[], targetOption?: CheckSelectItem, shouldChecked?: boolean) => void;
24
+ itemHeight?: number;
22
25
  /**
23
- * 选中值时回调
26
+ * 设置 `true` 开启虚拟滚动
24
27
  */
25
- onSelect?: (value: React.ReactText[], targetOption?: CheckSelectItem, shouldChecked?: boolean) => void;
28
+ virtual?: boolean;
26
29
  /**
27
30
  * 是否可搜索(仅在 title 为字符串时支持)
28
31
  */
@@ -32,45 +35,77 @@ export interface CheckSelectProps extends Omit<HiBaseHTMLProps<'div'>, 'onChange
32
35
  */
33
36
  clearable?: boolean;
34
37
  /**
35
- * 是否禁止使用
38
+ * 是否开启换行全展示
39
+ */
40
+ wrap?: boolean;
41
+ /**
42
+ * 是否点击清理 tags
36
43
  */
37
- disabled?: boolean;
44
+ onClear?: () => void;
38
45
  /**
39
- * 设置选项为空时展示的内容
46
+ * 自定义尺寸
40
47
  */
41
- emptyContent?: React.ReactNode;
48
+ size?: 'sm' | 'md' | 'lg';
42
49
  /**
43
50
  * 自定义渲染节点的 title 内容
44
51
  */
45
- titleRender?: (item: CheckSelectItem) => React.ReactNode;
52
+ titleRender?: (item: CheckSelectEventData) => React.ReactNode;
46
53
  /**
47
54
  * 自定义选择后触发器所展示的内容,只在 title 为字符串时有效
48
55
  */
49
- displayRender?: (option: CheckSelectItem) => React.ReactNode;
56
+ displayRender?: (option: CheckSelectDataItem) => React.ReactNode;
50
57
  /**
51
58
  * 触发器输入框占位符
52
59
  */
53
60
  placeholder?: string;
54
61
  /**
55
- * 搜索输入框占位符
62
+ * 设置展现形式
56
63
  */
57
- searchPlaceholder?: string;
64
+ appearance?: 'outline' | 'unset' | 'filled';
58
65
  /**
59
- * 自定义控制 popper 行为
66
+ * 节点搜索模式,仅在mode=normal模式下生效
60
67
  */
61
- popper?: PopperProps;
68
+ searchMode?: 'highlight' | 'filter';
62
69
  /**
63
- * 搜索数据
70
+ * 自定义搜索过滤器,仅在 searchable 为 true 时有效
71
+ * 第一个参数为输入的关键字,
72
+ * 第二个为数据项,返回值为 true 时将出现在结果项
64
73
  */
65
- onSearch?: (item: CheckSelectItem) => Promise<CheckSelectItem[] | void> | void;
74
+ filterOption?: (keyword: string, item: CheckSelectDataItem) => boolean;
66
75
  /**
67
- * 选项数据
76
+ * 异步加载数据
68
77
  */
69
- data?: CheckSelectItem[];
70
- }
71
- export declare const SelectSearch: React.ForwardRefExoticComponent<Pick<SelectSearchProps, string | number> & React.RefAttributes<HTMLInputElement | null>>;
72
- export interface SelectSearchProps extends HiBaseHTMLProps {
78
+ dataSource?: UseDataSource<CheckSelectDataItem>;
79
+ /**
80
+ * 自定义下拉菜单底部渲染
81
+ */
82
+ renderExtraFooter?: () => React.ReactNode;
83
+ /**
84
+ * 自定义 input 后缀 icon
85
+ */
86
+ suffixIcon?: React.ReactNode;
87
+ /**
88
+ * 自定义清除 tags 的 icon
89
+ */
90
+ clearIcon?: React.ReactNode;
91
+ /**
92
+ * 面板打开时回调
93
+ */
94
+ onOpen?: () => void;
95
+ /**
96
+ * 面板关闭时回调
97
+ */
98
+ onClose?: () => void;
73
99
  }
100
+ /**
101
+ * TODO: What is CheckSelectOption
102
+ */
74
103
  export declare const CheckSelectOption: React.ForwardRefExoticComponent<Pick<CheckSelectOptionProps, string | number> & React.RefAttributes<HTMLDivElement | null>>;
75
104
  export interface CheckSelectOptionProps extends HiBaseHTMLProps {
76
105
  }
106
+ /**
107
+ * TODO: What is CheckSelectOptionGroup
108
+ */
109
+ export declare const CheckSelectOptionGroup: React.ForwardRefExoticComponent<Pick<CheckSelectOptionGroupProps, string | number> & React.RefAttributes<HTMLDivElement | null>>;
110
+ export interface CheckSelectOptionGroupProps extends HiBaseHTMLProps {
111
+ }