@sheinx/hooks 3.0.0-alpha.3 → 3.0.0-alpha.6
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/cjs/common/use-filter/use-filter.d.ts +2 -0
- package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
- package/cjs/common/use-filter/use-filter.js +14 -4
- package/cjs/common/use-filter/use-filter.type.d.ts +1 -0
- package/cjs/common/use-filter/use-filter.type.d.ts.map +1 -1
- package/cjs/components/use-cascader/use-cascader.d.ts +1 -1
- package/cjs/components/use-cascader/use-cascader.d.ts.map +1 -1
- package/cjs/components/use-cascader/use-cascader.js +2 -1
- package/cjs/components/use-cascader/use-cascader.type.d.ts +2 -0
- package/cjs/components/use-cascader/use-cascader.type.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-datepicker-format.js +1 -1
- package/cjs/components/use-tree/index.d.ts +1 -1
- package/cjs/components/use-tree/index.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.d.ts +1 -1
- package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +20 -12
- package/cjs/components/use-tree/use-tree.type.d.ts +1 -0
- package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/esm/common/use-filter/use-filter.d.ts +2 -0
- package/esm/common/use-filter/use-filter.d.ts.map +1 -1
- package/esm/common/use-filter/use-filter.js +14 -4
- package/esm/common/use-filter/use-filter.type.d.ts +1 -0
- package/esm/common/use-filter/use-filter.type.d.ts.map +1 -1
- package/esm/components/use-cascader/use-cascader.d.ts +1 -1
- package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
- package/esm/components/use-cascader/use-cascader.js +2 -1
- package/esm/components/use-cascader/use-cascader.type.d.ts +2 -0
- package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-datepicker-format.js +1 -1
- package/esm/components/use-tree/index.d.ts +1 -1
- package/esm/components/use-tree/index.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.d.ts +1 -1
- package/esm/components/use-tree/use-tree.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +20 -12
- package/esm/components/use-tree/use-tree.type.d.ts +1 -0
- package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/package.json +1 -1
@@ -4,12 +4,14 @@ import { KeygenResult } from '../type';
|
|
4
4
|
declare const useFilter: <DataItem>(props: UseFilterProps<DataItem>) => {
|
5
5
|
inputText: string;
|
6
6
|
filterText: string | undefined;
|
7
|
+
firstMatchNode: DataItem | null | undefined;
|
7
8
|
expanded: KeygenResult[] | undefined;
|
8
9
|
rawData: DataItem[] | undefined;
|
9
10
|
filterData: DataItem[] | undefined;
|
10
11
|
createdData: string | undefined;
|
11
12
|
setInputText: import("react").Dispatch<import("react").SetStateAction<string>>;
|
12
13
|
setFilterText: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
|
14
|
+
filterFunc: ((d: DataItem) => boolean) | undefined;
|
13
15
|
onCreate: ((text: string) => string | DataItem | undefined) | undefined;
|
14
16
|
onFilter: ((text: string) => void) | undefined;
|
15
17
|
onResetFilter: () => void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["use-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,QAAA,MAAM,SAAS
|
1
|
+
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["use-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,QAAA,MAAM,SAAS;;;;;;;;;;kCAmBkD,OAAO;sBAkD1C,MAAM;sBAKN,MAAM;;;CAkFnC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
@@ -22,6 +22,7 @@ var useFilter = function useFilter(props) {
|
|
22
22
|
showHitDescendants = props.showHitDescendants,
|
23
23
|
onFilter = props.onFilter,
|
24
24
|
onCreate = props.onCreate,
|
25
|
+
firstMatch = props.firstMatch,
|
25
26
|
onFilterWidthCreate = props.onFilterWidthCreate,
|
26
27
|
onAdvancedFilter = props.onAdvancedFilter;
|
27
28
|
var _useState = (0, _react.useState)(data),
|
@@ -44,6 +45,7 @@ var useFilter = function useFilter(props) {
|
|
44
45
|
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
45
46
|
createdData = _useState10[0],
|
46
47
|
setCreatedData = _useState10[1];
|
48
|
+
var firstMatchNode = (0, _react.useRef)();
|
47
49
|
var filterFn = onFilterWidthCreate || function (item, createdData, key) {
|
48
50
|
return (0, _utils.getKey)(keygen, item) === key;
|
49
51
|
};
|
@@ -58,14 +60,17 @@ var useFilter = function useFilter(props) {
|
|
58
60
|
}
|
59
61
|
return newData;
|
60
62
|
};
|
63
|
+
var getFirstMatchNode = function getFirstMatchNode(node) {
|
64
|
+
if (firstMatchNode.current) return;
|
65
|
+
firstMatchNode.current = node;
|
66
|
+
};
|
61
67
|
var getTreeData = function getTreeData() {
|
62
68
|
var filterExpandedKeys = expandedProp || [];
|
63
69
|
var newData = treeData;
|
64
|
-
var nextFilter = onFilter === null || onFilter === void 0 ? void 0 : onFilter(filterText);
|
65
70
|
if (filterText) {
|
66
|
-
newData = (0, _utils.getFilterTree)(treeData,
|
71
|
+
newData = (0, _utils.getFilterTree)(treeData, onFilter === null || onFilter === void 0 ? void 0 : onFilter(filterText), filterExpandedKeys, function (node) {
|
67
72
|
return (0, _utils.getKey)(keygen, node);
|
68
|
-
}, childrenKey, showHitDescendants, undefined, {
|
73
|
+
}, childrenKey, showHitDescendants, firstMatch ? getFirstMatchNode : undefined, {
|
69
74
|
advanced: !!onAdvancedFilter
|
70
75
|
});
|
71
76
|
}
|
@@ -85,6 +90,7 @@ var useFilter = function useFilter(props) {
|
|
85
90
|
};
|
86
91
|
var handleFilter = function handleFilter(text) {
|
87
92
|
setInputText(text);
|
93
|
+
firstMatchNode.current = null;
|
88
94
|
if (!text) {
|
89
95
|
if (data) {
|
90
96
|
setFilterData(data);
|
@@ -107,7 +113,9 @@ var useFilter = function useFilter(props) {
|
|
107
113
|
setFilterText(text);
|
108
114
|
var next = onFilter(text);
|
109
115
|
if (!(0, _utils.isFunc)(next)) return;
|
110
|
-
setFilterFunc(
|
116
|
+
setFilterFunc(function () {
|
117
|
+
return next;
|
118
|
+
});
|
111
119
|
var nextData = data === null || data === void 0 ? void 0 : data.filter(function (item) {
|
112
120
|
if (!groupKey) return next(item);
|
113
121
|
// 剔除分组项
|
@@ -137,12 +145,14 @@ var useFilter = function useFilter(props) {
|
|
137
145
|
return {
|
138
146
|
inputText: inputText,
|
139
147
|
filterText: filterText,
|
148
|
+
firstMatchNode: firstMatchNode.current,
|
140
149
|
expanded: nextExpanded,
|
141
150
|
rawData: data || treeData,
|
142
151
|
filterData: nextData,
|
143
152
|
createdData: createdData,
|
144
153
|
setInputText: setInputText,
|
145
154
|
setFilterText: setFilterText,
|
155
|
+
filterFunc: filterFunc,
|
146
156
|
onCreate: onCreate ? handleCreate : undefined,
|
147
157
|
onFilter: onFilter || onCreate ? handleFilter : undefined,
|
148
158
|
onResetFilter: handleResetData,
|
@@ -10,6 +10,7 @@ export interface UseFilterProps<DataItem> {
|
|
10
10
|
groupKey?: string;
|
11
11
|
hideCreateOption?: boolean;
|
12
12
|
onAdvancedFilter: boolean;
|
13
|
+
firstMatch?: boolean;
|
13
14
|
onFilter?: (text: string) => void | ((data: DataItem) => boolean);
|
14
15
|
onFilterWidthCreate?: (data: DataItem, createdData: DataItem, key: string | number) => boolean;
|
15
16
|
onCreate?: ((input: string | DataItem) => DataItem | string) | boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAClE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;CACxE"}
|
@@ -3,7 +3,7 @@ import { BaseCascaderProps } from './use-cascader.type';
|
|
3
3
|
declare const useCascader: <DataItem, Value extends KeygenResult[]>(props: BaseCascaderProps<DataItem, Value>) => {
|
4
4
|
datum: {
|
5
5
|
get: (id: KeygenResult) => import("../use-tree/use-tree.type").CheckedStatusType | undefined;
|
6
|
-
set: (id: KeygenResult, checked: import("../use-tree/use-tree.type").CheckedStatusType, direction?: "desc" | "asc" | undefined) => import("../use-tree/use-tree.type").CheckedStatusType;
|
6
|
+
set: (id: KeygenResult, checked: import("../use-tree/use-tree.type").CheckedStatusType, direction?: "desc" | "asc" | undefined) => import("../use-tree/use-tree.type").CheckedStatusType | null;
|
7
7
|
childrenKey: keyof DataItem & string;
|
8
8
|
data: DataItem[];
|
9
9
|
getPath: (id: KeygenResult) => import("../use-tree").TreePathType<KeygenResult> | undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-cascader.d.ts","sourceRoot":"","sources":["use-cascader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"use-cascader.d.ts","sourceRoot":"","sources":["use-cascader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsChB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
@@ -12,6 +12,7 @@ var useCascader = function useCascader(props) {
|
|
12
12
|
control = props.control,
|
13
13
|
keygen = props.keygen,
|
14
14
|
mode = props.mode,
|
15
|
+
unmatch = props.unmatch,
|
15
16
|
disabled = props.disabled,
|
16
17
|
defaultValue = props.defaultValue,
|
17
18
|
beforeChange = props.beforeChange,
|
@@ -29,7 +30,7 @@ var useCascader = function useCascader(props) {
|
|
29
30
|
var _useTree = (0, _useTree2.default)({
|
30
31
|
value: value,
|
31
32
|
data: data,
|
32
|
-
unmatch:
|
33
|
+
unmatch: unmatch,
|
33
34
|
keygen: keygen,
|
34
35
|
mode: mode,
|
35
36
|
disabled: disabled,
|
@@ -5,10 +5,12 @@ export interface BaseCascaderProps<DataItem, Value extends KeygenResult[]> {
|
|
5
5
|
defaultValue?: Value;
|
6
6
|
data: DataItem[];
|
7
7
|
control: boolean;
|
8
|
+
unmatch: boolean;
|
8
9
|
childrenKey?: ObjectKey<DataItem>;
|
9
10
|
onChange?: (value: Value, selected?: DataItem) => void;
|
10
11
|
beforeChange?: (value: Value) => any;
|
11
12
|
mode?: TreeModeType;
|
12
13
|
keygen: TreeKeygenType<DataItem>;
|
14
|
+
disabled?: ((data: DataItem) => boolean) | boolean;
|
13
15
|
}
|
14
16
|
//# sourceMappingURL=use-cascader.type.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-cascader.type.d.ts","sourceRoot":"","sources":["use-cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"use-cascader.type.d.ts","sourceRoot":"","sources":["use-cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC;CACpD"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export { default, default as useTree } from './use-tree';
|
2
|
-
export type { BaseTreeProps, UpdateFunc, TreePathType } from './use-tree.type';
|
2
|
+
export type { BaseTreeProps, UpdateFunc, TreePathType, TreeModeType } from './use-tree.type';
|
3
3
|
export { default as useTreeNode } from './use-tree-node';
|
4
4
|
export type { BaseTreeNodeProps, UpdateType } from './use-tree-node.type';
|
5
5
|
export { default as usePlacement } from './use-placement';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
@@ -25,7 +25,7 @@ export declare const MODE: {
|
|
25
25
|
declare const useTree: <DataItem, Value extends KeygenResult>(props: BaseTreeProps<DataItem, Value>) => {
|
26
26
|
datum: {
|
27
27
|
get: (id: Value) => CheckedStatusType | undefined;
|
28
|
-
set: (id: Value, checked: CheckedStatusType, direction?: 'asc' | 'desc') => CheckedStatusType;
|
28
|
+
set: (id: Value, checked: CheckedStatusType, direction?: 'asc' | 'desc') => CheckedStatusType | null;
|
29
29
|
childrenKey: keyof DataItem & string;
|
30
30
|
data: DataItem[];
|
31
31
|
getPath: (id: Value) => TreePathType<Value> | undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,iBAAiB,EAEjB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;
|
1
|
+
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,iBAAiB,EAEjB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;kCAuTsB,iBAAiB,cAAc,KAAK,GAAG,MAAM;;;;;;sCA9P1C,YAAY,UAAe,MAAM;;;;;;;;;;;uBAf/C,YAAY,UAAU,UAAU;;;;0BAuF7B,YAAY;;;;;kCAxED,YAAY,UAAe,MAAM;sBAwE5C,YAAY;;;;;;;;;;CAoRtC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
@@ -60,15 +60,6 @@ var useTree = function useTree(props) {
|
|
60
60
|
unmatch = props.unmatch,
|
61
61
|
isControlled = props.isControlled,
|
62
62
|
onExpandProp = props.onExpand;
|
63
|
-
|
64
|
-
// const {} = useInputAble({
|
65
|
-
// value: props.value,
|
66
|
-
// defaultValue: props.defaultValue,
|
67
|
-
// control: props.control,
|
68
|
-
// onChange: props.onChange,
|
69
|
-
// beforeChange: props.beforeChange,
|
70
|
-
// });
|
71
|
-
|
72
63
|
var _useInputAble = (0, _useInputAble2.useInputAble)({
|
73
64
|
value: expandedProp,
|
74
65
|
defaultValue: defaultExpanded,
|
@@ -83,6 +74,7 @@ var useTree = function useTree(props) {
|
|
83
74
|
dataMap: new Map(),
|
84
75
|
valueMap: new Map(),
|
85
76
|
updateMap: new Map(),
|
77
|
+
unmatchedValueMap: new Map(),
|
86
78
|
disabled: false,
|
87
79
|
value: undefined,
|
88
80
|
data: [],
|
@@ -156,6 +148,9 @@ var useTree = function useTree(props) {
|
|
156
148
|
default:
|
157
149
|
}
|
158
150
|
});
|
151
|
+
context.unmatchedValueMap.forEach(function (unmatch, id) {
|
152
|
+
if (unmatch) values.push(id);
|
153
|
+
});
|
159
154
|
context.cachedValue = values;
|
160
155
|
return values;
|
161
156
|
};
|
@@ -194,6 +189,15 @@ var useTree = function useTree(props) {
|
|
194
189
|
var setValueMap = function setValueMap(id, checked) {
|
195
190
|
context.valueMap.set(id, checked);
|
196
191
|
};
|
192
|
+
var setUnmatedValue = function setUnmatedValue() {
|
193
|
+
context.unmatchedValueMap = new Map();
|
194
|
+
if (!context.value || !context.data) return;
|
195
|
+
context.value.forEach(function (v) {
|
196
|
+
var data = getDataById(v);
|
197
|
+
var unmatched = (0, _is.isUnMatchedData)(data);
|
198
|
+
if (unmatched) context.unmatchedValueMap.set(v, true);else context.unmatchedValueMap.delete(v);
|
199
|
+
});
|
200
|
+
};
|
197
201
|
var initData = function initData(data, path, disabled) {
|
198
202
|
var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
199
203
|
var ids = [];
|
@@ -288,6 +292,7 @@ var useTree = function useTree(props) {
|
|
288
292
|
if (value && value !== context.cachedValue) {
|
289
293
|
initValue();
|
290
294
|
}
|
295
|
+
setUnmatedValue();
|
291
296
|
};
|
292
297
|
var isDisabled = function isDisabled(id) {
|
293
298
|
var node = context.pathMap.get(id);
|
@@ -311,6 +316,7 @@ var useTree = function useTree(props) {
|
|
311
316
|
context.pathMap = new Map();
|
312
317
|
context.dataMap = new Map();
|
313
318
|
context.valueMap = new Map();
|
319
|
+
context.unmatchedValueMap = new Map();
|
314
320
|
context.disabled = getDisabled();
|
315
321
|
context.data = data;
|
316
322
|
if (!data) return;
|
@@ -322,9 +328,11 @@ var useTree = function useTree(props) {
|
|
322
328
|
if (!isDisabled(id)) {
|
323
329
|
setValueMap(id, checked);
|
324
330
|
}
|
325
|
-
|
326
|
-
|
327
|
-
|
331
|
+
var data = getDataById(id);
|
332
|
+
if (data && data['IS_NOT_MATCHED_VALUE']) {
|
333
|
+
if (checked) context.unmatchedValueMap.set(id, true);else context.unmatchedValueMap.delete(id);
|
334
|
+
return null;
|
335
|
+
}
|
328
336
|
if (mode === MODE.MODE_4) {
|
329
337
|
return 0;
|
330
338
|
}
|
@@ -6,6 +6,7 @@ export interface TreeContext<DataItem, Value> {
|
|
6
6
|
pathMap: Map<Value, TreePathType<Value>>;
|
7
7
|
dataMap: Map<KeygenResult, DataItem>;
|
8
8
|
valueMap: Map<Value, CheckedStatusType>;
|
9
|
+
unmatchedValueMap: Map<any, any>;
|
9
10
|
updateMap: Map<KeygenResult, UpdateFunc>;
|
10
11
|
disabled: boolean | ((item: DataItem) => boolean);
|
11
12
|
value?: Value[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEzE,oBAAY,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,oBAAY,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,oBAAY,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,WAAW,CAAC,QAAQ,EAAE,KAAK;IAC1C,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACxC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;IACvB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;CAC5C"}
|
1
|
+
{"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEzE,oBAAY,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,oBAAY,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,oBAAY,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,WAAW,CAAC,QAAQ,EAAE,KAAK;IAC1C,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACxC,iBAAiB,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;IACvB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;CAC5C"}
|
@@ -4,12 +4,14 @@ import { KeygenResult } from '../type';
|
|
4
4
|
declare const useFilter: <DataItem>(props: UseFilterProps<DataItem>) => {
|
5
5
|
inputText: string;
|
6
6
|
filterText: string | undefined;
|
7
|
+
firstMatchNode: DataItem | null | undefined;
|
7
8
|
expanded: KeygenResult[] | undefined;
|
8
9
|
rawData: DataItem[] | undefined;
|
9
10
|
filterData: DataItem[] | undefined;
|
10
11
|
createdData: string | undefined;
|
11
12
|
setInputText: import("react").Dispatch<import("react").SetStateAction<string>>;
|
12
13
|
setFilterText: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
|
14
|
+
filterFunc: ((d: DataItem) => boolean) | undefined;
|
13
15
|
onCreate: ((text: string) => string | DataItem | undefined) | undefined;
|
14
16
|
onFilter: ((text: string) => void) | undefined;
|
15
17
|
onResetFilter: () => void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["use-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,QAAA,MAAM,SAAS
|
1
|
+
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["use-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,QAAA,MAAM,SAAS;;;;;;;;;;kCAmBkD,OAAO;sBAkD1C,MAAM;sBAKN,MAAM;;;CAkFnC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
@@ -22,6 +22,7 @@ var useFilter = function useFilter(props) {
|
|
22
22
|
showHitDescendants = props.showHitDescendants,
|
23
23
|
onFilter = props.onFilter,
|
24
24
|
onCreate = props.onCreate,
|
25
|
+
firstMatch = props.firstMatch,
|
25
26
|
onFilterWidthCreate = props.onFilterWidthCreate,
|
26
27
|
onAdvancedFilter = props.onAdvancedFilter;
|
27
28
|
var _useState = (0, _react.useState)(data),
|
@@ -44,6 +45,7 @@ var useFilter = function useFilter(props) {
|
|
44
45
|
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
45
46
|
createdData = _useState10[0],
|
46
47
|
setCreatedData = _useState10[1];
|
48
|
+
var firstMatchNode = (0, _react.useRef)();
|
47
49
|
var filterFn = onFilterWidthCreate || function (item, createdData, key) {
|
48
50
|
return (0, _utils.getKey)(keygen, item) === key;
|
49
51
|
};
|
@@ -58,14 +60,17 @@ var useFilter = function useFilter(props) {
|
|
58
60
|
}
|
59
61
|
return newData;
|
60
62
|
};
|
63
|
+
var getFirstMatchNode = function getFirstMatchNode(node) {
|
64
|
+
if (firstMatchNode.current) return;
|
65
|
+
firstMatchNode.current = node;
|
66
|
+
};
|
61
67
|
var getTreeData = function getTreeData() {
|
62
68
|
var filterExpandedKeys = expandedProp || [];
|
63
69
|
var newData = treeData;
|
64
|
-
var nextFilter = onFilter === null || onFilter === void 0 ? void 0 : onFilter(filterText);
|
65
70
|
if (filterText) {
|
66
|
-
newData = (0, _utils.getFilterTree)(treeData,
|
71
|
+
newData = (0, _utils.getFilterTree)(treeData, onFilter === null || onFilter === void 0 ? void 0 : onFilter(filterText), filterExpandedKeys, function (node) {
|
67
72
|
return (0, _utils.getKey)(keygen, node);
|
68
|
-
}, childrenKey, showHitDescendants, undefined, {
|
73
|
+
}, childrenKey, showHitDescendants, firstMatch ? getFirstMatchNode : undefined, {
|
69
74
|
advanced: !!onAdvancedFilter
|
70
75
|
});
|
71
76
|
}
|
@@ -85,6 +90,7 @@ var useFilter = function useFilter(props) {
|
|
85
90
|
};
|
86
91
|
var handleFilter = function handleFilter(text) {
|
87
92
|
setInputText(text);
|
93
|
+
firstMatchNode.current = null;
|
88
94
|
if (!text) {
|
89
95
|
if (data) {
|
90
96
|
setFilterData(data);
|
@@ -107,7 +113,9 @@ var useFilter = function useFilter(props) {
|
|
107
113
|
setFilterText(text);
|
108
114
|
var next = onFilter(text);
|
109
115
|
if (!(0, _utils.isFunc)(next)) return;
|
110
|
-
setFilterFunc(
|
116
|
+
setFilterFunc(function () {
|
117
|
+
return next;
|
118
|
+
});
|
111
119
|
var nextData = data === null || data === void 0 ? void 0 : data.filter(function (item) {
|
112
120
|
if (!groupKey) return next(item);
|
113
121
|
// 剔除分组项
|
@@ -137,12 +145,14 @@ var useFilter = function useFilter(props) {
|
|
137
145
|
return {
|
138
146
|
inputText: inputText,
|
139
147
|
filterText: filterText,
|
148
|
+
firstMatchNode: firstMatchNode.current,
|
140
149
|
expanded: nextExpanded,
|
141
150
|
rawData: data || treeData,
|
142
151
|
filterData: nextData,
|
143
152
|
createdData: createdData,
|
144
153
|
setInputText: setInputText,
|
145
154
|
setFilterText: setFilterText,
|
155
|
+
filterFunc: filterFunc,
|
146
156
|
onCreate: onCreate ? handleCreate : undefined,
|
147
157
|
onFilter: onFilter || onCreate ? handleFilter : undefined,
|
148
158
|
onResetFilter: handleResetData,
|
@@ -10,6 +10,7 @@ export interface UseFilterProps<DataItem> {
|
|
10
10
|
groupKey?: string;
|
11
11
|
hideCreateOption?: boolean;
|
12
12
|
onAdvancedFilter: boolean;
|
13
|
+
firstMatch?: boolean;
|
13
14
|
onFilter?: (text: string) => void | ((data: DataItem) => boolean);
|
14
15
|
onFilterWidthCreate?: (data: DataItem, createdData: DataItem, key: string | number) => boolean;
|
15
16
|
onCreate?: ((input: string | DataItem) => DataItem | string) | boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAClE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;CACxE"}
|
@@ -3,7 +3,7 @@ import { BaseCascaderProps } from './use-cascader.type';
|
|
3
3
|
declare const useCascader: <DataItem, Value extends KeygenResult[]>(props: BaseCascaderProps<DataItem, Value>) => {
|
4
4
|
datum: {
|
5
5
|
get: (id: KeygenResult) => import("../use-tree/use-tree.type").CheckedStatusType | undefined;
|
6
|
-
set: (id: KeygenResult, checked: import("../use-tree/use-tree.type").CheckedStatusType, direction?: "desc" | "asc" | undefined) => import("../use-tree/use-tree.type").CheckedStatusType;
|
6
|
+
set: (id: KeygenResult, checked: import("../use-tree/use-tree.type").CheckedStatusType, direction?: "desc" | "asc" | undefined) => import("../use-tree/use-tree.type").CheckedStatusType | null;
|
7
7
|
childrenKey: keyof DataItem & string;
|
8
8
|
data: DataItem[];
|
9
9
|
getPath: (id: KeygenResult) => import("../use-tree").TreePathType<KeygenResult> | undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-cascader.d.ts","sourceRoot":"","sources":["use-cascader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"use-cascader.d.ts","sourceRoot":"","sources":["use-cascader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsChB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
@@ -12,6 +12,7 @@ var useCascader = function useCascader(props) {
|
|
12
12
|
control = props.control,
|
13
13
|
keygen = props.keygen,
|
14
14
|
mode = props.mode,
|
15
|
+
unmatch = props.unmatch,
|
15
16
|
disabled = props.disabled,
|
16
17
|
defaultValue = props.defaultValue,
|
17
18
|
beforeChange = props.beforeChange,
|
@@ -29,7 +30,7 @@ var useCascader = function useCascader(props) {
|
|
29
30
|
var _useTree = (0, _useTree2.default)({
|
30
31
|
value: value,
|
31
32
|
data: data,
|
32
|
-
unmatch:
|
33
|
+
unmatch: unmatch,
|
33
34
|
keygen: keygen,
|
34
35
|
mode: mode,
|
35
36
|
disabled: disabled,
|
@@ -5,10 +5,12 @@ export interface BaseCascaderProps<DataItem, Value extends KeygenResult[]> {
|
|
5
5
|
defaultValue?: Value;
|
6
6
|
data: DataItem[];
|
7
7
|
control: boolean;
|
8
|
+
unmatch: boolean;
|
8
9
|
childrenKey?: ObjectKey<DataItem>;
|
9
10
|
onChange?: (value: Value, selected?: DataItem) => void;
|
10
11
|
beforeChange?: (value: Value) => any;
|
11
12
|
mode?: TreeModeType;
|
12
13
|
keygen: TreeKeygenType<DataItem>;
|
14
|
+
disabled?: ((data: DataItem) => boolean) | boolean;
|
13
15
|
}
|
14
16
|
//# sourceMappingURL=use-cascader.type.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-cascader.type.d.ts","sourceRoot":"","sources":["use-cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"use-cascader.type.d.ts","sourceRoot":"","sources":["use-cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC;CACpD"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export { default, default as useTree } from './use-tree';
|
2
|
-
export type { BaseTreeProps, UpdateFunc, TreePathType } from './use-tree.type';
|
2
|
+
export type { BaseTreeProps, UpdateFunc, TreePathType, TreeModeType } from './use-tree.type';
|
3
3
|
export { default as useTreeNode } from './use-tree-node';
|
4
4
|
export type { BaseTreeNodeProps, UpdateType } from './use-tree-node.type';
|
5
5
|
export { default as usePlacement } from './use-placement';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
@@ -25,7 +25,7 @@ export declare const MODE: {
|
|
25
25
|
declare const useTree: <DataItem, Value extends KeygenResult>(props: BaseTreeProps<DataItem, Value>) => {
|
26
26
|
datum: {
|
27
27
|
get: (id: Value) => CheckedStatusType | undefined;
|
28
|
-
set: (id: Value, checked: CheckedStatusType, direction?: 'asc' | 'desc') => CheckedStatusType;
|
28
|
+
set: (id: Value, checked: CheckedStatusType, direction?: 'asc' | 'desc') => CheckedStatusType | null;
|
29
29
|
childrenKey: keyof DataItem & string;
|
30
30
|
data: DataItem[];
|
31
31
|
getPath: (id: Value) => TreePathType<Value> | undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,iBAAiB,EAEjB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;
|
1
|
+
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,iBAAiB,EAEjB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;kCAuTsB,iBAAiB,cAAc,KAAK,GAAG,MAAM;;;;;;sCA9P1C,YAAY,UAAe,MAAM;;;;;;;;;;;uBAf/C,YAAY,UAAU,UAAU;;;;0BAuF7B,YAAY;;;;;kCAxED,YAAY,UAAe,MAAM;sBAwE5C,YAAY;;;;;;;;;;CAoRtC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
@@ -60,15 +60,6 @@ var useTree = function useTree(props) {
|
|
60
60
|
unmatch = props.unmatch,
|
61
61
|
isControlled = props.isControlled,
|
62
62
|
onExpandProp = props.onExpand;
|
63
|
-
|
64
|
-
// const {} = useInputAble({
|
65
|
-
// value: props.value,
|
66
|
-
// defaultValue: props.defaultValue,
|
67
|
-
// control: props.control,
|
68
|
-
// onChange: props.onChange,
|
69
|
-
// beforeChange: props.beforeChange,
|
70
|
-
// });
|
71
|
-
|
72
63
|
var _useInputAble = (0, _useInputAble2.useInputAble)({
|
73
64
|
value: expandedProp,
|
74
65
|
defaultValue: defaultExpanded,
|
@@ -83,6 +74,7 @@ var useTree = function useTree(props) {
|
|
83
74
|
dataMap: new Map(),
|
84
75
|
valueMap: new Map(),
|
85
76
|
updateMap: new Map(),
|
77
|
+
unmatchedValueMap: new Map(),
|
86
78
|
disabled: false,
|
87
79
|
value: undefined,
|
88
80
|
data: [],
|
@@ -156,6 +148,9 @@ var useTree = function useTree(props) {
|
|
156
148
|
default:
|
157
149
|
}
|
158
150
|
});
|
151
|
+
context.unmatchedValueMap.forEach(function (unmatch, id) {
|
152
|
+
if (unmatch) values.push(id);
|
153
|
+
});
|
159
154
|
context.cachedValue = values;
|
160
155
|
return values;
|
161
156
|
};
|
@@ -194,6 +189,15 @@ var useTree = function useTree(props) {
|
|
194
189
|
var setValueMap = function setValueMap(id, checked) {
|
195
190
|
context.valueMap.set(id, checked);
|
196
191
|
};
|
192
|
+
var setUnmatedValue = function setUnmatedValue() {
|
193
|
+
context.unmatchedValueMap = new Map();
|
194
|
+
if (!context.value || !context.data) return;
|
195
|
+
context.value.forEach(function (v) {
|
196
|
+
var data = getDataById(v);
|
197
|
+
var unmatched = (0, _is.isUnMatchedData)(data);
|
198
|
+
if (unmatched) context.unmatchedValueMap.set(v, true);else context.unmatchedValueMap.delete(v);
|
199
|
+
});
|
200
|
+
};
|
197
201
|
var initData = function initData(data, path, disabled) {
|
198
202
|
var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
199
203
|
var ids = [];
|
@@ -288,6 +292,7 @@ var useTree = function useTree(props) {
|
|
288
292
|
if (value && value !== context.cachedValue) {
|
289
293
|
initValue();
|
290
294
|
}
|
295
|
+
setUnmatedValue();
|
291
296
|
};
|
292
297
|
var isDisabled = function isDisabled(id) {
|
293
298
|
var node = context.pathMap.get(id);
|
@@ -311,6 +316,7 @@ var useTree = function useTree(props) {
|
|
311
316
|
context.pathMap = new Map();
|
312
317
|
context.dataMap = new Map();
|
313
318
|
context.valueMap = new Map();
|
319
|
+
context.unmatchedValueMap = new Map();
|
314
320
|
context.disabled = getDisabled();
|
315
321
|
context.data = data;
|
316
322
|
if (!data) return;
|
@@ -322,9 +328,11 @@ var useTree = function useTree(props) {
|
|
322
328
|
if (!isDisabled(id)) {
|
323
329
|
setValueMap(id, checked);
|
324
330
|
}
|
325
|
-
|
326
|
-
|
327
|
-
|
331
|
+
var data = getDataById(id);
|
332
|
+
if (data && data['IS_NOT_MATCHED_VALUE']) {
|
333
|
+
if (checked) context.unmatchedValueMap.set(id, true);else context.unmatchedValueMap.delete(id);
|
334
|
+
return null;
|
335
|
+
}
|
328
336
|
if (mode === MODE.MODE_4) {
|
329
337
|
return 0;
|
330
338
|
}
|
@@ -6,6 +6,7 @@ export interface TreeContext<DataItem, Value> {
|
|
6
6
|
pathMap: Map<Value, TreePathType<Value>>;
|
7
7
|
dataMap: Map<KeygenResult, DataItem>;
|
8
8
|
valueMap: Map<Value, CheckedStatusType>;
|
9
|
+
unmatchedValueMap: Map<any, any>;
|
9
10
|
updateMap: Map<KeygenResult, UpdateFunc>;
|
10
11
|
disabled: boolean | ((item: DataItem) => boolean);
|
11
12
|
value?: Value[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEzE,oBAAY,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,oBAAY,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,oBAAY,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,WAAW,CAAC,QAAQ,EAAE,KAAK;IAC1C,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACxC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;IACvB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;CAC5C"}
|
1
|
+
{"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEzE,oBAAY,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,oBAAY,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,oBAAY,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,WAAW,CAAC,QAAQ,EAAE,KAAK;IAC1C,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACxC,iBAAiB,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;IACvB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;CAC5C"}
|