diff --git a/packages/primevue/src/treeselect/BaseTreeSelect.vue b/packages/primevue/src/treeselect/BaseTreeSelect.vue index 0ed012ce8..f4205c3b3 100644 --- a/packages/primevue/src/treeselect/BaseTreeSelect.vue +++ b/packages/primevue/src/treeselect/BaseTreeSelect.vue @@ -56,6 +56,26 @@ export default { type: Boolean, default: null }, + filter: { + type: Boolean, + default: false + }, + filterBy: { + type: [String, Function], + default: 'label' + }, + filterMode: { + type: String, + default: 'lenient' + }, + filterPlaceholder: { + type: String, + default: null + }, + filterLocale: { + type: String, + default: undefined + }, inputId: { type: String, default: null diff --git a/packages/primevue/src/treeselect/TreeSelect.d.ts b/packages/primevue/src/treeselect/TreeSelect.d.ts index 1455fb5ca..9b7124b0d 100644 --- a/packages/primevue/src/treeselect/TreeSelect.d.ts +++ b/packages/primevue/src/treeselect/TreeSelect.d.ts @@ -209,10 +209,6 @@ export interface TreeSelectProps { * @defaultValue null */ fluid?: boolean | undefined; - /** - * Style class of the overlay panel. - */ - panelClass?: any; /** * A valid query selector or an HTMLElement to specify where the overlay gets attached. * @defaultValue body @@ -234,6 +230,29 @@ export interface TreeSelectProps { * @defaultValue false */ metaKeySelection?: boolean | undefined; + /** + * When specified, displays an input field to filter the items. + * @defaultValue false + */ + filter?: boolean | undefined; + /** + * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against. A callable taking a TreeNode can be provided instead of a list of field names. + * @defaultValue label + */ + filterBy?: string | ((node: TreeNode) => string) | undefined; + /** + * Mode for filtering. + * @defaultValue lenient + */ + filterMode?: 'lenient' | 'strict' | undefined; + /** + * Placeholder text to show when filter input is empty. + */ + filterPlaceholder?: string | undefined; + /** + * Locale to use in filtering. The default locale is the host environment's current locale. + */ + filterLocale?: string | undefined; /** * Identifier of the underlying input element. */ @@ -250,6 +269,10 @@ export interface TreeSelectProps { * Used to pass all properties of the HTMLInputElement to the focusable input element inside the component. */ inputProps?: InputHTMLAttributes | undefined; + /** + * Style class of the overlay panel. + */ + panelClass?: any; /** * Establishes relationships between the component and label(s) where its value should be one or more element IDs. */ diff --git a/packages/primevue/src/treeselect/TreeSelect.vue b/packages/primevue/src/treeselect/TreeSelect.vue index 5b6b139c0..e7c75fc5f 100644 --- a/packages/primevue/src/treeselect/TreeSelect.vue +++ b/packages/primevue/src/treeselect/TreeSelect.vue @@ -64,6 +64,11 @@ :id="listId" :value="options" :selectionMode="selectionMode" + :filter="filter" + :filterBy="filterBy" + :filterMode="filterMode" + :filterPlaceholder="filterPlaceholder" + :filterLocale="filterLocale" @update:selectionKeys="onSelectionChange" :selectionKeys="modelValue" :expandedKeys="expandedKeys"