@hi-ui/check-select 4.0.0-alpha.6 → 4.0.0-beta.0
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.
- package/README.md +116 -7
- package/lib/cjs/CheckSelect.js +290 -144
- package/lib/cjs/CheckSelect.js.map +1 -1
- package/lib/cjs/hooks/use-data.js +104 -0
- package/lib/cjs/hooks/use-data.js.map +1 -0
- package/lib/cjs/hooks/use-flatten-data.js +78 -0
- package/lib/cjs/hooks/use-flatten-data.js.map +1 -0
- package/lib/cjs/index.js +0 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/styles/index.scss.js +1 -1
- package/lib/cjs/use-check-select.js +50 -96
- package/lib/cjs/use-check-select.js.map +1 -1
- package/lib/esm/CheckSelect.js +284 -141
- package/lib/esm/CheckSelect.js.map +1 -1
- package/lib/esm/hooks/use-data.js +94 -0
- package/lib/esm/hooks/use-data.js.map +1 -0
- package/lib/esm/hooks/use-flatten-data.js +69 -0
- package/lib/esm/hooks/use-flatten-data.js.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/styles/index.scss.js +1 -1
- package/lib/esm/use-check-select.js +49 -88
- package/lib/esm/use-check-select.js.map +1 -1
- package/lib/types/CheckSelect.d.ts +57 -21
- package/lib/types/context.d.ts +8 -30
- package/lib/types/hooks/index.d.ts +2 -0
- package/lib/types/hooks/use-data.d.ts +4 -0
- package/lib/types/hooks/use-flatten-data.d.ts +2 -0
- package/lib/types/hooks/use-search.d.ts +2 -2
- package/lib/types/types.d.ts +29 -5
- package/lib/types/use-check-select.d.ts +20 -52
- package/package.json +29 -19
- package/lib/cjs/hooks/use-search.js +0 -154
- package/lib/cjs/hooks/use-search.js.map +0 -1
- package/lib/cjs/utils/type-assertion/lib/esm/index.js +0 -42
- package/lib/cjs/utils/type-assertion/lib/esm/index.js.map +0 -1
- package/lib/esm/hooks/use-search.js +0 -144
- package/lib/esm/hooks/use-search.js.map +0 -1
- package/lib/esm/utils/type-assertion/lib/esm/index.js +0 -33
- package/lib/esm/utils/type-assertion/lib/esm/index.js.map +0 -1
@@ -0,0 +1,104 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/check-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-select#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
'use strict';
|
11
|
+
|
12
|
+
Object.defineProperty(exports, '__esModule', {
|
13
|
+
value: true
|
14
|
+
});
|
15
|
+
|
16
|
+
var tslib = require('tslib');
|
17
|
+
|
18
|
+
var React = require('react');
|
19
|
+
|
20
|
+
var useChildren = require('@hi-ui/use-children');
|
21
|
+
|
22
|
+
var NOOP_ARRAY = [];
|
23
|
+
|
24
|
+
var useData = function useData(_ref) {
|
25
|
+
var data = _ref.data,
|
26
|
+
children = _ref.children;
|
27
|
+
return React.useMemo(function () {
|
28
|
+
var mergedData; // data 优先级大于内嵌式组合
|
29
|
+
|
30
|
+
if (Array.isArray(data)) {
|
31
|
+
mergedData = data;
|
32
|
+
} else if (children) {
|
33
|
+
mergedData = parseChildren(children);
|
34
|
+
}
|
35
|
+
|
36
|
+
return mergedData || NOOP_ARRAY;
|
37
|
+
}, [children, data]);
|
38
|
+
};
|
39
|
+
|
40
|
+
var parseChildren = function parseChildren(children) {
|
41
|
+
var data = [];
|
42
|
+
var list = useChildren.toArray(children);
|
43
|
+
list.forEach(function (item) {
|
44
|
+
if (! /*#__PURE__*/React.isValidElement(item)) return;
|
45
|
+
if (!item.type) return;
|
46
|
+
var HiName = item.type.HiName;
|
47
|
+
|
48
|
+
switch (HiName) {
|
49
|
+
case 'CheckSelectOption':
|
50
|
+
var option = parseOption(item);
|
51
|
+
data.push(option);
|
52
|
+
break;
|
53
|
+
|
54
|
+
case 'CheckSelectOptionGroup':
|
55
|
+
var optGroup = parseOptionGroup(item);
|
56
|
+
data.push(optGroup);
|
57
|
+
break;
|
58
|
+
}
|
59
|
+
});
|
60
|
+
return data;
|
61
|
+
};
|
62
|
+
|
63
|
+
var parseOption = function parseOption(node) {
|
64
|
+
var _a = node.props,
|
65
|
+
value = _a.value,
|
66
|
+
children = _a.children,
|
67
|
+
disabled = _a.disabled,
|
68
|
+
rest = tslib.__rest(_a, ["value", "children", "disabled", "groupTitle"]);
|
69
|
+
|
70
|
+
var option = {
|
71
|
+
id: value,
|
72
|
+
title: children,
|
73
|
+
disabled: disabled,
|
74
|
+
// TODO:使用 Symbol 注入,避免 data 传入使用
|
75
|
+
rootProps: rest
|
76
|
+
};
|
77
|
+
return option;
|
78
|
+
};
|
79
|
+
|
80
|
+
var parseOptionGroup = function parseOptionGroup(node) {
|
81
|
+
var key = node.key,
|
82
|
+
_a = node.props,
|
83
|
+
groupId = _a.groupId,
|
84
|
+
label = _a.label,
|
85
|
+
children = _a.children,
|
86
|
+
rest = tslib.__rest(_a, ["groupId", "label", "children"]);
|
87
|
+
|
88
|
+
var optGroup = {
|
89
|
+
groupId: groupId !== null && groupId !== void 0 ? groupId : key,
|
90
|
+
groupTitle: label,
|
91
|
+
rootProps: rest,
|
92
|
+
children: []
|
93
|
+
};
|
94
|
+
|
95
|
+
if (children) {
|
96
|
+
optGroup.children = parseChildren(children);
|
97
|
+
}
|
98
|
+
|
99
|
+
return optGroup;
|
100
|
+
};
|
101
|
+
|
102
|
+
exports.parseChildren = parseChildren;
|
103
|
+
exports.useData = useData;
|
104
|
+
//# sourceMappingURL=use-data.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"use-data.js","sources":["../../../src/hooks/use-data.ts"],"sourcesContent":[null],"names":["NOOP_ARRAY","useData","data","children","useMemo","mergedData","Array","isArray","parseChildren","list","toArray","forEach","item","isValidElement","type","HiName","option","parseOption","push","optGroup","parseOptionGroup","node","_a","value","disabled","rest","id","title","rootProps","key","groupId","label","groupTitle"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,UAAU,GAAG,EAAnB;;IAEaC,OAAO,GAAG,SAAVA,OAAU,KAAA;MAAGC,YAAAA;MAAMC,gBAAAA;SACvBC,aAAAA,CAAQ;QACTC;;QAGAC,KAAK,CAACC,OAAND,CAAcJ,IAAdI,GAAqB;AACvBD,MAAAA,UAAU,GAAGH,IAAbG;AADF,WAEO,IAAIF,QAAJ,EAAc;AACnBE,MAAAA,UAAU,GAAGG,aAAa,CAACL,QAAD,CAA1BE;;;WAGKA,UAAU,IAAIL;AAVT,GAAPI,EAWJ,CAACD,QAAD,EAAWD,IAAX,CAXIE;;;IAcII,aAAa,GAAG,SAAhBA,aAAgB,CAACL,QAAD;MACrBD,IAAI,GAAG;MACPO,IAAI,GAAGC,mBAAAA,CAAQP,QAARO;AAEbD,EAAAA,IAAI,CAACE,OAALF,CAAa,UAACG,IAAD;QACP,eAACC,oBAAAA,CAAeD,IAAfC,GAAsB;QACvB,CAACD,IAAI,CAACE,MAAM;QAGNC,MADV,GAEIH,IAFJ,CACEE,IACEF,CADMG;;YAGFA;WACD;YACGC,MAAM,GAAGC,WAAW,CAACL,IAAD;AAC1BV,QAAAA,IAAI,CAACgB,IAALhB,CAAUc,MAAVd;;;WAEG;YACGiB,QAAQ,GAAGC,gBAAgB,CAACR,IAAD;AACjCV,QAAAA,IAAI,CAACgB,IAALhB,CAAUiB,QAAVjB;;;AAfN,GAAAO;SAoBOP;;;AAGT,IAAMe,WAAW,GAAG,SAAdA,WAAc,CAACI,IAAD;MAEhBC,KACED,IAAI;MADGE,KAAT,KAAA,CAASA;MAAOpB,QAAhB,KAAA,CAAgBA;MAAUqB,QAA1B,KAAA,CAA0BA;MAAyBC,IAAnD,oBAAO,QAAA,YAAA,YAAA,cAAA;;MAGHT,MAAM,GAAG;AACbU,IAAAA,EAAE,EAAEH,KADS;AAEbI,IAAAA,KAAK,EAAExB,QAFM;AAGbqB,IAAAA,QAAQ,EAAEA,QAHG;;AAKbI,IAAAA,SAAS,EAAEH;AALE;SAQRT;AAbT,CAAA;;AAgBA,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,IAAD;MAErBQ,GADI,GAGFR,IAHE,CACJQ;MACAP,EAFI,GAGFD,IAAI;MADGS,OAFL,KAAA,CAEKA;MAASC,KAFd,KAAA,CAEcA;MAAO5B,QAFrB,KAAA,CAEqBA;MAAasB,IAFlC,oBAEG,UAAA,SAAA,YAAA;;MAGHN,QAAQ,GAAG;AACfW,IAAAA,OAAO,EAAEA,OAAO,SAAPA,IAAAA,OAAO,WAAPA,GAAAA,OAAAA,GAAWD,GADL;AAEfG,IAAAA,UAAU,EAAED,KAFG;AAGfH,IAAAA,SAAS,EAAEH,IAHI;AAIftB,IAAAA,QAAQ,EAAE;AAJK;;MAObA,UAAU;AACZgB,IAAAA,QAAQ,CAAChB,QAATgB,GAAoBX,aAAa,CAACL,QAAD,CAAjCgB;;;SAGKA;AAjBT,CAAA;;;"}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/check-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-select#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
'use strict';
|
11
|
+
|
12
|
+
Object.defineProperty(exports, '__esModule', {
|
13
|
+
value: true
|
14
|
+
});
|
15
|
+
|
16
|
+
var React = require('react');
|
17
|
+
|
18
|
+
var treeUtils = require('@hi-ui/tree-utils');
|
19
|
+
|
20
|
+
var NOOP_ARRAY = [];
|
21
|
+
var DEFAULT_FIELD_NAMES = {};
|
22
|
+
|
23
|
+
var useFlattenData = function useFlattenData(_ref) {
|
24
|
+
var _ref$data = _ref.data,
|
25
|
+
data = _ref$data === void 0 ? NOOP_ARRAY : _ref$data,
|
26
|
+
_ref$fieldNames = _ref.fieldNames,
|
27
|
+
fieldNames = _ref$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _ref$fieldNames;
|
28
|
+
var flattedData = React.useMemo(function () {
|
29
|
+
return flattenData({
|
30
|
+
data: data,
|
31
|
+
fieldNames: fieldNames
|
32
|
+
});
|
33
|
+
}, [data, fieldNames]);
|
34
|
+
return flattedData;
|
35
|
+
};
|
36
|
+
|
37
|
+
var flattenData = function flattenData(_ref2) {
|
38
|
+
var _ref2$data = _ref2.data,
|
39
|
+
data = _ref2$data === void 0 ? NOOP_ARRAY : _ref2$data,
|
40
|
+
_ref2$fieldNames = _ref2.fieldNames,
|
41
|
+
fieldNames = _ref2$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _ref2$fieldNames; // 转换对象
|
42
|
+
|
43
|
+
var getKeyFields = function getKeyFields(node, key) {
|
44
|
+
return node[fieldNames[key] || key];
|
45
|
+
};
|
46
|
+
|
47
|
+
return treeUtils.baseFlattenTree({
|
48
|
+
tree: data,
|
49
|
+
childrenFieldName: function childrenFieldName(node) {
|
50
|
+
return getKeyFields(node, 'children');
|
51
|
+
},
|
52
|
+
transform: function transform(node) {
|
53
|
+
var _a; // 不对外暴露
|
54
|
+
|
55
|
+
|
56
|
+
delete node.parent;
|
57
|
+
var raw = node.raw;
|
58
|
+
|
59
|
+
if ('groupId' in raw) {
|
60
|
+
// 用于虚拟列表唯一 id
|
61
|
+
node.id = raw.groupId;
|
62
|
+
node.groupId = raw.groupId;
|
63
|
+
node.groupTitle = raw.groupTitle;
|
64
|
+
} else {
|
65
|
+
// 支持 fieldNames 转换
|
66
|
+
node.id = getKeyFields(raw, 'id');
|
67
|
+
node.title = getKeyFields(raw, 'title');
|
68
|
+
node.disabled = (_a = getKeyFields(raw, 'disabled')) !== null && _a !== void 0 ? _a : false;
|
69
|
+
}
|
70
|
+
|
71
|
+
return node;
|
72
|
+
}
|
73
|
+
});
|
74
|
+
};
|
75
|
+
|
76
|
+
exports.flattenData = flattenData;
|
77
|
+
exports.useFlattenData = useFlattenData;
|
78
|
+
//# sourceMappingURL=use-flatten-data.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"use-flatten-data.js","sources":["../../../src/hooks/use-flatten-data.ts"],"sourcesContent":[null],"names":["NOOP_ARRAY","DEFAULT_FIELD_NAMES","useFlattenData","data","fieldNames","flattedData","useMemo","flattenData","getKeyFields","node","key","baseFlattenTree","tree","childrenFieldName","transform","parent","raw","id","groupId","groupTitle","title","disabled"],"mappings":";;;;;;;;;;;;;;;;;;;AAIA,IAAMA,UAAU,GAAG,EAAnB;AACA,IAAMC,mBAAmB,GAAG,EAA5B;;IAEaC,cAAc,GAAG,SAAjBA,cAAiB,KAAA;uBAAGC;MAAAA,8BAAOH;6BAAYI;MAAAA,0CAAaH;MACzDI,WAAW,GAAGC,aAAAA,CAAQ;WACnBC,WAAW,CAAC;AAAEJ,MAAAA,IAAI,EAAJA,IAAF;AAAQC,MAAAA,UAAU,EAAVA;AAAR,KAAD;AADO,GAAPE,EAEjB,CAACH,IAAD,EAAOC,UAAP,CAFiBE;SAIbD;;;IAGIE,WAAW,GAAG,SAAdA,WAAc,MAAA;yBAAGJ;MAAAA,+BAAOH;+BAAYI;MAAAA,2CAAaH;;MAEtDO,YAAY,GAAG,SAAfA,YAAe,CAACC,IAAD,EAAYC,GAAZ;WAAyCD,IAAI,CAACL,UAAU,CAACM,GAAD,CAAVN,IAAmBM,GAApB;AAAlE;;SAEOC,yBAAAA,CAAgB;AACrBC,IAAAA,IAAI,EAAET,IADe;AAErBU,IAAAA,iBAAiB,EAAE,0BAAA,CAACJ,IAAD;aAAUD,YAAY,CAACC,IAAD,EAAO,UAAP;AAFpB,KAAA;AAGrBK,IAAAA,SAAS,EAAE,kBAAA,CAACL,IAAD;;;;aAEFA,IAAI,CAACM;UAEJC,GAAR,GAAgBP,IAAhB,CAAQO;;UAEJ,aAAaA,KAAK;;AAEpBP,QAAAA,IAAI,CAACQ,EAALR,GAAUO,GAAG,CAACE,OAAdT;AACAA,QAAAA,IAAI,CAACS,OAALT,GAAeO,GAAG,CAACE,OAAnBT;AACAA,QAAAA,IAAI,CAACU,UAALV,GAAkBO,GAAG,CAACG,UAAtBV;AAJF,aAKO;;AAELA,QAAAA,IAAI,CAACQ,EAALR,GAAUD,YAAY,CAACQ,GAAD,EAAM,IAAN,CAAtBP;AACAA,QAAAA,IAAI,CAACW,KAALX,GAAaD,YAAY,CAACQ,GAAD,EAAM,OAAN,CAAzBP;AACAA,QAAAA,IAAI,CAACY,QAALZ,GAAgB,MAAAD,YAAY,CAACQ,GAAD,EAAM,UAAN,CAAZ,UAAA,iBAAA,KAAA,GAAiC,KAAjDP;;;aAEKA;;AApBY,GAAhBE;;;;"}
|
package/lib/cjs/index.js
CHANGED
@@ -20,6 +20,5 @@ var CheckSelect = require('./CheckSelect.js');
|
|
20
20
|
exports.CheckSelect = CheckSelect.CheckSelect;
|
21
21
|
exports.CheckSelectOption = CheckSelect.CheckSelectOption;
|
22
22
|
exports.CheckSelectOptionGroup = CheckSelect.CheckSelectOptionGroup;
|
23
|
-
exports.CheckSelectSearch = CheckSelect.CheckSelectSearch;
|
24
23
|
exports["default"] = CheckSelect.CheckSelect;
|
25
24
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -12,7 +12,7 @@
|
|
12
12
|
Object.defineProperty(exports, '__esModule', {
|
13
13
|
value: true
|
14
14
|
});
|
15
|
-
var css_248z = "
|
15
|
+
var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-check-select-option {\n margin-top: 4px;\n margin-top: var(--hi-v4-spacing-2, 4px);\n margin-bottom: 4px;\n margin-bottom: var(--hi-v4-spacing-2, 4px);\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n position: relative;\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n cursor: pointer;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n font-weight: 400;\n font-weight: var(--hi-v4-text-weight-normal, 400);\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733);\n line-height: 1.25rem;\n line-height: var(--hi-v4-text-lineheight-sm, 1.25rem); }\n.hi-v4-check-select-option__indent {\n display: inline-block;\n width: 16px;\n height: 100%; }\n.hi-v4-check-select-option__title {\n display: inline-block;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n padding: 6px;\n padding: var(--hi-v4-spacing-3, 6px);\n font-size: inherit;\n font-weight: inherit;\n color: inherit;\n line-height: inherit; }\n.hi-v4-check-select-option:hover {\n background-color: #f2f4f7;\n background-color: var(--hi-v4-color-gray-100, #f2f4f7); }\n.hi-v4-check-select-option--focused {\n background-color: #f2f4f7;\n background-color: var(--hi-v4-color-gray-100, #f2f4f7); }\n.hi-v4-check-select-option--disabled {\n cursor: not-allowed;\n color: #929aa6;\n color: var(--hi-v4-color-gray-500, #929aa6); }\n.hi-v4-check-select-option-group {\n display: inline-block;\n margin-top: 12px;\n margin-top: var(--hi-v4-spacing-6, 12px);\n margin-bottom: 4px;\n margin-bottom: var(--hi-v4-spacing-2, 4px);\n padding: 6px 0 6px 6px;\n padding: var(--hi-v4-spacing-3, 6px) 0 var(--hi-v4-spacing-3, 6px) var(--hi-v4-spacing-3, 6px);\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n font-weight: 400;\n font-weight: var(--hi-v4-text-weight-normal, 400);\n color: #929aa6;\n color: var(--hi-v4-color-gray-500, #929aa6);\n line-height: 1.25rem;\n line-height: var(--hi-v4-text-lineheight-sm, 1.25rem); }\n.hi-v4-check-select-option-group:first-child {\n margin-top: 4px;\n margin-top: var(--hi-v4-spacing-2, 4px); }\n";
|
16
16
|
|
17
17
|
var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
|
18
18
|
|
@@ -9,8 +9,6 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
13
|
-
|
14
12
|
Object.defineProperty(exports, '__esModule', {
|
15
13
|
value: true
|
16
14
|
});
|
@@ -21,21 +19,19 @@ var React = require('react');
|
|
21
19
|
|
22
20
|
var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
23
21
|
|
24
|
-
var
|
22
|
+
var lodash = require('lodash');
|
25
23
|
|
26
24
|
var useCheck = require('@hi-ui/use-check');
|
27
25
|
|
28
26
|
var useLatest = require('@hi-ui/use-latest');
|
29
27
|
|
30
|
-
var
|
28
|
+
var useData = require('./hooks/use-data.js');
|
31
29
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
};
|
36
|
-
}
|
30
|
+
var useFlattenData = require('./hooks/use-flatten-data.js');
|
31
|
+
|
32
|
+
require('@hi-ui/env');
|
37
33
|
|
38
|
-
|
34
|
+
require('@hi-ui/type-assertion');
|
39
35
|
|
40
36
|
var NOOP_ARRAY = [];
|
41
37
|
var NOOP_VALUE = [];
|
@@ -51,75 +47,51 @@ var useCheckSelect = function useCheckSelect(_a) {
|
|
51
47
|
defaultValue = _a$defaultValue === void 0 ? NOOP_VALUE : _a$defaultValue,
|
52
48
|
onChangeProp = _a.onChange,
|
53
49
|
onSelect = _a.onSelect,
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
var
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
list.forEach(function (item) {
|
67
|
-
if (! /*#__PURE__*/React__default['default'].isValidElement(item)) return; // @ts-ignore
|
68
|
-
|
69
|
-
if (item.type.HiName === 'CheckSelectOption') {
|
70
|
-
var props = item.props;
|
71
|
-
|
72
|
-
var _value = props.value,
|
73
|
-
_children = props.children,
|
74
|
-
_disabled = props.disabled,
|
75
|
-
_rest = tslib.__rest(props, ["value", "children", "disabled", "groupTitle"]);
|
76
|
-
|
77
|
-
var option = {
|
78
|
-
id: _value,
|
79
|
-
title: _children,
|
80
|
-
disabled: _disabled,
|
81
|
-
rootProps: _rest
|
82
|
-
};
|
83
|
-
arr.push(option); // @ts-ignore
|
84
|
-
} else if (item.type.HiName === 'CheckSelectOptionGroup') {
|
85
|
-
var _props = item.props;
|
86
|
-
|
87
|
-
var label = _props.label,
|
88
|
-
_children2 = _props.children,
|
89
|
-
_rest2 = tslib.__rest(_props, ["label", "children"]);
|
90
|
-
|
91
|
-
var optGroup = {
|
92
|
-
groupTitle: label,
|
93
|
-
children: [],
|
94
|
-
rootProps: _rest2
|
95
|
-
}; // @ts-ignore
|
96
|
-
|
97
|
-
if (_children2) {
|
98
|
-
// @ts-ignore
|
99
|
-
optGroup.children = dfs(_children2);
|
100
|
-
}
|
101
|
-
|
102
|
-
arr.push(optGroup);
|
103
|
-
}
|
104
|
-
});
|
105
|
-
return arr;
|
106
|
-
};
|
107
|
-
|
108
|
-
return dfs(children);
|
109
|
-
}
|
110
|
-
|
111
|
-
return dataProp;
|
112
|
-
}, [children, dataProp]);
|
50
|
+
fieldNames = _a.fieldNames,
|
51
|
+
rest = tslib.__rest(_a, ["data", "children", "disabled", "value", "defaultValue", "onChange", "onSelect", "fieldNames"]);
|
52
|
+
|
53
|
+
var data = useData.useData({
|
54
|
+
data: dataProp,
|
55
|
+
children: children
|
56
|
+
});
|
57
|
+
var flattedData = useFlattenData.useFlattenData({
|
58
|
+
data: data,
|
59
|
+
fieldNames: fieldNames
|
60
|
+
});
|
61
|
+
var flattedDataRef = useLatest.useLatestRef(flattedData);
|
113
62
|
|
114
63
|
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultValue, valueProp, onChangeProp),
|
115
64
|
value = _useUncontrolledState[0],
|
116
65
|
tryChangeValue = _useUncontrolledState[1];
|
117
66
|
|
118
67
|
var onSelectLatest = useLatest.useLatestCallback(onSelect);
|
68
|
+
var selectedItemsRef = React.useRef([]);
|
119
69
|
var proxyTryChangeValue = React.useCallback(function (value, item, shouldChecked) {
|
120
|
-
|
121
|
-
|
122
|
-
|
70
|
+
var changedItems = item;
|
71
|
+
|
72
|
+
if (!Array.isArray(item)) {
|
73
|
+
changedItems = [item];
|
74
|
+
|
75
|
+
if (shouldChecked) {
|
76
|
+
selectedItemsRef.current.push(item);
|
77
|
+
}
|
78
|
+
|
79
|
+
onSelectLatest(value, item, shouldChecked);
|
80
|
+
}
|
81
|
+
|
82
|
+
var selectedItems = lodash.uniqBy([].concat(changedItems, selectedItemsRef.current, flattedDataRef.current), 'id'); // 调用用户的select
|
83
|
+
|
84
|
+
var checkedItems = selectedItems // 使用最新的value
|
85
|
+
.filter(function (item) {
|
86
|
+
return value.includes(item.id);
|
87
|
+
}).map(function (item) {
|
88
|
+
return 'raw' in item ? item.raw : item;
|
89
|
+
});
|
90
|
+
tryChangeValue(value, // TODO: 处理脏数据
|
91
|
+
changedItems.map(function (item) {
|
92
|
+
return 'raw' in item ? item.raw : item;
|
93
|
+
}), checkedItems);
|
94
|
+
}, [tryChangeValue, onSelectLatest, flattedDataRef, selectedItemsRef]);
|
123
95
|
|
124
96
|
var _useCheckDefault = useCheck.useCheck({
|
125
97
|
disabled: disabled,
|
@@ -128,34 +100,16 @@ var useCheckSelect = function useCheckSelect(_a) {
|
|
128
100
|
allowCheck: allowCheck
|
129
101
|
}),
|
130
102
|
onOptionCheck = _useCheckDefault[0],
|
131
|
-
|
132
|
-
|
133
|
-
var _useSearch = useSearch.useSearch(data, filter),
|
134
|
-
inSearch = _useSearch[0],
|
135
|
-
matchedItems = _useSearch[1],
|
136
|
-
inputProps = _useSearch[2],
|
137
|
-
isEmpty = _useSearch[3],
|
138
|
-
resetSearch = _useSearch[4];
|
139
|
-
|
140
|
-
var getSearchInputProps = React.useCallback(function () {
|
141
|
-
return {
|
142
|
-
placeholder: searchPlaceholder,
|
143
|
-
value: inputProps.value,
|
144
|
-
onChange: inputProps.onChange
|
145
|
-
};
|
146
|
-
}, [searchPlaceholder, inputProps]);
|
103
|
+
isCheckedId = _useCheckDefault[1];
|
104
|
+
|
147
105
|
return {
|
148
106
|
rootProps: rest,
|
149
|
-
data:
|
107
|
+
data: data,
|
108
|
+
flattedData: flattedData,
|
150
109
|
value: value,
|
110
|
+
tryChangeValue: proxyTryChangeValue,
|
151
111
|
onSelect: onOptionCheck,
|
152
|
-
|
153
|
-
emptyContent: emptyContent,
|
154
|
-
getSearchInputProps: getSearchInputProps,
|
155
|
-
tryChangeValue: tryChangeValue,
|
156
|
-
isEmpty: isEmpty,
|
157
|
-
resetSearch: resetSearch,
|
158
|
-
titleRender: titleRender
|
112
|
+
isCheckedId: isCheckedId
|
159
113
|
};
|
160
114
|
};
|
161
115
|
|
@@ -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","
|
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,wBAT0B,OAAA,YAAA,YAAA,SAAA,gBAAA,YAAA,YAAA,cAAA;;MAWvBX,IAAI,GAAGY,eAAAA,CAAQ;AAAEZ,IAAAA,IAAI,EAAEC,QAAR;AAAkBC,IAAAA,QAAQ,EAARA;AAAlB,GAARU;MACPC,WAAW,GAAGC,6BAAAA,CAAe;AAAEd,IAAAA,IAAI,EAAJA,IAAF;AAAQU,IAAAA,UAAU,EAAVA;AAAR,GAAfI;MACdC,cAAc,GAAGC,sBAAAA,CAAaH,WAAbG;;8BAESC,yCAAAA,CAAqBX,YAArBW,EAAmCb,SAAnCa,EAA8CV,YAA9CU;MAAzBZ,KAAP;MAAca,cAAd;;MAEMC,cAAc,GAAGC,2BAAAA,CAAkBX,QAAlBW;MAEjBC,gBAAgB,GAAGC,YAAAA,CAAc,EAAdA;MAEnBC,mBAAmB,GAAGC,iBAAAA,CAC1B,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,aAAAA,WAChBN,cAAiBN,gBAAgB,CAACS,SAAYf,cAAc,CAACe,QAD7CG,EAEpB,IAFoBA;;QAMhBC,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,GAAXM,EAmC1B,CAACN,cAAD,EAAiBC,cAAjB,EAAiCJ,cAAjC,EAAiDM,gBAAjD,CAnC0BG;;yBAsCSgB,iBAAAA,CAAgB;AACnDrC,IAAAA,QAAQ,EAARA,QADmD;AAEnDsC,IAAAA,UAAU,EAAEpC,KAFuC;AAGnDqC,IAAAA,OAAO,EAAEnB,mBAH0C;AAInDoB,IAAAA,UAAU,EAAVA;AAJmD,GAAhBH;MAA9BI,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;;"}
|