@hi-ui/check-select 4.0.0-alpha.33 → 4.0.0-alpha.37

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.
@@ -8,15 +8,17 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { __rest } from 'tslib';
11
- import React, { useMemo, useCallback } from 'react';
11
+ import { useRef, useCallback } from 'react';
12
12
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
13
+ import { uniqBy } from 'lodash';
13
14
  import { useCheck } from '@hi-ui/use-check';
14
- import { useLatestCallback, useLatestRef } from '@hi-ui/use-latest';
15
- import { toArray } from '@hi-ui/use-children';
16
- import { flattenTree } from '@hi-ui/tree-utils';
15
+ import { useLatestRef, useLatestCallback } from '@hi-ui/use-latest';
16
+ import { useData } from './hooks/use-data.js';
17
+ import { useFlattenData } from './hooks/use-flatten-data.js';
18
+ import '@hi-ui/env';
19
+ import '@hi-ui/type-assertion';
17
20
  var NOOP_ARRAY = [];
18
21
  var NOOP_VALUE = [];
19
- var DEFAULT_FIELD_NAMES = {};
20
22
 
21
23
  var useCheckSelect = function useCheckSelect(_a) {
22
24
  var _a$data = _a.data,
@@ -29,127 +31,51 @@ var useCheckSelect = function useCheckSelect(_a) {
29
31
  defaultValue = _a$defaultValue === void 0 ? NOOP_VALUE : _a$defaultValue,
30
32
  onChangeProp = _a.onChange,
31
33
  onSelect = _a.onSelect,
32
- _a$emptyContent = _a.emptyContent,
33
- emptyContent = _a$emptyContent === void 0 ? '无匹配选项' : _a$emptyContent,
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"]);
37
-
38
- var data = useMemo(function () {
39
- // @private
40
- if (children) {
41
- var dfs = function dfs(child) {
42
- var arr = [];
43
- var list = toArray(child);
44
- list.forEach(function (item) {
45
- if (! /*#__PURE__*/React.isValidElement(item)) return; // @ts-ignore
46
-
47
- if (item.type.HiName === 'CheckSelectOption') {
48
- var props = item.props;
49
-
50
- var _value = props.value,
51
- _children = props.children,
52
- _disabled = props.disabled,
53
- _rest = __rest(props, ["value", "children", "disabled", "groupTitle"]);
54
-
55
- var option = {
56
- id: _value,
57
- title: _children,
58
- disabled: _disabled,
59
- rootProps: _rest
60
- };
61
- arr.push(option); // @ts-ignore
62
- } else if (item.type.HiName === 'CheckSelectOptionGroup') {
63
- var _props = item.props;
64
-
65
- var groupId = _props.groupId,
66
- label = _props.label,
67
- _children2 = _props.children,
68
- _rest2 = __rest(_props, ["groupId", "label", "children"]);
69
-
70
- var optGroup = {
71
- groupId: groupId,
72
- groupTitle: label,
73
- children: [],
74
- rootProps: _rest2
75
- }; // @ts-ignore
76
-
77
- if (_children2) {
78
- // @ts-ignore
79
- optGroup.children = dfs(_children2);
80
- }
81
-
82
- arr.push(optGroup);
83
- }
84
- });
85
- return arr;
86
- };
87
-
88
- return dfs(children);
89
- }
90
-
91
- return dataProp;
92
- }, [children, dataProp]);
93
- /**
94
- * 转换对象
95
- */
96
-
97
- var getKeyFields = useCallback(function (node, key) {
98
- return node[fieldNames[key] || key];
99
- }, [fieldNames]);
100
- var flattedData = useMemo(function () {
101
- // @ts-ignore
102
- return flattenTree(data, function (node) {
103
- var _a;
104
-
105
- if ('groupId' in node.raw) {
106
- // @ts-ignore
107
- node.id = node.raw.groupId; // @ts-ignore
108
-
109
- node.groupTitle = node.raw.groupTitle; // @ts-ignore
110
-
111
- node.groupId = node.raw.groupId;
112
- } else {
113
- // TODO:support children field map
114
- node.id = getKeyFields(node.raw, 'id'); // @ts-ignore
115
-
116
- node.title = getKeyFields(node.raw, 'title'); // @ts-ignore
117
-
118
- node.disabled = (_a = getKeyFields(node.raw, 'disabled')) !== null && _a !== void 0 ? _a : false;
119
- }
120
-
121
- return node;
122
- });
123
- }, [data, getKeyFields]);
34
+ fieldNames = _a.fieldNames,
35
+ rest = __rest(_a, ["data", "children", "disabled", "value", "defaultValue", "onChange", "onSelect", "fieldNames"]);
36
+
37
+ var data = useData({
38
+ data: dataProp,
39
+ children: children
40
+ });
41
+ var flattedData = useFlattenData({
42
+ data: data,
43
+ fieldNames: fieldNames
44
+ });
45
+ var flattedDataRef = useLatestRef(flattedData);
124
46
 
125
47
  var _useUncontrolledState = useUncontrolledState(defaultValue, valueProp, onChangeProp),
126
48
  value = _useUncontrolledState[0],
127
49
  tryChangeValue = _useUncontrolledState[1];
128
50
 
129
51
  var onSelectLatest = useLatestCallback(onSelect);
130
- var flattedDataRef = useLatestRef(flattedData);
52
+ var selectedItemsRef = useRef([]);
131
53
  var proxyTryChangeValue = useCallback(function (value, item, shouldChecked) {
132
- // 调用用户的select
133
- var checkedItems = flattedDataRef.current // 使用最新的value
134
- .filter(function (item) {
135
- return value.includes(item.id);
136
- }).map(function (item) {
137
- return item.raw;
138
- });
139
54
  var changedItems = item;
140
55
 
141
56
  if (!Array.isArray(item)) {
142
57
  changedItems = [item];
58
+
59
+ if (shouldChecked) {
60
+ selectedItemsRef.current.push(item);
61
+ }
62
+
143
63
  onSelectLatest(value, item, shouldChecked);
144
64
  }
145
65
 
66
+ var selectedItems = uniqBy([].concat(changedItems, selectedItemsRef.current, flattedDataRef.current), 'id'); // 调用用户的select
67
+
68
+ var checkedItems = selectedItems // 使用最新的value
69
+ .filter(function (item) {
70
+ return value.includes(item.id);
71
+ }).map(function (item) {
72
+ return 'raw' in item ? item.raw : item;
73
+ });
146
74
  tryChangeValue(value, // TODO: 处理脏数据
147
75
  changedItems.map(function (item) {
148
76
  return 'raw' in item ? item.raw : item;
149
77
  }), checkedItems);
150
- }, // deps-ignore: isCheckedId no changed
151
- // eslint-disable-next-line react-hooks/exhaustive-deps
152
- [tryChangeValue, onSelectLatest, flattedDataRef]);
78
+ }, [tryChangeValue, onSelectLatest, flattedDataRef, selectedItemsRef]);
153
79
 
154
80
  var _useCheckDefault = useCheck({
155
81
  disabled: disabled,
@@ -158,30 +84,16 @@ var useCheckSelect = function useCheckSelect(_a) {
158
84
  allowCheck: allowCheck
159
85
  }),
160
86
  onOptionCheck = _useCheckDefault[0],
161
- isCheckedId = _useCheckDefault[1]; // const [inSearch, matchedItems, inputProps, isEmpty, resetSearch] = useSearch(data, filter)
162
- // const getSearchInputProps = useCallback(
163
- // () => ({
164
- // placeholder: searchPlaceholder,
165
- // value: inputProps.value,
166
- // onChange: inputProps.onChange,
167
- // }),
168
- // [searchPlaceholder, inputProps]
169
- // )
170
-
87
+ isCheckedId = _useCheckDefault[1];
171
88
 
172
89
  return {
173
90
  rootProps: rest,
174
- // data: inSearch ? matchedItems : data,
175
91
  data: data,
176
92
  flattedData: flattedData,
177
93
  value: value,
178
94
  tryChangeValue: proxyTryChangeValue,
179
95
  onSelect: onOptionCheck,
180
- isCheckedId: isCheckedId,
181
- emptyContent: emptyContent // getSearchInputProps,
182
- // isEmpty,
183
- // resetSearch,
184
-
96
+ isCheckedId: isCheckedId
185
97
  };
186
98
  };
187
99
 
@@ -1 +1 @@
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","flattedDataRef","useLatestRef","proxyTryChangeValue","shouldChecked","checkedItems","current","filter","includes","map","changedItems","Array","isArray","useCheckDefault","checkedIds","onCheck","allowCheck","onOptionCheck","isCheckedId"],"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","useCheckSelect","_a","data","dataProp","children","disabled","valueProp","value","defaultValue","onChangeProp","onChange","onSelect","fieldNames","rest","useData","flattedData","useFlattenData","flattedDataRef","useLatestRef","useUncontrolledState","tryChangeValue","onSelectLatest","useLatestCallback","selectedItemsRef","useRef","proxyTryChangeValue","useCallback","item","shouldChecked","changedItems","Array","isArray","current","push","selectedItems","uniqBy","checkedItems","filter","includes","id","map","raw","useCheckDefault","checkedIds","onCheck","allowCheck","onOptionCheck","isCheckedId","rootProps","option"],"mappings":";;;;;;;;;;;;;;;;;;;AASA,IAAMA,UAAU,GAAG,EAAnB;AACA,IAAMC,UAAU,GAAG,EAAnB;;IAEaC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,EAAD;mBAC5BC;MAAMC,gCAAWL;MACjBM,cAAAA;uBACAC;MAAAA,oCAAW;MACJC,eAAPC;2BACAC;MAAAA,4CAAeT;MACLU,kBAAVC;MACAC,cAAAA;MACAC,gBAAAA;MACGC,kBAT0B,OAAA,YAAA,YAAA,SAAA,gBAAA,YAAA,YAAA,cAAA;;MAWvBX,IAAI,GAAGY,OAAO,CAAC;AAAEZ,IAAAA,IAAI,EAAEC,QAAR;AAAkBC,IAAAA,QAAQ,EAARA;AAAlB,GAAD;MACdW,WAAW,GAAGC,cAAc,CAAC;AAAEd,IAAAA,IAAI,EAAJA,IAAF;AAAQU,IAAAA,UAAU,EAAVA;AAAR,GAAD;MAC5BK,cAAc,GAAGC,YAAY,CAACH,WAAD;;8BAEHI,oBAAoB,CAACX,YAAD,EAAeF,SAAf,EAA0BG,YAA1B;MAA7CF,KAAP;MAAca,cAAd;;MAEMC,cAAc,GAAGC,iBAAiB,CAACX,QAAD;MAElCY,gBAAgB,GAAGC,MAAM,CAAQ,EAAR;MAEzBC,mBAAmB,GAAGC,WAAW,CACrC,UACEnB,KADF,EAEEoB,IAFF,EAGEC,aAHF;QAKMC,YAAY,GAAGF;;QAEf,CAACG,KAAK,CAACC,OAAND,CAAcH,IAAdG,GAAqB;AACxBD,MAAAA,YAAY,GAAG,CAACF,IAAD,CAAfE;;UAEID,eAAe;AACjBL,QAAAA,gBAAgB,CAACS,OAAjBT,CAAyBU,IAAzBV,CAA8BI,IAA9BJ;;;AAEFF,MAAAA,cAAc,CAACd,KAAD,EAAQoB,IAAR,EAAcC,aAAd,CAAdP;;;QAGIa,aAAa,GAAGC,MAAM,WACtBN,cAAiBN,gBAAgB,CAACS,SAAYf,cAAc,CAACe,QADvC,EAE1B,IAF0B;;QAMtBI,YAAY,GAAGF,aAAa;AAAA,KAE/BG,MAFkBH,CAEX,UAACP,IAAD;aAAUpB,KAAK,CAAC+B,QAAN/B,CAAeoB,IAAI,CAACY,EAApBhC;AAFC,KAAA2B,EAGlBM,GAHkBN,CAGd,UAACP,IAAD;aAAW,SAASA,IAAT,GAAgBA,IAAI,CAACc,GAArB,GAA2Bd;AAHxB,KAAAO;AAKrBd,IAAAA,cAAc,CACZb,KADY;AAGZsB,IAAAA,YAAY,CAACW,GAAbX,CAAiB,UAACF,IAAD;aAAW,SAASA,IAAT,GAAgBA,IAAI,CAACc,GAArB,GAA2Bd;AAAvD,KAAAE,CAHY,EAIZO,YAJY,CAAdhB;AA5BmC,GAAA,EAmCrC,CAACA,cAAD,EAAiBC,cAAjB,EAAiCJ,cAAjC,EAAiDM,gBAAjD,CAnCqC;;yBAsCFmB,QAAe,CAAC;AACnDrC,IAAAA,QAAQ,EAARA,QADmD;AAEnDsC,IAAAA,UAAU,EAAEpC,KAFuC;AAGnDqC,IAAAA,OAAO,EAAEnB,mBAH0C;AAInDoB,IAAAA,UAAU,EAAVA;AAJmD,GAAD;MAA7CC,aAAP;MAAsBC,WAAtB;;SAOO;AACLC,IAAAA,SAAS,EAAEnC,IADN;AAELX,IAAAA,IAAI,EAAJA,IAFK;AAGLa,IAAAA,WAAW,EAAXA,WAHK;AAILR,IAAAA,KAAK,EAALA,KAJK;AAKLa,IAAAA,cAAc,EAAEK,mBALX;AAMLd,IAAAA,QAAQ,EAAEmC,aANL;AAOLC,IAAAA,WAAW,EAAXA;AAPK;;;AA4DT,IAAMF,UAAU,GAAG,SAAbA,UAAa,CAACI,MAAD;SAAiB,CAACA,MAAM,CAAC5C;AAA5C,CAAA;;"}
@@ -1,27 +1,19 @@
1
1
  /// <reference types="react" />
2
2
  export declare const CheckSelectProvider: import("react").Provider<Omit<{
3
- rootProps: {
4
- displayRender?: ((option: import("./types").CheckSelectEventData) => import("react").ReactNode) | undefined;
5
- placeholder?: string | undefined;
6
- };
3
+ rootProps: {};
7
4
  data: any[];
8
5
  flattedData: import("packages/utils/tree-utils/lib/types/types").BaseFlattedTreeNodeData<any, any>[];
9
6
  value: import("react").ReactText[];
10
7
  tryChangeValue: (value: import("react").ReactText[], item: import("./types").CheckSelectEventData | import("./types").CheckSelectEventData[], shouldChecked: boolean) => void;
11
8
  onSelect: (targetItem: import("packages/hooks/use-check/lib/types").UseCheckItem, shouldChecked: boolean) => void;
12
9
  isCheckedId: (id: import("react").ReactText) => boolean;
13
- emptyContent: boolean | import("react").ReactChild | import("react").ReactFragment | import("react").ReactPortal | null;
14
10
  }, "rootProps"> | null>;
15
11
  export declare const useCheckSelectContext: () => Omit<{
16
- rootProps: {
17
- displayRender?: ((option: import("./types").CheckSelectEventData) => import("react").ReactNode) | undefined;
18
- placeholder?: string | undefined;
19
- };
12
+ rootProps: {};
20
13
  data: any[];
21
14
  flattedData: import("packages/utils/tree-utils/lib/types/types").BaseFlattedTreeNodeData<any, any>[];
22
15
  value: import("react").ReactText[];
23
16
  tryChangeValue: (value: import("react").ReactText[], item: import("./types").CheckSelectEventData | import("./types").CheckSelectEventData[], shouldChecked: boolean) => void;
24
17
  onSelect: (targetItem: import("packages/hooks/use-check/lib/types").UseCheckItem, shouldChecked: boolean) => void;
25
18
  isCheckedId: (id: import("react").ReactText) => boolean;
26
- emptyContent: boolean | import("react").ReactChild | import("react").ReactFragment | import("react").ReactPortal | null;
27
19
  }, "rootProps">;
@@ -1 +1,3 @@
1
+ export * from './use-data';
2
+ export * from './use-flatten-data';
1
3
  export * from './use-search';
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { CheckSelectMergedItem } from '../types';
3
+ export declare const useData: ({ data, children }: any) => any[];
4
+ export declare const parseChildren: (children: React.ReactNode) => CheckSelectMergedItem[];
@@ -0,0 +1,2 @@
1
+ export declare const useFlattenData: ({ data, fieldNames }: any) => import("packages/utils/tree-utils/lib/types/types").BaseFlattedTreeNodeData<any, any>[];
2
+ export declare const flattenData: ({ data, fieldNames }: any) => import("packages/utils/tree-utils/lib/types/types").BaseFlattedTreeNodeData<any, any>[];
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { CheckSelectItem } from '../types';
2
+ import { CheckSelectMergedItem } from '../types';
3
3
  /**
4
4
  * 支持搜索功能的 hook
5
5
  */
6
- export declare const useSearch: (flattedData: CheckSelectItem[], filter?: ((keyword: string, option: CheckSelectItem) => boolean) | undefined) => readonly [boolean, CheckSelectItem[], {
6
+ export declare const useSearch: (flattedData: CheckSelectMergedItem[], filter?: ((keyword: string, option: CheckSelectMergedItem) => boolean) | undefined) => readonly [boolean, CheckSelectMergedItem[], {
7
7
  value: string;
8
8
  onChange: (evt: React.ChangeEvent<HTMLInputElement>) => void;
9
9
  }, boolean, () => void];
@@ -13,7 +13,7 @@ export interface CheckSelectDataItem {
13
13
  */
14
14
  disabled?: boolean;
15
15
  }
16
- export interface CheckSelectDataGroupItem {
16
+ export interface CheckSelectGroupDataItem {
17
17
  /**
18
18
  * 节点组标题
19
19
  */
@@ -23,7 +23,7 @@ export interface CheckSelectDataGroupItem {
23
23
  */
24
24
  children?: CheckSelectDataItem[];
25
25
  }
26
- export declare type CheckSelectItem = CheckSelectDataItem & CheckSelectDataGroupItem;
26
+ export declare type CheckSelectMergedItem = CheckSelectDataItem & CheckSelectGroupDataItem;
27
27
  export interface CheckSelectRequiredProps {
28
28
  checked: boolean;
29
29
  focused: boolean;
@@ -1,23 +1,14 @@
1
1
  import React from 'react';
2
2
  import { CheckSelectDataItem, CheckSelectEventData } from './types';
3
- export declare const useCheckSelect: ({ data: dataProp, children, disabled, value: valueProp, defaultValue, onChange: onChangeProp, onSelect, emptyContent, searchPlaceholder, filter, fieldNames, ...rest }: UseCheckSelectProps) => {
4
- rootProps: {
5
- /**
6
- * 自定义选择后触发器所展示的内容,只在 title 为字符串时有效
7
- */
8
- displayRender?: ((option: CheckSelectEventData) => React.ReactNode) | undefined;
9
- /**
10
- * 触发器输入框占位符
11
- */
12
- placeholder?: string | undefined;
13
- };
3
+ import { HiBaseFieldNames } from '@hi-ui/core';
4
+ export declare const useCheckSelect: ({ data: dataProp, children, disabled, value: valueProp, defaultValue, onChange: onChangeProp, onSelect, fieldNames, ...rest }: UseCheckSelectProps) => {
5
+ rootProps: {};
14
6
  data: any[];
15
7
  flattedData: import("packages/utils/tree-utils/lib/types/types").BaseFlattedTreeNodeData<any, any>[];
16
8
  value: React.ReactText[];
17
9
  tryChangeValue: (value: React.ReactText[], item: CheckSelectEventData | CheckSelectEventData[], shouldChecked: boolean) => void;
18
10
  onSelect: (targetItem: import("@hi-ui/use-check").UseCheckItem, shouldChecked: boolean) => void;
19
11
  isCheckedId: (id: React.ReactText) => boolean;
20
- emptyContent: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null;
21
12
  };
22
13
  export interface UseCheckSelectProps {
23
14
  /**
@@ -37,32 +28,13 @@ export interface UseCheckSelectProps {
37
28
  onChange?: (value: React.ReactText[], changedItems?: CheckSelectDataItem[], checkedItems?: CheckSelectDataItem[]) => void;
38
29
  /**
39
30
  * 选中值时回调
31
+ * @private
40
32
  */
41
33
  onSelect?: (value: React.ReactText[], targetOption: CheckSelectEventData, shouldChecked: boolean) => void;
42
34
  /**
43
35
  * 是否禁止使用
44
36
  */
45
37
  disabled?: boolean;
46
- /**
47
- * 设置选项为空时展示的内容
48
- */
49
- emptyContent?: React.ReactNode;
50
- /**
51
- * 自定义选择后触发器所展示的内容,只在 title 为字符串时有效
52
- */
53
- displayRender?: (option: CheckSelectEventData) => React.ReactNode;
54
- /**
55
- * 触发器输入框占位符
56
- */
57
- placeholder?: string;
58
- /**
59
- * 搜索输入框占位符
60
- */
61
- searchPlaceholder?: string;
62
- /**
63
- * 启用自定义过滤函数实现根据搜索框内容,自定义搜索
64
- */
65
- filter?: (keyword: string, option: CheckSelectEventData) => boolean;
66
38
  /**
67
39
  * 选项数据
68
40
  */
@@ -74,6 +46,6 @@ export interface UseCheckSelectProps {
74
46
  /**
75
47
  * 设置 data 中 id, title, disabled, children 对应的 key
76
48
  */
77
- fieldNames?: Record<string, string>;
49
+ fieldNames?: HiBaseFieldNames;
78
50
  }
79
51
  export declare type UseSelectReturn = ReturnType<typeof useCheckSelect>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/check-select",
3
- "version": "4.0.0-alpha.33",
3
+ "version": "4.0.0-alpha.37",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HIUI <mi-hiui@xiaomi.com>",
@@ -43,29 +43,29 @@
43
43
  "url": "https://github.com/XiaoMi/hiui/issues"
44
44
  },
45
45
  "dependencies": {
46
- "@hi-ui/checkbox": "^4.0.0-alpha.30",
46
+ "@hi-ui/checkbox": "^4.0.0-alpha.32",
47
47
  "@hi-ui/classname": "^4.0.0-alpha.3",
48
- "@hi-ui/core": "^4.0.0-alpha.19",
49
- "@hi-ui/core-css": "^4.0.0-alpha.13",
48
+ "@hi-ui/core": "^4.0.0-alpha.20",
49
+ "@hi-ui/core-css": "^4.0.0-alpha.14",
50
50
  "@hi-ui/env": "^4.0.0-alpha.6",
51
- "@hi-ui/func-utils": "^4.0.0-alpha.5",
52
- "@hi-ui/highlighter": "^4.0.0-alpha.12",
53
- "@hi-ui/icons": "^4.0.0-alpha.28",
54
- "@hi-ui/input": "^4.0.0-alpha.33",
55
- "@hi-ui/locale-context": "^4.0.0-alpha.18",
56
- "@hi-ui/picker": "^4.0.0-alpha.17",
57
- "@hi-ui/popper": "^4.0.0-alpha.24",
58
- "@hi-ui/tag-input": "^4.0.0-alpha.24",
51
+ "@hi-ui/func-utils": "^4.0.0-alpha.6",
52
+ "@hi-ui/highlighter": "^4.0.0-alpha.13",
53
+ "@hi-ui/icons": "^4.0.0-alpha.29",
54
+ "@hi-ui/input": "^4.0.0-alpha.34",
55
+ "@hi-ui/locale-context": "^4.0.0-alpha.19",
56
+ "@hi-ui/picker": "^4.0.0-alpha.19",
57
+ "@hi-ui/popper": "^4.0.0-alpha.25",
58
+ "@hi-ui/tag-input": "^4.0.0-alpha.25",
59
59
  "@hi-ui/times": "^4.0.0-alpha.4",
60
- "@hi-ui/tree-utils": "^4.0.0-alpha.12",
61
- "@hi-ui/type-assertion": "^4.0.0-alpha.13",
62
- "@hi-ui/use-check": "^4.0.0-alpha.19",
60
+ "@hi-ui/tree-utils": "^4.0.0-alpha.13",
61
+ "@hi-ui/type-assertion": "^4.0.0-alpha.14",
62
+ "@hi-ui/use-check": "^4.0.0-alpha.21",
63
63
  "@hi-ui/use-children": "^4.0.0-alpha.4",
64
- "@hi-ui/use-data-source": "^4.0.0-alpha.7",
64
+ "@hi-ui/use-data-source": "^4.0.0-alpha.8",
65
65
  "@hi-ui/use-latest": "^4.0.0-alpha.5",
66
- "@hi-ui/use-search-mode": "^4.0.0-alpha.13",
67
- "@hi-ui/use-toggle": "^4.0.0-alpha.11",
68
- "@hi-ui/use-uncontrolled-state": "^4.0.0-alpha.13",
66
+ "@hi-ui/use-search-mode": "^4.0.0-alpha.16",
67
+ "@hi-ui/use-toggle": "^4.0.0-alpha.12",
68
+ "@hi-ui/use-uncontrolled-state": "^4.0.0-alpha.14",
69
69
  "lodash": "^4.17.21",
70
70
  "rc-virtual-list": "^3.4.1"
71
71
  },
@@ -78,5 +78,5 @@
78
78
  "react": "^17.0.1",
79
79
  "react-dom": "^17.0.1"
80
80
  },
81
- "gitHead": "837611fa550447716355489c7cd6c6dcb2b79a1c"
81
+ "gitHead": "e2c5a8d51cea3fbc08cb475b4acfb0972f95d418"
82
82
  }