From 8a60ed6ac997a29fc55ecc4d99bc90d23e30e80e Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 25 Aug 2025 16:16:54 +0300 Subject: [PATCH 1/4] feat: add itemLabelGenerator property to select, combo-box and multi-select-combo-box MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implement itemLabelGenerator function property that allows custom label generation for items. The generator function receives an item and returns a string label, taking precedence over itemLabelPath when both are defined. - Add itemLabelGenerator to vaadin-select for custom dropdown item labels - Add itemLabelGenerator to vaadin-combo-box with support for filtering by generated labels - Multi-select-combo-box inherits itemLabelGenerator for both dropdown and chip labels - Add comprehensive tests for all three components - Update dev examples to demonstrate the new feature Fixes #8333 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- dev/combo-box.html | 58 +++++-- dev/multi-select-combo-box.html | 28 +++ dev/select.html | 14 ++ .../src/vaadin-combo-box-items-mixin.js | 24 +++ .../test/item-label-generator.test.js | 122 +++++++++++++ .../test/item-label-generator.test.js | 164 ++++++++++++++++++ .../select/src/vaadin-select-base-mixin.js | 46 ++++- .../select/test/item-label-generator.test.js | 103 +++++++++++ 8 files changed, 535 insertions(+), 24 deletions(-) create mode 100644 packages/combo-box/test/item-label-generator.test.js create mode 100644 packages/multi-select-combo-box/test/item-label-generator.test.js create mode 100644 packages/select/test/item-label-generator.test.js diff --git a/dev/combo-box.html b/dev/combo-box.html index 8c63443ad3d..fff07487fa0 100644 --- a/dev/combo-box.html +++ b/dev/combo-box.html @@ -34,6 +34,16 @@

Bells & Whistles

+
+

Item Label Generator

+ +
+

States

States diff --git a/dev/multi-select-combo-box.html b/dev/multi-select-combo-box.html index 403922aa746..8f72830fbcd 100644 --- a/dev/multi-select-combo-box.html +++ b/dev/multi-select-combo-box.html @@ -84,6 +84,15 @@ +
+

Object items with itemLabelGenerator

+ +
+