From 93198fa2487a4cc40ad19004da78d88dd6b40983 Mon Sep 17 00:00:00 2001 From: Serhii Kulykov Date: Mon, 4 Dec 2023 14:41:19 +0200 Subject: [PATCH] fix: prevent long chips from exceeding available input width (#6905) --- .../vaadin-multi-select-combo-box-container.js | 1 + .../src/vaadin-multi-select-combo-box.js | 1 + .../visual/lumo/multi-select-combo-box.test.js | 17 +++++++++++++++++ .../auto-expand-long-chip-clear-button.png | Bin 0 -> 3645 bytes .../baseline/auto-expand-long-chip.png | Bin 0 -> 3535 bytes .../material/multi-select-combo-box.test.js | 17 +++++++++++++++++ .../auto-expand-long-chip-clear-button.png | Bin 0 -> 2707 bytes .../baseline/auto-expand-long-chip.png | Bin 0 -> 2720 bytes 8 files changed, 36 insertions(+) create mode 100644 packages/multi-select-combo-box/test/visual/lumo/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip-clear-button.png create mode 100644 packages/multi-select-combo-box/test/visual/lumo/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip.png create mode 100644 packages/multi-select-combo-box/test/visual/material/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip-clear-button.png create mode 100644 packages/multi-select-combo-box/test/visual/material/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip.png diff --git a/packages/multi-select-combo-box/src/vaadin-multi-select-combo-box-container.js b/packages/multi-select-combo-box/src/vaadin-multi-select-combo-box-container.js index 012c56844d..ffeaf1e2de 100644 --- a/packages/multi-select-combo-box/src/vaadin-multi-select-combo-box-container.js +++ b/packages/multi-select-combo-box/src/vaadin-multi-select-combo-box-container.js @@ -17,6 +17,7 @@ registerStyles( #wrapper { display: flex; width: 100%; + min-width: 0; } :host([auto-expand-vertically]) #wrapper { diff --git a/packages/multi-select-combo-box/src/vaadin-multi-select-combo-box.js b/packages/multi-select-combo-box/src/vaadin-multi-select-combo-box.js index cc60877583..54d7fb07e5 100644 --- a/packages/multi-select-combo-box/src/vaadin-multi-select-combo-box.js +++ b/packages/multi-select-combo-box/src/vaadin-multi-select-combo-box.js @@ -44,6 +44,7 @@ const multiSelectComboBox = css` [part='chip'] { flex: 0 1 auto; + overflow: hidden; } :host(:is([readonly], [disabled])) ::slotted(input) { diff --git a/packages/multi-select-combo-box/test/visual/lumo/multi-select-combo-box.test.js b/packages/multi-select-combo-box/test/visual/lumo/multi-select-combo-box.test.js index bcf348df73..db879ebccf 100644 --- a/packages/multi-select-combo-box/test/visual/lumo/multi-select-combo-box.test.js +++ b/packages/multi-select-combo-box/test/visual/lumo/multi-select-combo-box.test.js @@ -146,6 +146,23 @@ describe('multi-select-combo-box', () => { element.selectedItems = items; await visualDiff(div, 'auto-expand-height'); }); + + it('auto expand long chip', async () => { + element.style.maxWidth = '300px'; + const items = [...element.items]; + items[0] = 'Super long item that does not fit into input'; + element.items = element.selectedItems = [items[0]]; + await visualDiff(div, 'auto-expand-long-chip'); + }); + + it('auto expand long chip clear button', async () => { + element.style.maxWidth = '300px'; + element.clearButtonVisible = true; + const items = [...element.items]; + items[0] = 'Super long item that does not fit into input'; + element.items = element.selectedItems = [items[0]]; + await visualDiff(div, 'auto-expand-long-chip-clear-button'); + }); }); describe('opened', () => { diff --git a/packages/multi-select-combo-box/test/visual/lumo/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip-clear-button.png b/packages/multi-select-combo-box/test/visual/lumo/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip-clear-button.png new file mode 100644 index 0000000000000000000000000000000000000000..d8fde00ea5262827f2a1b8760320a709437f82fb GIT binary patch literal 3645 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 literal 0 HcmV?d00001 diff --git a/packages/multi-select-combo-box/test/visual/lumo/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip.png b/packages/multi-select-combo-box/test/visual/lumo/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip.png new file mode 100644 index 0000000000000000000000000000000000000000..f730a3e942dc1a7c6afc50bfb603927231d6ef80 GIT binary patch literal 3535 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 { element.style.maxWidth = '250px'; await visualDiff(div, 'auto-expand-max-width'); }); + + it('auto expand long chip', async () => { + element.style.maxWidth = '250px'; + const items = [...element.items]; + items[0] = 'Super long item that does not fit into input'; + element.items = element.selectedItems = [items[0]]; + await visualDiff(div, 'auto-expand-long-chip'); + }); + + it('auto expand long chip clear button', async () => { + element.style.maxWidth = '250px'; + element.clearButtonVisible = true; + const items = [...element.items]; + items[0] = 'Super long item that does not fit into input'; + element.items = element.selectedItems = [items[0]]; + await visualDiff(div, 'auto-expand-long-chip-clear-button'); + }); }); describe('opened', () => { diff --git a/packages/multi-select-combo-box/test/visual/material/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip-clear-button.png b/packages/multi-select-combo-box/test/visual/material/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip-clear-button.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1c3ac988d939ca04d42ca9e7fbe315c93c89af GIT binary patch literal 2707 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 literal 0 HcmV?d00001 diff --git a/packages/multi-select-combo-box/test/visual/material/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip.png b/packages/multi-select-combo-box/test/visual/material/screenshots/multi-select-combo-box/baseline/auto-expand-long-chip.png new file mode 100644 index 0000000000000000000000000000000000000000..79786177a8b2c6a95d3a07bbe35da0e6c611bc07 GIT binary patch literal 2720 zcmcJR`9BkmAIH(Bk`*bpAwIG!p*||-6f%;z%9&ha?rV-|ZaH#|7NgDF_Z2=FqljDy z$$g(WK5K^2u%@r?FW<-a5BPq6dA*;n_wTRA>-EwY2ED)~!o|kMc0pfH$CQnYo%@7s zIM1ADbgajdlf#ZQg=(?Y3<5XV*to3qb?!e#5vX&Tp4RK)-8(+m$~SWNE5L*<^Z2(P z;XE1+Zq(CgKlLb_N2Z5Gg|FJ8T(?;$ZnE>8Nio1SmF9?$vhoz@)!B>$O>P)373Woa z>${ZjdX4*H^lyh}6QgzX&_-Wn8dL2zkxmqJgoH4EQf+i}&d-wn;m}zeY=tkSQvTjC zxjRFwn-XehyHyGvlfw@S%k@hMCDvzGKXa#t`PF}Nv?4??uvRf6kRw4>tn_F3x>1r7Ah3e-W5UZp2Xo zNM>&DyiULL-bzc(2|6q9U~}gx$l#0h6@4P=EhWsB)vX$<26ws{^wYE8F9CDK&n|Tj z18II}(ZU}5++TY*<;n9G0v7_|M{ie`dF+nv$AUL6)>o+5TT5kEY5tT2I*@AuKo zb|aC@+zFOG-SwQhcV)+)kNP??rY!q@FvAPgZ2x>Q!jzj5_=pmJ1%T?>SF=QWO#P4vNAg~Z3LkJxIVY(hk{x$L? zg(tVoyLqs;uoTXvU`eO)8aAfZVC^K$vt=@5jr9yok~Q)tH>?r+DzSQ)rDW_?@f)}5 zGV+a4pLaJPfIbESrn-I+2EW#7*-6TEtPNYny)xO2`a^+B_>u$9m_KHE4(rKhDtF2L zhS`(JIURJM;)CUoC@uGBy8_8Z%SE@6dkzCV$47(divdR7 z#(Foj>{A{|cC=JeZJ7euT2Y7{lW#WYQCMZ2!EG@_|GV}Et*CVmhFcK7aXqeX4xoO6 zueZphyjCIjsAAHuQN!Tmfofco5jHYA4Gyxn-~sW+V7$#H*xS#6rhCG2AGa(u9PL55 z;Nu)`vkKncoC*{S{;N4X|6N&oH++J{B6zhac`G#VN_-DqT6(NE;~bi9)q2;f>0|Mr zA1a&ahd<0md~%6?QGkb6hQZWALa8~F4o&`U93(GVJA{_D?U@%CectF25oQ)1d z()@&oSHFS@ecMW#uqE~q4yvNq`yoq48;d8aOo{oXO6`5n_K>EN6M2l-|2y(t9gOwG zoX!35u6zd%tC|{kC`?h0$~chSbhljAO-!7)!QMoWsYH0KSK%oGtX~B$wV8 zBuejsZ^*jdFCT8&rs&S`EmK#$lVFqblL+)BpCowb=@!l$SS()@-D1i zXdaZMz?<#Wc6KmVx?)VWMKUrzyGp$vZoRx5%X8#F>YhK6--`9Rb@0{b|iBG`n}RF!gff&kefvM2Pxfs?|vtm1e)1^b~7U zG(F{RuJ+o^;dM@NteJ)MsVA>8WGC1}UUTn4EoyKx*oPM$GFwJFolwHvciCHJLaYt% zTr2iUJTo!BeZZ$}V*{UInUBo;fXcvBhFcDWlU66^Y8%Cc-5>bBUsJZWSs-sr4+(Wv zcc?K7OddMn`Q}>=#h)!J%g=6^FRNtuPdI(HO8J{XZ!q;RDg4CjTv`9P%x)8e&NhPw z3zl@p+4M^>i-N#Z84oyBqhfS2=@<*&ELce07y~VeM3=bXSzGNjv;ZX$kR9dw0ikm#Om{9y*-ubjY1>Fq+A0UV0k?xW@lzR;}z9UY@di z;+hb!iT