@sheinx/hooks 3.0.0-alpha.5 → 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.
Files changed (37) hide show
  1. package/cjs/common/use-filter/use-filter.d.ts +2 -0
  2. package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
  3. package/cjs/common/use-filter/use-filter.js +14 -4
  4. package/cjs/common/use-filter/use-filter.type.d.ts +1 -0
  5. package/cjs/common/use-filter/use-filter.type.d.ts.map +1 -1
  6. package/cjs/components/use-cascader/use-cascader.d.ts +1 -1
  7. package/cjs/components/use-cascader/use-cascader.d.ts.map +1 -1
  8. package/cjs/components/use-cascader/use-cascader.js +2 -1
  9. package/cjs/components/use-cascader/use-cascader.type.d.ts +2 -0
  10. package/cjs/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  11. package/cjs/components/use-datepicker/use-datepicker-format.js +1 -1
  12. package/cjs/components/use-tree/index.d.ts +1 -1
  13. package/cjs/components/use-tree/index.d.ts.map +1 -1
  14. package/cjs/components/use-tree/use-tree.d.ts +1 -1
  15. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  16. package/cjs/components/use-tree/use-tree.js +20 -12
  17. package/cjs/components/use-tree/use-tree.type.d.ts +1 -0
  18. package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
  19. package/esm/common/use-filter/use-filter.d.ts +2 -0
  20. package/esm/common/use-filter/use-filter.d.ts.map +1 -1
  21. package/esm/common/use-filter/use-filter.js +14 -4
  22. package/esm/common/use-filter/use-filter.type.d.ts +1 -0
  23. package/esm/common/use-filter/use-filter.type.d.ts.map +1 -1
  24. package/esm/components/use-cascader/use-cascader.d.ts +1 -1
  25. package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
  26. package/esm/components/use-cascader/use-cascader.js +2 -1
  27. package/esm/components/use-cascader/use-cascader.type.d.ts +2 -0
  28. package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  29. package/esm/components/use-datepicker/use-datepicker-format.js +1 -1
  30. package/esm/components/use-tree/index.d.ts +1 -1
  31. package/esm/components/use-tree/index.d.ts.map +1 -1
  32. package/esm/components/use-tree/use-tree.d.ts +1 -1
  33. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  34. package/esm/components/use-tree/use-tree.js +20 -12
  35. package/esm/components/use-tree/use-tree.type.d.ts +1 -0
  36. package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
  37. 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;;;;;;;;;sBAiEe,MAAM;sBAKN,MAAM;;;CA6EnC,CAAC;AAEF,eAAe,SAAS,CAAC"}
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, nextFilter, filterExpandedKeys, function (node) {
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(next);
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;IAC1B,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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqChB,CAAC;AAEF,eAAe,WAAW,CAAC"}
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: false,
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;CAClC"}
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"}
@@ -31,7 +31,7 @@ var getFormat = function getFormat(format, type) {
31
31
  case 'time':
32
32
  return 'HH:mm:ss';
33
33
  case 'week':
34
- return 'gggg ww';
34
+ return 'gggg-ww';
35
35
  case 'year':
36
36
  return 'YYYY';
37
37
  case 'quarter':
@@ -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;AAE/E,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"}
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;;;kCA8SsB,iBAAiB,cAAc,KAAK,GAAG,MAAM;;;;;;sCA9O1C,YAAY,UAAe,MAAM;;;;;;;;;;;uBAf/C,YAAY,UAAU,UAAU;;;;0BAoF7B,YAAY;;;;;kCArED,YAAY,UAAe,MAAM;sBAqE5C,YAAY;;;;;;;;;;CAiQtC,CAAC;AAEF,eAAe,OAAO,CAAC"}
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
- // const data = getDataById(id);
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;;;;;;;;;sBAiEe,MAAM;sBAKN,MAAM;;;CA6EnC,CAAC;AAEF,eAAe,SAAS,CAAC"}
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, nextFilter, filterExpandedKeys, function (node) {
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(next);
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;IAC1B,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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqChB,CAAC;AAEF,eAAe,WAAW,CAAC"}
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: false,
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;CAClC"}
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"}
@@ -31,7 +31,7 @@ var getFormat = function getFormat(format, type) {
31
31
  case 'time':
32
32
  return 'HH:mm:ss';
33
33
  case 'week':
34
- return 'gggg ww';
34
+ return 'gggg-ww';
35
35
  case 'year':
36
36
  return 'YYYY';
37
37
  case 'quarter':
@@ -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;AAE/E,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"}
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;;;kCA8SsB,iBAAiB,cAAc,KAAK,GAAG,MAAM;;;;;;sCA9O1C,YAAY,UAAe,MAAM;;;;;;;;;;;uBAf/C,YAAY,UAAU,UAAU;;;;0BAoF7B,YAAY;;;;;kCArED,YAAY,UAAe,MAAM;sBAqE5C,YAAY;;;;;;;;;;CAiQtC,CAAC;AAEF,eAAe,OAAO,CAAC"}
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
- // const data = getDataById(id);
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.0.0-alpha.5",
3
+ "version": "3.0.0-alpha.6",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "ISC",