@uzum-tech/ui 2.0.7 → 2.0.9

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.
@@ -107512,6 +107512,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
107512
107512
  readonly onFocus: import("vue").PropType<(event: FocusEvent) => void>;
107513
107513
  readonly onScroll: import("vue").PropType<import("./_utils").MaybeArray<(event: Event) => void>>;
107514
107514
  readonly onScrollOptionEnd: import("vue").PropType<import("./_utils").MaybeArray<import(".").OnScrollOptionEnd>>;
107515
+ readonly onSearch: import("vue").PropType<import("./_utils").MaybeArray<(value: string) => void>>;
107515
107516
  readonly onLoad: import("vue").PropType<(node: import(".").TreeSelectOption) => Promise<void>>;
107516
107517
  readonly onUpdateShow: import("vue").PropType<import("./_utils").MaybeArray<(show: boolean) => void>>;
107517
107518
  readonly onUpdateValue: import("vue").PropType<import("./_utils").MaybeArray<import("./tree-select/src/interface").OnUpdateValue>>;
@@ -107581,6 +107582,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
107581
107582
  readonly loading: BooleanConstructor;
107582
107583
  readonly maxTagCount: import("vue").PropType<number | "responsive">;
107583
107584
  readonly multiple: BooleanConstructor;
107585
+ readonly remote: BooleanConstructor;
107584
107586
  readonly showPath: BooleanConstructor;
107585
107587
  readonly separator: {
107586
107588
  readonly type: StringConstructor;
@@ -108423,9 +108425,10 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
108423
108425
  selectedOption: import("vue").ComputedRef<import("./select/src/interface").SelectBaseOption<string | number, string | ((option: import("./select/src/interface").SelectBaseOption<string | number, string | /*elided*/ any>, selected: boolean) => import("vue").VNodeChild)> | null>;
108424
108426
  selectedOptions: import("vue").ComputedRef<import("./select/src/interface").SelectBaseOption<string | number, string | ((option: import("./select/src/interface").SelectBaseOption<string | number, string | /*elided*/ any>, selected: boolean) => import("vue").VNodeChild)>[] | null>;
108425
108427
  pattern: import("vue").Ref<string, string>;
108428
+ treePattern: import("vue").ComputedRef<string>;
108426
108429
  pendingNodeKey: import("vue").Ref<string | number | null, string | number | null>;
108427
108430
  mergedCascade: import("vue").ComputedRef<boolean>;
108428
- mergedFilter: import("vue").ComputedRef<(pattern: string, node: import(".").TreeOption) => boolean>;
108431
+ mergedFilter: import("vue").ComputedRef<import("./tree-select/src/interface").FilterHandler>;
108429
108432
  selectionRenderTag: import("vue").ComputedRef<(({ option, handleClose }: {
108430
108433
  option: import("./select").SelectOption;
108431
108434
  handleClose: () => void;
@@ -108860,6 +108863,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
108860
108863
  readonly onFocus: import("vue").PropType<(event: FocusEvent) => void>;
108861
108864
  readonly onScroll: import("vue").PropType<import("./_utils").MaybeArray<(event: Event) => void>>;
108862
108865
  readonly onScrollOptionEnd: import("vue").PropType<import("./_utils").MaybeArray<import(".").OnScrollOptionEnd>>;
108866
+ readonly onSearch: import("vue").PropType<import("./_utils").MaybeArray<(value: string) => void>>;
108863
108867
  readonly onLoad: import("vue").PropType<(node: import(".").TreeSelectOption) => Promise<void>>;
108864
108868
  readonly onUpdateShow: import("vue").PropType<import("./_utils").MaybeArray<(show: boolean) => void>>;
108865
108869
  readonly onUpdateValue: import("vue").PropType<import("./_utils").MaybeArray<import("./tree-select/src/interface").OnUpdateValue>>;
@@ -108929,6 +108933,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
108929
108933
  readonly loading: BooleanConstructor;
108930
108934
  readonly maxTagCount: import("vue").PropType<number | "responsive">;
108931
108935
  readonly multiple: BooleanConstructor;
108936
+ readonly remote: BooleanConstructor;
108932
108937
  readonly showPath: BooleanConstructor;
108933
108938
  readonly separator: {
108934
108939
  readonly type: StringConstructor;
@@ -109738,6 +109743,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
109738
109743
  readonly filterable: boolean;
109739
109744
  readonly disabledField: string;
109740
109745
  readonly clearFilterAfterSelect: boolean;
109746
+ readonly remote: boolean;
109741
109747
  readonly cascade: boolean;
109742
109748
  readonly leafOnly: boolean;
109743
109749
  readonly showPath: boolean;
@@ -51,7 +51,7 @@ declare const TreeNode: import("vue").DefineComponent<import("vue").ExtractPropT
51
51
  handleDragLeave: (e: DragEvent) => void;
52
52
  handleLineClick: (e: PointerEvent) => void;
53
53
  handleContentClick: (e: PointerEvent) => void;
54
- handleSwitcherClick: () => void;
54
+ handleSwitcherClick: (e?: MouseEvent) => void;
55
55
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
56
56
  clsPrefix: {
57
57
  type: StringConstructor;
@@ -61,7 +61,8 @@ const TreeNode = defineComponent({
61
61
  onMounted(() => {
62
62
  contentElRef.value = contentInstRef.value.$el;
63
63
  });
64
- function handleSwitcherClick() {
64
+ function handleSwitcherClick(e) {
65
+ e === null || e === void 0 ? void 0 : e.stopPropagation();
65
66
  const callback = () => {
66
67
  const {
67
68
  tmNode
@@ -7,7 +7,7 @@ import type { ExtractPublicPropTypes, MaybeArray } from '../../_utils';
7
7
  import type { FormValidationStatus } from '../../form/src/interface';
8
8
  import type { SelectBaseOption, SelectOption } from '../../select/src/interface';
9
9
  import type { InternalTreeInst, Key, TreeOption } from '../../tree/src/interface';
10
- import type { OnScrollOptionEnd, OnUpdateValue, TreeSelectNodeProps, TreeSelectOption, TreeSelectRenderLabel, TreeSelectRenderPrefix, TreeSelectRenderSuffix, TreeSelectRenderTag } from './interface';
10
+ import type { FilterHandler, OnScrollOptionEnd, OnUpdateValue, TreeSelectNodeProps, TreeSelectOption, TreeSelectRenderLabel, TreeSelectRenderPrefix, TreeSelectRenderSuffix, TreeSelectRenderTag } from './interface';
11
11
  type OnLoad = (node: TreeSelectOption) => Promise<void>;
12
12
  export declare const treeSelectProps: {
13
13
  readonly renderLabel: PropType<TreeSelectRenderLabel>;
@@ -18,6 +18,7 @@ export declare const treeSelectProps: {
18
18
  readonly onFocus: PropType<(event: FocusEvent) => void>;
19
19
  readonly onScroll: PropType<MaybeArray<(event: Event) => void>>;
20
20
  readonly onScrollOptionEnd: PropType<MaybeArray<OnScrollOptionEnd>>;
21
+ readonly onSearch: PropType<MaybeArray<(value: string) => void>>;
21
22
  readonly onLoad: PropType<OnLoad>;
22
23
  readonly onUpdateShow: PropType<MaybeArray<(show: boolean) => void>>;
23
24
  readonly onUpdateValue: PropType<MaybeArray<OnUpdateValue>>;
@@ -90,6 +91,7 @@ export declare const treeSelectProps: {
90
91
  readonly loading: BooleanConstructor;
91
92
  readonly maxTagCount: PropType<number | "responsive">;
92
93
  readonly multiple: BooleanConstructor;
94
+ readonly remote: BooleanConstructor;
93
95
  readonly showPath: BooleanConstructor;
94
96
  readonly separator: {
95
97
  readonly type: StringConstructor;
@@ -900,6 +902,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
900
902
  readonly onFocus: PropType<(event: FocusEvent) => void>;
901
903
  readonly onScroll: PropType<MaybeArray<(event: Event) => void>>;
902
904
  readonly onScrollOptionEnd: PropType<MaybeArray<OnScrollOptionEnd>>;
905
+ readonly onSearch: PropType<MaybeArray<(value: string) => void>>;
903
906
  readonly onLoad: PropType<OnLoad>;
904
907
  readonly onUpdateShow: PropType<MaybeArray<(show: boolean) => void>>;
905
908
  readonly onUpdateValue: PropType<MaybeArray<OnUpdateValue>>;
@@ -972,6 +975,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
972
975
  readonly loading: BooleanConstructor;
973
976
  readonly maxTagCount: PropType<number | "responsive">;
974
977
  readonly multiple: BooleanConstructor;
978
+ readonly remote: BooleanConstructor;
975
979
  readonly showPath: BooleanConstructor;
976
980
  readonly separator: {
977
981
  readonly type: StringConstructor;
@@ -1814,9 +1818,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1814
1818
  selectedOption: import("vue").ComputedRef<SelectBaseOption<string | number, string | ((option: SelectBaseOption<string | number, string | /*elided*/ any>, selected: boolean) => VNodeChild)> | null>;
1815
1819
  selectedOptions: import("vue").ComputedRef<SelectBaseOption<string | number, string | ((option: SelectBaseOption<string | number, string | /*elided*/ any>, selected: boolean) => VNodeChild)>[] | null>;
1816
1820
  pattern: import("vue").Ref<string, string>;
1821
+ treePattern: import("vue").ComputedRef<string>;
1817
1822
  pendingNodeKey: import("vue").Ref<string | number | null, string | number | null>;
1818
1823
  mergedCascade: import("vue").ComputedRef<boolean>;
1819
- mergedFilter: import("vue").ComputedRef<(pattern: string, node: TreeOption) => boolean>;
1824
+ mergedFilter: import("vue").ComputedRef<FilterHandler>;
1820
1825
  selectionRenderTag: import("vue").ComputedRef<(({ option, handleClose }: {
1821
1826
  option: SelectOption;
1822
1827
  handleClose: () => void;
@@ -2251,6 +2256,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2251
2256
  readonly onFocus: PropType<(event: FocusEvent) => void>;
2252
2257
  readonly onScroll: PropType<MaybeArray<(event: Event) => void>>;
2253
2258
  readonly onScrollOptionEnd: PropType<MaybeArray<OnScrollOptionEnd>>;
2259
+ readonly onSearch: PropType<MaybeArray<(value: string) => void>>;
2254
2260
  readonly onLoad: PropType<OnLoad>;
2255
2261
  readonly onUpdateShow: PropType<MaybeArray<(show: boolean) => void>>;
2256
2262
  readonly onUpdateValue: PropType<MaybeArray<OnUpdateValue>>;
@@ -2323,6 +2329,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2323
2329
  readonly loading: BooleanConstructor;
2324
2330
  readonly maxTagCount: PropType<number | "responsive">;
2325
2331
  readonly multiple: BooleanConstructor;
2332
+ readonly remote: BooleanConstructor;
2326
2333
  readonly showPath: BooleanConstructor;
2327
2334
  readonly separator: {
2328
2335
  readonly type: StringConstructor;
@@ -3132,6 +3139,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3132
3139
  readonly filterable: boolean;
3133
3140
  readonly disabledField: string;
3134
3141
  readonly clearFilterAfterSelect: boolean;
3142
+ readonly remote: boolean;
3135
3143
  readonly cascade: boolean;
3136
3144
  readonly leafOnly: boolean;
3137
3145
  readonly showPath: boolean;
@@ -49,6 +49,7 @@ export const treeSelectProps = Object.assign(Object.assign(Object.assign(Object.
49
49
  loading: Boolean,
50
50
  maxTagCount: [String, Number],
51
51
  multiple: Boolean,
52
+ remote: Boolean,
52
53
  showPath: Boolean,
53
54
  separator: {
54
55
  type: String,
@@ -86,6 +87,7 @@ export const treeSelectProps = Object.assign(Object.assign(Object.assign(Object.
86
87
  onFocus: Function,
87
88
  onScroll: [Function, Array],
88
89
  onScrollOptionEnd: [Function, Array],
90
+ onSearch: [Function, Array],
89
91
  onLoad: Function,
90
92
  onUpdateShow: [Function, Array],
91
93
  onUpdateValue: [Function, Array],
@@ -136,20 +138,16 @@ export default defineComponent({
136
138
  const controlledShowRef = toRef(props, 'show');
137
139
  const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef);
138
140
  const patternRef = ref('');
141
+ const treePatternRef = computed(() => {
142
+ return props.remote ? '' : patternRef.value;
143
+ });
139
144
  const mergedFilterRef = computed(() => {
140
- const {
141
- filter
142
- } = props;
143
- if (filter) return filter;
144
- const {
145
- labelField
146
- } = props;
145
+ if (props.filter) return props.filter;
147
146
  return (pattern, node) => {
148
147
  if (!pattern.length) return true;
149
- return node[labelField].toLowerCase().includes(pattern.toLowerCase());
148
+ return node[props.labelField].toLowerCase().includes(pattern.toLowerCase());
150
149
  };
151
150
  });
152
- // used to resolve selected options
153
151
  const dataTreeMateRef = computed(() => createTreeMate(props.options, createTreeMateOptions(props.keyField, props.childrenField, props.disabledField, undefined)));
154
152
  const {
155
153
  value: initMergedValue
@@ -486,11 +484,15 @@ export default defineComponent({
486
484
  }
487
485
  }
488
486
  }
487
+ function doSearch(value) {
488
+ props.onSearch && call(props.onSearch, value);
489
+ }
489
490
  function handlePatternInput(event) {
490
491
  const {
491
492
  value
492
493
  } = event.target;
493
494
  patternRef.value = value;
495
+ doSearch(value);
494
496
  }
495
497
  function treeHandleKeydown(event) {
496
498
  const {
@@ -709,6 +711,7 @@ export default defineComponent({
709
711
  selectedOption: selectedOptionRef,
710
712
  selectedOptions: selectedOptionsRef,
711
713
  pattern: patternRef,
714
+ treePattern: treePatternRef,
712
715
  pendingNodeKey: pendingNodeKeyRef,
713
716
  mergedCascade: mergedCascadeRef,
714
717
  mergedFilter: mergedFilterRef,
@@ -824,7 +827,7 @@ export default defineComponent({
824
827
  allowCheckingNotLoaded: this.allowCheckingNotLoaded,
825
828
  showIrrelevantNodes: false,
826
829
  animated: false,
827
- pattern: this.pattern,
830
+ pattern: this.treePattern,
828
831
  filter: this.mergedFilter,
829
832
  data: options,
830
833
  cancelable: multiple,
@@ -29,6 +29,7 @@ export type OnUpdateValueImpl = (value: string | number | (string | number) | st
29
29
  export type OnUpdateIndeterminateKeysImpl = (value: string | number | (string | number) | string[] | number[] | Array<string | number> | null, option: TreeSelectOption | null | Array<TreeSelectOption | null>) => void;
30
30
  export type Value = string | number | Array<string | number> | null;
31
31
  export type OnScrollOptionEnd = (option: TreeSelectOption, event: Event) => void;
32
+ export type FilterHandler = (pattern: string, node: TreeSelectOption) => boolean;
32
33
  export interface ScrollOptionEndScanResult {
33
34
  reachedOptions: TreeSelectOption[];
34
35
  visibleKeys: Set<Key>;
package/es/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "2.0.7";
1
+ declare const _default: "2.0.9";
2
2
  export default _default;
package/es/version.mjs CHANGED
@@ -1 +1 @@
1
- export default '2.0.7';
1
+ export default '2.0.9';
@@ -107512,6 +107512,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
107512
107512
  readonly onFocus: import("vue").PropType<(event: FocusEvent) => void>;
107513
107513
  readonly onScroll: import("vue").PropType<import("./_utils").MaybeArray<(event: Event) => void>>;
107514
107514
  readonly onScrollOptionEnd: import("vue").PropType<import("./_utils").MaybeArray<import("./tree-select").OnScrollOptionEnd>>;
107515
+ readonly onSearch: import("vue").PropType<import("./_utils").MaybeArray<(value: string) => void>>;
107515
107516
  readonly onLoad: import("vue").PropType<(node: import("./tree-select").TreeSelectOption) => Promise<void>>;
107516
107517
  readonly onUpdateShow: import("vue").PropType<import("./_utils").MaybeArray<(show: boolean) => void>>;
107517
107518
  readonly onUpdateValue: import("vue").PropType<import("./_utils").MaybeArray<import("./tree-select/src/interface").OnUpdateValue>>;
@@ -107581,6 +107582,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
107581
107582
  readonly loading: BooleanConstructor;
107582
107583
  readonly maxTagCount: import("vue").PropType<number | "responsive">;
107583
107584
  readonly multiple: BooleanConstructor;
107585
+ readonly remote: BooleanConstructor;
107584
107586
  readonly showPath: BooleanConstructor;
107585
107587
  readonly separator: {
107586
107588
  readonly type: StringConstructor;
@@ -108423,9 +108425,10 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
108423
108425
  selectedOption: import("vue").ComputedRef<import("./select/src/interface").SelectBaseOption<string | number, string | ((option: import("./select/src/interface").SelectBaseOption<string | number, string | /*elided*/ any>, selected: boolean) => import("vue").VNodeChild)> | null>;
108424
108426
  selectedOptions: import("vue").ComputedRef<import("./select/src/interface").SelectBaseOption<string | number, string | ((option: import("./select/src/interface").SelectBaseOption<string | number, string | /*elided*/ any>, selected: boolean) => import("vue").VNodeChild)>[] | null>;
108425
108427
  pattern: import("vue").Ref<string, string>;
108428
+ treePattern: import("vue").ComputedRef<string>;
108426
108429
  pendingNodeKey: import("vue").Ref<string | number | null, string | number | null>;
108427
108430
  mergedCascade: import("vue").ComputedRef<boolean>;
108428
- mergedFilter: import("vue").ComputedRef<(pattern: string, node: import("./tree").TreeOption) => boolean>;
108431
+ mergedFilter: import("vue").ComputedRef<import("./tree-select/src/interface").FilterHandler>;
108429
108432
  selectionRenderTag: import("vue").ComputedRef<(({ option, handleClose }: {
108430
108433
  option: import("./select").SelectOption;
108431
108434
  handleClose: () => void;
@@ -108860,6 +108863,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
108860
108863
  readonly onFocus: import("vue").PropType<(event: FocusEvent) => void>;
108861
108864
  readonly onScroll: import("vue").PropType<import("./_utils").MaybeArray<(event: Event) => void>>;
108862
108865
  readonly onScrollOptionEnd: import("vue").PropType<import("./_utils").MaybeArray<import("./tree-select").OnScrollOptionEnd>>;
108866
+ readonly onSearch: import("vue").PropType<import("./_utils").MaybeArray<(value: string) => void>>;
108863
108867
  readonly onLoad: import("vue").PropType<(node: import("./tree-select").TreeSelectOption) => Promise<void>>;
108864
108868
  readonly onUpdateShow: import("vue").PropType<import("./_utils").MaybeArray<(show: boolean) => void>>;
108865
108869
  readonly onUpdateValue: import("vue").PropType<import("./_utils").MaybeArray<import("./tree-select/src/interface").OnUpdateValue>>;
@@ -108929,6 +108933,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
108929
108933
  readonly loading: BooleanConstructor;
108930
108934
  readonly maxTagCount: import("vue").PropType<number | "responsive">;
108931
108935
  readonly multiple: BooleanConstructor;
108936
+ readonly remote: BooleanConstructor;
108932
108937
  readonly showPath: BooleanConstructor;
108933
108938
  readonly separator: {
108934
108939
  readonly type: StringConstructor;
@@ -109738,6 +109743,7 @@ export declare const UTreeSelect: import("vue").DefineComponent<import("vue").Ex
109738
109743
  readonly filterable: boolean;
109739
109744
  readonly disabledField: string;
109740
109745
  readonly clearFilterAfterSelect: boolean;
109746
+ readonly remote: boolean;
109741
109747
  readonly cascade: boolean;
109742
109748
  readonly leafOnly: boolean;
109743
109749
  readonly showPath: boolean;
@@ -51,7 +51,7 @@ declare const TreeNode: import("vue").DefineComponent<import("vue").ExtractPropT
51
51
  handleDragLeave: (e: DragEvent) => void;
52
52
  handleLineClick: (e: PointerEvent) => void;
53
53
  handleContentClick: (e: PointerEvent) => void;
54
- handleSwitcherClick: () => void;
54
+ handleSwitcherClick: (e?: MouseEvent) => void;
55
55
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
56
56
  clsPrefix: {
57
57
  type: StringConstructor;
@@ -46,7 +46,8 @@ const TreeNode = (0, vue_1.defineComponent)({
46
46
  (0, vue_1.onMounted)(() => {
47
47
  contentElRef.value = contentInstRef.value.$el;
48
48
  });
49
- function handleSwitcherClick() {
49
+ function handleSwitcherClick(e) {
50
+ e === null || e === void 0 ? void 0 : e.stopPropagation();
50
51
  const callback = () => {
51
52
  const { tmNode } = props;
52
53
  if (!tmNode.isLeaf && !tmNode.shallowLoaded) {
@@ -7,7 +7,7 @@ import type { ExtractPublicPropTypes, MaybeArray } from '../../_utils';
7
7
  import type { FormValidationStatus } from '../../form/src/interface';
8
8
  import type { SelectBaseOption, SelectOption } from '../../select/src/interface';
9
9
  import type { InternalTreeInst, Key, TreeOption } from '../../tree/src/interface';
10
- import type { OnScrollOptionEnd, OnUpdateValue, TreeSelectNodeProps, TreeSelectOption, TreeSelectRenderLabel, TreeSelectRenderPrefix, TreeSelectRenderSuffix, TreeSelectRenderTag } from './interface';
10
+ import type { FilterHandler, OnScrollOptionEnd, OnUpdateValue, TreeSelectNodeProps, TreeSelectOption, TreeSelectRenderLabel, TreeSelectRenderPrefix, TreeSelectRenderSuffix, TreeSelectRenderTag } from './interface';
11
11
  type OnLoad = (node: TreeSelectOption) => Promise<void>;
12
12
  export declare const treeSelectProps: {
13
13
  readonly renderLabel: PropType<TreeSelectRenderLabel>;
@@ -18,6 +18,7 @@ export declare const treeSelectProps: {
18
18
  readonly onFocus: PropType<(event: FocusEvent) => void>;
19
19
  readonly onScroll: PropType<MaybeArray<(event: Event) => void>>;
20
20
  readonly onScrollOptionEnd: PropType<MaybeArray<OnScrollOptionEnd>>;
21
+ readonly onSearch: PropType<MaybeArray<(value: string) => void>>;
21
22
  readonly onLoad: PropType<OnLoad>;
22
23
  readonly onUpdateShow: PropType<MaybeArray<(show: boolean) => void>>;
23
24
  readonly onUpdateValue: PropType<MaybeArray<OnUpdateValue>>;
@@ -90,6 +91,7 @@ export declare const treeSelectProps: {
90
91
  readonly loading: BooleanConstructor;
91
92
  readonly maxTagCount: PropType<number | "responsive">;
92
93
  readonly multiple: BooleanConstructor;
94
+ readonly remote: BooleanConstructor;
93
95
  readonly showPath: BooleanConstructor;
94
96
  readonly separator: {
95
97
  readonly type: StringConstructor;
@@ -900,6 +902,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
900
902
  readonly onFocus: PropType<(event: FocusEvent) => void>;
901
903
  readonly onScroll: PropType<MaybeArray<(event: Event) => void>>;
902
904
  readonly onScrollOptionEnd: PropType<MaybeArray<OnScrollOptionEnd>>;
905
+ readonly onSearch: PropType<MaybeArray<(value: string) => void>>;
903
906
  readonly onLoad: PropType<OnLoad>;
904
907
  readonly onUpdateShow: PropType<MaybeArray<(show: boolean) => void>>;
905
908
  readonly onUpdateValue: PropType<MaybeArray<OnUpdateValue>>;
@@ -972,6 +975,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
972
975
  readonly loading: BooleanConstructor;
973
976
  readonly maxTagCount: PropType<number | "responsive">;
974
977
  readonly multiple: BooleanConstructor;
978
+ readonly remote: BooleanConstructor;
975
979
  readonly showPath: BooleanConstructor;
976
980
  readonly separator: {
977
981
  readonly type: StringConstructor;
@@ -1814,9 +1818,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1814
1818
  selectedOption: import("vue").ComputedRef<SelectBaseOption<string | number, string | ((option: SelectBaseOption<string | number, string | /*elided*/ any>, selected: boolean) => VNodeChild)> | null>;
1815
1819
  selectedOptions: import("vue").ComputedRef<SelectBaseOption<string | number, string | ((option: SelectBaseOption<string | number, string | /*elided*/ any>, selected: boolean) => VNodeChild)>[] | null>;
1816
1820
  pattern: import("vue").Ref<string, string>;
1821
+ treePattern: import("vue").ComputedRef<string>;
1817
1822
  pendingNodeKey: import("vue").Ref<string | number | null, string | number | null>;
1818
1823
  mergedCascade: import("vue").ComputedRef<boolean>;
1819
- mergedFilter: import("vue").ComputedRef<(pattern: string, node: TreeOption) => boolean>;
1824
+ mergedFilter: import("vue").ComputedRef<FilterHandler>;
1820
1825
  selectionRenderTag: import("vue").ComputedRef<(({ option, handleClose }: {
1821
1826
  option: SelectOption;
1822
1827
  handleClose: () => void;
@@ -2251,6 +2256,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2251
2256
  readonly onFocus: PropType<(event: FocusEvent) => void>;
2252
2257
  readonly onScroll: PropType<MaybeArray<(event: Event) => void>>;
2253
2258
  readonly onScrollOptionEnd: PropType<MaybeArray<OnScrollOptionEnd>>;
2259
+ readonly onSearch: PropType<MaybeArray<(value: string) => void>>;
2254
2260
  readonly onLoad: PropType<OnLoad>;
2255
2261
  readonly onUpdateShow: PropType<MaybeArray<(show: boolean) => void>>;
2256
2262
  readonly onUpdateValue: PropType<MaybeArray<OnUpdateValue>>;
@@ -2323,6 +2329,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2323
2329
  readonly loading: BooleanConstructor;
2324
2330
  readonly maxTagCount: PropType<number | "responsive">;
2325
2331
  readonly multiple: BooleanConstructor;
2332
+ readonly remote: BooleanConstructor;
2326
2333
  readonly showPath: BooleanConstructor;
2327
2334
  readonly separator: {
2328
2335
  readonly type: StringConstructor;
@@ -3132,6 +3139,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3132
3139
  readonly filterable: boolean;
3133
3140
  readonly disabledField: string;
3134
3141
  readonly clearFilterAfterSelect: boolean;
3142
+ readonly remote: boolean;
3135
3143
  readonly cascade: boolean;
3136
3144
  readonly leafOnly: boolean;
3137
3145
  readonly showPath: boolean;
@@ -40,7 +40,7 @@ exports.treeSelectProps = Object.assign(Object.assign(Object.assign(Object.assig
40
40
  }, filterable: Boolean, checkStrategy: {
41
41
  type: String,
42
42
  default: 'all'
43
- }, loading: Boolean, maxTagCount: [String, Number], multiple: Boolean, showPath: Boolean, separator: {
43
+ }, loading: Boolean, maxTagCount: [String, Number], multiple: Boolean, remote: Boolean, showPath: Boolean, separator: {
44
44
  type: String,
45
45
  default: ' / '
46
46
  }, options: {
@@ -55,7 +55,7 @@ exports.treeSelectProps = Object.assign(Object.assign(Object.assign(Object.assig
55
55
  }, size: String, value: [String, Number, Array], to: _utils_1.useAdjustedTo.propTo, menuProps: Object, virtualScroll: {
56
56
  type: Boolean,
57
57
  default: true
58
- }, status: String, renderTag: Function }), Tree_1.treeSharedProps), { renderLabel: Function, renderPrefix: Function, renderSuffix: Function, nodeProps: Function, onBlur: Function, onFocus: Function, onScroll: [Function, Array], onScrollOptionEnd: [Function, Array], onLoad: Function, onUpdateShow: [Function, Array], onUpdateValue: [Function, Array], 'onUpdate:value': [Function, Array], 'onUpdate:show': [Function, Array],
58
+ }, status: String, renderTag: Function }), Tree_1.treeSharedProps), { renderLabel: Function, renderPrefix: Function, renderSuffix: Function, nodeProps: Function, onBlur: Function, onFocus: Function, onScroll: [Function, Array], onScrollOptionEnd: [Function, Array], onSearch: [Function, Array], onLoad: Function, onUpdateShow: [Function, Array], onUpdateValue: [Function, Array], 'onUpdate:value': [Function, Array], 'onUpdate:show': [Function, Array],
59
59
  /**
60
60
  * @deprecated
61
61
  */
@@ -86,20 +86,20 @@ exports.default = (0, vue_1.defineComponent)({
86
86
  const controlledShowRef = (0, vue_1.toRef)(props, 'show');
87
87
  const mergedShowRef = (0, vooks_1.useMergedState)(controlledShowRef, uncontrolledShowRef);
88
88
  const patternRef = (0, vue_1.ref)('');
89
+ const treePatternRef = (0, vue_1.computed)(() => {
90
+ return props.remote ? '' : patternRef.value;
91
+ });
89
92
  const mergedFilterRef = (0, vue_1.computed)(() => {
90
- const { filter } = props;
91
- if (filter)
92
- return filter;
93
- const { labelField } = props;
93
+ if (props.filter)
94
+ return props.filter;
94
95
  return (pattern, node) => {
95
96
  if (!pattern.length)
96
97
  return true;
97
- return node[labelField]
98
+ return node[props.labelField]
98
99
  .toLowerCase()
99
100
  .includes(pattern.toLowerCase());
100
101
  };
101
102
  });
102
- // used to resolve selected options
103
103
  const dataTreeMateRef = (0, vue_1.computed)(() => (0, treemate_1.createTreeMate)(props.options, (0, Tree_1.createTreeMateOptions)(props.keyField, props.childrenField, props.disabledField, undefined)));
104
104
  const { value: initMergedValue } = mergedValueRef;
105
105
  const pendingNodeKeyRef = (0, vue_1.ref)(props.checkable
@@ -402,9 +402,13 @@ exports.default = (0, vue_1.defineComponent)({
402
402
  }
403
403
  }
404
404
  }
405
+ function doSearch(value) {
406
+ props.onSearch && (0, _utils_1.call)(props.onSearch, value);
407
+ }
405
408
  function handlePatternInput(event) {
406
409
  const { value } = event.target;
407
410
  patternRef.value = value;
411
+ doSearch(value);
408
412
  }
409
413
  function treeHandleKeydown(event) {
410
414
  const { value: treeInst } = treeInstRef;
@@ -565,7 +569,7 @@ exports.default = (0, vue_1.defineComponent)({
565
569
  : undefined;
566
570
  return Object.assign(Object.assign({}, exposedMethods), { menuElRef, mergedStatus: mergedStatusRef, triggerInstRef,
567
571
  followerInstRef,
568
- treeInstRef, mergedClsPrefix: mergedClsPrefixRef, mergedValue: mergedValueRef, mergedShow: mergedShowRef, namespace: namespaceRef, adjustedTo: (0, _utils_1.useAdjustedTo)(props), isMounted: (0, vooks_1.useIsMounted)(), focused: focusedRef, menuPadding: menuPaddingRef, mergedPlaceholder: mergedPlaceholderRef, mergedExpandedKeys: mergedExpandedKeysRef, treeSelectedKeys: treeSelectedKeysRef, treeCheckedKeys: treeCheckedKeysRef, mergedSize: mergedSizeRef, mergedDisabled: mergedDisabledRef, selectedOption: selectedOptionRef, selectedOptions: selectedOptionsRef, pattern: patternRef, pendingNodeKey: pendingNodeKeyRef, mergedCascade: mergedCascadeRef, mergedFilter: mergedFilterRef, selectionRenderTag: selectionRenderTagRef, handleTriggerOrMenuResize,
572
+ treeInstRef, mergedClsPrefix: mergedClsPrefixRef, mergedValue: mergedValueRef, mergedShow: mergedShowRef, namespace: namespaceRef, adjustedTo: (0, _utils_1.useAdjustedTo)(props), isMounted: (0, vooks_1.useIsMounted)(), focused: focusedRef, menuPadding: menuPaddingRef, mergedPlaceholder: mergedPlaceholderRef, mergedExpandedKeys: mergedExpandedKeysRef, treeSelectedKeys: treeSelectedKeysRef, treeCheckedKeys: treeCheckedKeysRef, mergedSize: mergedSizeRef, mergedDisabled: mergedDisabledRef, selectedOption: selectedOptionRef, selectedOptions: selectedOptionsRef, pattern: patternRef, treePattern: treePatternRef, pendingNodeKey: pendingNodeKeyRef, mergedCascade: mergedCascadeRef, mergedFilter: mergedFilterRef, selectionRenderTag: selectionRenderTagRef, handleTriggerOrMenuResize,
569
573
  doUpdateExpandedKeys,
570
574
  handleMenuLeave,
571
575
  handleTriggerClick,
@@ -610,7 +614,7 @@ exports.default = (0, vue_1.defineComponent)({
610
614
  (menuProps === null || menuProps === void 0 ? void 0 : menuProps.style) || '',
611
615
  this.cssVars
612
616
  ], tabindex: 0, onMousedown: this.handleMenuMousedown, onKeydown: this.handleKeydown, onFocusin: this.handleMenuFocusin, onFocusout: this.handleMenuFocusout }),
613
- (0, vue_1.h)(tree_1.UTree, { ref: "treeInstRef", blockLine: true, allowCheckingNotLoaded: this.allowCheckingNotLoaded, showIrrelevantNodes: false, animated: false, pattern: this.pattern, filter: this.mergedFilter, data: options, cancelable: multiple, labelField: this.labelField, keyField: this.keyField, disabledField: this.disabledField, childrenField: this.childrenField, theme: mergedTheme.peers.Tree, themeOverrides: mergedTheme.peerOverrides.Tree, defaultExpandAll: this.defaultExpandAll, defaultExpandedKeys: this.defaultExpandedKeys, expandedKeys: this.mergedExpandedKeys, checkedKeys: this.treeCheckedKeys, selectedKeys: this.treeSelectedKeys, checkable: checkable, checkStrategy: this.checkStrategy, cascade: this.mergedCascade, leafOnly: this.leafOnly, multiple: this.multiple, renderLabel: this.renderLabel, renderPrefix: this.renderPrefix, renderSuffix: this.renderSuffix, renderSwitcherIcon: this.renderSwitcherIcon, nodeProps: this.nodeProps, virtualScroll: this.consistentMenuWidth && this.virtualScroll, internalTreeSelect: true, internalUnifySelectCheck: true, internalScrollable: true, internalScrollablePadding: this.menuPadding, internalFocusable: false, internalCheckboxFocusable: false, internalRenderEmpty: () => ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-tree-select-menu__empty` }, (0, _utils_1.resolveSlot)($slots.empty, () => [
617
+ (0, vue_1.h)(tree_1.UTree, { ref: "treeInstRef", blockLine: true, allowCheckingNotLoaded: this.allowCheckingNotLoaded, showIrrelevantNodes: false, animated: false, pattern: this.treePattern, filter: this.mergedFilter, data: options, cancelable: multiple, labelField: this.labelField, keyField: this.keyField, disabledField: this.disabledField, childrenField: this.childrenField, theme: mergedTheme.peers.Tree, themeOverrides: mergedTheme.peerOverrides.Tree, defaultExpandAll: this.defaultExpandAll, defaultExpandedKeys: this.defaultExpandedKeys, expandedKeys: this.mergedExpandedKeys, checkedKeys: this.treeCheckedKeys, selectedKeys: this.treeSelectedKeys, checkable: checkable, checkStrategy: this.checkStrategy, cascade: this.mergedCascade, leafOnly: this.leafOnly, multiple: this.multiple, renderLabel: this.renderLabel, renderPrefix: this.renderPrefix, renderSuffix: this.renderSuffix, renderSwitcherIcon: this.renderSwitcherIcon, nodeProps: this.nodeProps, virtualScroll: this.consistentMenuWidth && this.virtualScroll, internalTreeSelect: true, internalUnifySelectCheck: true, internalScrollable: true, internalScrollablePadding: this.menuPadding, internalFocusable: false, internalCheckboxFocusable: false, internalRenderEmpty: () => ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-tree-select-menu__empty` }, (0, _utils_1.resolveSlot)($slots.empty, () => [
614
618
  (0, vue_1.h)(empty_1.UEmpty, { theme: mergedTheme.peers.Empty, themeOverrides: mergedTheme.peerOverrides.Empty })
615
619
  ]))), onLoad: this.onLoad, onUpdateCheckedKeys: this.handleUpdateCheckedKeys, onUpdateIndeterminateKeys: this.handleUpdateIndeterminateKeys, onUpdateExpandedKeys: this.doUpdateExpandedKeys, onScroll: this.handleTreeScroll }),
616
620
  (0, _utils_1.resolveWrappedSlot)($slots.action, (children) => {
@@ -29,6 +29,7 @@ export type OnUpdateValueImpl = (value: string | number | (string | number) | st
29
29
  export type OnUpdateIndeterminateKeysImpl = (value: string | number | (string | number) | string[] | number[] | Array<string | number> | null, option: TreeSelectOption | null | Array<TreeSelectOption | null>) => void;
30
30
  export type Value = string | number | Array<string | number> | null;
31
31
  export type OnScrollOptionEnd = (option: TreeSelectOption, event: Event) => void;
32
+ export type FilterHandler = (pattern: string, node: TreeSelectOption) => boolean;
32
33
  export interface ScrollOptionEndScanResult {
33
34
  reachedOptions: TreeSelectOption[];
34
35
  visibleKeys: Set<Key>;
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "2.0.7";
1
+ declare const _default: "2.0.9";
2
2
  export default _default;
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = '2.0.7';
3
+ exports.default = '2.0.9';
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@uzum-tech/ui",
3
- "version": "2.0.7",
3
+ "version": "2.0.9",
4
+ "packageManager": "pnpm@10.33.0",
4
5
  "description": "A Vue 3 Component Library. Fairly Complete, Theme Customizable, Uses TypeScript, Fast",
5
6
  "author": {
6
7
  "name": "KapitalLab",
@@ -57,7 +58,7 @@
57
58
  "dev": "pnpm run clean && pnpm run gen-version && pnpm run gen-volar-dts && NODE_ENV=development vite",
58
59
  "build:package": "pnpm run gen-version && pnpm run clean && pnpm run gen-volar-dts && tsc -b --force tsconfig.esm.json && tsx scripts/pre-build/pre-cjs-build.ts && tsc -b --force tsconfig.cjs.json && rollup -c && pnpm run test:umd && pnpm run test:esm && pnpm run post-build && rimraf {es,lib}/*.tsbuildinfo",
59
60
  "build:themes": "tsc -b --force themes/tusimple/tsconfig.esm.json && tsc -b --force themes/tusimple/tsconfig.cjs.json",
60
- "build:site": "bash ./scripts/pre-build-site/pre-build-site.sh && NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 vite build && bash ./scripts/post-build-site/post-build-site.sh",
61
+ "build:site": "sh ./scripts/pre-build-site/pre-build-site.sh && NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 vite build && sh ./scripts/post-build-site/post-build-site.sh",
61
62
  "clean": "rimraf site lib es dist node_modules/@uzum-tech/ui themes/tusimple/es themes/tusimple/lib",
62
63
  "release:package": "npm login && pnpm install && pnpm run test && pnpm run build:package && npm publish --no-git-checks",
63
64
  "release:changelog": "tsx scripts/release-changelog.ts",
@@ -79,7 +80,7 @@
79
80
  "gen-version": "tsx scripts/gen-version.ts",
80
81
  "gen-volar-dts": "tsx scripts/gen-component-declaration.ts",
81
82
  "post-build": "tsx scripts/post-build/index.ts",
82
- "build:site:ts": "bash ./scripts/pre-build-site/pre-build-site.sh && TUSIMPLE=true NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 vite build && bash ./scripts/post-build-site/post-build-site.sh",
83
+ "build:site:ts": "sh ./scripts/pre-build-site/pre-build-site.sh && TUSIMPLE=true NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 vite build && sh ./scripts/post-build-site/post-build-site.sh",
83
84
  "prepare": "husky",
84
85
  "transpile-docs": "tsx scripts/md-to-vue.ts data-table",
85
86
  "type-check": "vue-tsc --noEmit",
package/web-types.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "framework": "vue",
4
4
  "name": "@uzum-tech/ui",
5
- "version": "2.0.7",
5
+ "version": "2.0.9",
6
6
  "js-types-syntax": "typescript",
7
7
  "contributions": {
8
8
  "html": {
@@ -15731,6 +15731,16 @@
15731
15731
  "description": "Placeholder.",
15732
15732
  "default": "'Please Select'"
15733
15733
  },
15734
+ {
15735
+ "name": "remote",
15736
+ "doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/tree-select",
15737
+ "type": "boolean",
15738
+ "description": "Whether to disable client-side filtering when `filterable` is set, so the `search` event can be used to load options remotely.",
15739
+ "default": "false",
15740
+ "description-sections": {
15741
+ "since": "2.0.8"
15742
+ }
15743
+ },
15734
15744
  {
15735
15745
  "name": "placement",
15736
15746
  "doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/tree-select",
@@ -15910,6 +15920,16 @@
15910
15920
  "since": "2.0.7"
15911
15921
  }
15912
15922
  },
15923
+ {
15924
+ "name": "search",
15925
+ "doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/tree-select",
15926
+ "type": "(value: string) => void",
15927
+ "description": "Callback fired when the filter input changes. Used together with `remote` to load options on the server.",
15928
+ "default": "undefined",
15929
+ "description-sections": {
15930
+ "since": "2.0.8"
15931
+ }
15932
+ },
15913
15933
  {
15914
15934
  "name": "update:expanded-keys",
15915
15935
  "doc-url": "https://uzum-ui.kapitalbank.uz/en-US/os-theme/components/tree-select",