From 6140c3c5a91a879889be33080e1aa8b9183982d4 Mon Sep 17 00:00:00 2001
From: Eytan <101130926+eytanProxi@users.noreply.github.com>
Date: Thu, 8 Aug 2024 21:34:58 +0200
Subject: [PATCH] fix(multi-select): fix `filterItem` return type (#1972)
---
COMPONENT_INDEX.md | 2 +-
docs/src/COMPONENT_API.json | 2 +-
src/MultiSelect/MultiSelect.svelte | 2 +-
tests/MultiSelect.test.svelte | 3 +++
types/MultiSelect/MultiSelect.svelte.d.ts | 2 +-
5 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/COMPONENT_INDEX.md b/COMPONENT_INDEX.md
index aaf27ef9d1..a328325e65 100644
--- a/COMPONENT_INDEX.md
+++ b/COMPONENT_INDEX.md
@@ -2378,7 +2378,7 @@ export interface MultiSelectItem {
| selectionFeedback | No | let
| No | "top" | "fixed" | "top-after-reopen"
| "top-after-reopen"
| Specify the selection feedback after selecting items |
| disabled | No | let
| No | boolean
| false
| Set to `true` to disable the dropdown |
| filterable | No | let
| No | boolean
| false
| Set to `true` to filter items |
-| filterItem | No | let
| No | (item: MultiSelectItem, value: string) => string
| (item, value) => item.text.toLowerCase().includes(value.trim().toLowerCase())
| Override the filtering logic
The default filtering is an exact string comparison |
+| filterItem | No | let
| No | (item: MultiSelectItem, value: string) => boolean
| (item, value) => item.text.toLowerCase().includes(value.trim().toLowerCase())
| Override the filtering logic
The default filtering is an exact string comparison |
| light | No | let
| No | boolean
| false
| Set to `true` to enable the light variant |
| locale | No | let
| No | string
| "en"
| Specify the locale |
| placeholder | No | let
| No | string
| ""
| Specify the placeholder text |
diff --git a/docs/src/COMPONENT_API.json b/docs/src/COMPONENT_API.json
index 49caf480a8..bded77366b 100644
--- a/docs/src/COMPONENT_API.json
+++ b/docs/src/COMPONENT_API.json
@@ -7123,7 +7123,7 @@
"name": "filterItem",
"kind": "let",
"description": "Override the filtering logic\nThe default filtering is an exact string comparison",
- "type": "(item: MultiSelectItem, value: string) => string",
+ "type": "(item: MultiSelectItem, value: string) => boolean",
"value": "(item, value) => item.text.toLowerCase().includes(value.trim().toLowerCase())",
"isFunction": true,
"isFunctionDeclaration": false,
diff --git a/src/MultiSelect/MultiSelect.svelte b/src/MultiSelect/MultiSelect.svelte
index ad3464afdb..032dde90c7 100644
--- a/src/MultiSelect/MultiSelect.svelte
+++ b/src/MultiSelect/MultiSelect.svelte
@@ -69,7 +69,7 @@
/**
* Override the filtering logic
* The default filtering is an exact string comparison
- * @type {(item: MultiSelectItem, value: string) => string}
+ * @type {(item: MultiSelectItem, value: string) => boolean}
*/
export let filterItem = (item, value) =>
item.text.toLowerCase().includes(value.trim().toLowerCase());
diff --git a/tests/MultiSelect.test.svelte b/tests/MultiSelect.test.svelte
index 48c9f37e17..9947cb51d1 100644
--- a/tests/MultiSelect.test.svelte
+++ b/tests/MultiSelect.test.svelte
@@ -127,6 +127,9 @@