@esri/calcite-components 5.2.0-next.1 → 5.2.0-next.11
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.
- package/README.md +1 -1
- package/dist/cdn/{TX53ZOIB.js → 24X5JMHT.js} +1 -1
- package/dist/cdn/{MIR7TMZV.js → 2ELOLPNF.js} +1 -1
- package/dist/cdn/{54LRKMZS.js → 2JMH7LPC.js} +1 -1
- package/dist/cdn/2OKTIK5P.js +2 -0
- package/dist/cdn/{3IC622AE.js → 2XGJ3QNO.js} +1 -1
- package/dist/cdn/{TKWNZUZC.js → 3CRONO2H.js} +1 -1
- package/dist/cdn/3EZDLGBO.js +2 -0
- package/dist/cdn/{7MVJZ7CE.js → 3KCJ5OBV.js} +1 -1
- package/dist/cdn/3SETOU5V.js +2 -0
- package/dist/cdn/4RQ5ZGOF.js +2 -0
- package/dist/cdn/{PV5JONG7.js → 56KAPM6G.js} +1 -1
- package/dist/cdn/{AIWMELGE.js → 5CSHF46L.js} +1 -1
- package/dist/cdn/{PVLYFAFT.js → 5FLAJ7D2.js} +1 -1
- package/dist/cdn/5LW3L2G4.js +2 -0
- package/dist/cdn/{ACTWXLMU.js → 5LXXJ62H.js} +1 -1
- package/dist/cdn/{T64D27BK.js → 5PGOKPKX.js} +1 -1
- package/dist/cdn/{IMHBTKOK.js → 5U7ZVAAZ.js} +1 -1
- package/dist/cdn/{OMEUUIN3.js → 5XL7IT2K.js} +1 -1
- package/dist/cdn/{TUOZOBAX.js → 63DWPLOW.js} +1 -1
- package/dist/cdn/6AKAPCTR.js +2 -0
- package/dist/cdn/{GPZK2XCA.js → 6KINBEDD.js} +1 -1
- package/dist/cdn/6O3DEY2K.js +2 -0
- package/dist/cdn/{QJVQP6SA.js → 72B2PF6V.js} +1 -1
- package/dist/cdn/7LYEAGAV.js +2 -0
- package/dist/cdn/A7TDONQL.js +2 -0
- package/dist/cdn/{DOQVMLYE.js → ALEAEOVB.js} +1 -1
- package/dist/cdn/{H6TQ2ZT5.js → B2PYAAJV.js} +1 -1
- package/dist/cdn/BBQVPQKS.js +2 -0
- package/dist/cdn/BEE5ZZFY.js +2 -0
- package/dist/cdn/{XKLVTSH7.js → BEKZEU4I.js} +1 -1
- package/dist/cdn/BI6OUBR4.js +2 -0
- package/dist/cdn/{JFBAD4EH.js → BLRDFO6X.js} +1 -1
- package/dist/cdn/BPA5EXVV.js +2 -0
- package/dist/cdn/BYHIBMOX.js +2 -0
- package/dist/cdn/{F5S74A6J.js → C2UEEF3A.js} +1 -1
- package/dist/cdn/{3F6G62ML.js → CDIHWTXQ.js} +1 -1
- package/dist/cdn/{YLSRMNDL.js → CJD35UKW.js} +1 -1
- package/dist/cdn/{6SJDD32D.js → CJQSJSTS.js} +1 -1
- package/dist/cdn/{V4N6LLPL.js → CN3GE6PT.js} +1 -1
- package/dist/cdn/{XVA6JBXQ.js → D7RBRMCT.js} +1 -1
- package/dist/cdn/{5B3SU7K7.js → DA2XHTL4.js} +1 -1
- package/dist/cdn/DEFKYCLD.js +20 -0
- package/dist/cdn/DPGSR54A.js +2 -0
- package/dist/cdn/{ASL35FGE.js → DQWH6U7F.js} +1 -1
- package/dist/cdn/{AWONW44Y.js → DZQK7XAU.js} +1 -1
- package/dist/cdn/{4ETK64XH.js → EAFCYLPB.js} +1 -1
- package/dist/cdn/EC7ULGFR.js +2 -0
- package/dist/cdn/{3274MQBE.js → EJEEDORY.js} +1 -1
- package/dist/cdn/{2QRPMWMD.js → EJWFQHC3.js} +1 -1
- package/dist/cdn/EWSBPNQJ.js +2 -0
- package/dist/cdn/F6ACIE2U.js +2 -0
- package/dist/cdn/{UTYK5GN7.js → FB57TK7N.js} +1 -1
- package/dist/cdn/{NSSVAO6G.js → FGJZEQ7S.js} +1 -1
- package/dist/cdn/{6HQ7WHUL.js → FKY6KVFI.js} +1 -1
- package/dist/cdn/FUTBCFE5.js +2 -0
- package/dist/cdn/{V2ZQL3ON.js → FYDHPNCY.js} +1 -1
- package/dist/cdn/{JSEZIWE7.js → G6EVBNHW.js} +1 -1
- package/dist/cdn/{CWQ3PMYG.js → GB7SQRWY.js} +1 -1
- package/dist/cdn/{GHBTJCIE.js → GDUTBFTC.js} +1 -1
- package/dist/cdn/{4MGZ6ADZ.js → GHDKS4TD.js} +1 -1
- package/dist/cdn/GI5F5GIL.js +2 -0
- package/dist/cdn/{ERXINDJK.js → GL7AHGSG.js} +1 -1
- package/dist/cdn/{DOTGEOAD.js → GM26E4GK.js} +1 -1
- package/dist/cdn/{ESXXYY4U.js → H5UDZR5O.js} +1 -1
- package/dist/cdn/{IFGOL2KZ.js → HBUYVYXR.js} +1 -1
- package/dist/cdn/{OM2LRTKI.js → HSGC6FUA.js} +1 -1
- package/dist/cdn/{4XMK7RES.js → I2BHXDYX.js} +1 -1
- package/dist/cdn/{HI5BMWLV.js → I5F3FJAY.js} +1 -1
- package/dist/cdn/{CYL77NSA.js → IBIH72UK.js} +1 -1
- package/dist/cdn/IL4G7JFU.js +2 -0
- package/dist/cdn/{SVIZ25MX.js → ILDL4WCG.js} +1 -1
- package/dist/cdn/{AYIHFCPW.js → IOUHSWD2.js} +1 -1
- package/dist/cdn/{6WRZDS46.js → JBKYBEOG.js} +1 -1
- package/dist/cdn/{YOMDRGFX.js → JEOK7EMC.js} +1 -1
- package/dist/cdn/{7BAH3USN.js → JMT3PAOJ.js} +1 -1
- package/dist/cdn/{6P2QCONQ.js → JPUVW4BM.js} +1 -1
- package/dist/cdn/{DYTBN43V.js → JQWOF5HF.js} +1 -1
- package/dist/cdn/{FEGURFPP.js → JSIAJ7SW.js} +1 -1
- package/dist/cdn/{ES72YVWM.js → JYNUT5O6.js} +2 -2
- package/dist/cdn/{VOLQZMH5.js → K3U762E3.js} +1 -1
- package/dist/cdn/{6DUYQARM.js → KHZYS5PW.js} +1 -1
- package/dist/cdn/{CJ6HLMWM.js → KJ3MMRFP.js} +1 -1
- package/dist/cdn/KLDQUGLR.js +2 -0
- package/dist/cdn/KNTY5HWG.js +2 -0
- package/dist/cdn/{QUKECT32.js → KQT4OVOQ.js} +1 -1
- package/dist/cdn/KRZT7UVD.js +2 -0
- package/dist/cdn/{UWEY77AH.js → KW3PLEX7.js} +1 -1
- package/dist/cdn/L2E2NR2H.js +2 -0
- package/dist/cdn/{Y77IPFJ6.js → LFKTIMOZ.js} +1 -1
- package/dist/cdn/{TOW6FGVT.js → LHTO7FY4.js} +1 -1
- package/dist/cdn/{MM6ZG6HL.js → LOTSIKHS.js} +1 -1
- package/dist/cdn/{JQOYQOAO.js → LR455X6K.js} +1 -1
- package/dist/cdn/{NLG3XARE.js → LRZTFP3T.js} +1 -1
- package/dist/cdn/{O4JLFLGJ.js → MCIO7E44.js} +1 -1
- package/dist/cdn/{EYO37APD.js → MCRV5ZIG.js} +1 -1
- package/dist/cdn/MHXRVPMW.js +2 -0
- package/dist/cdn/{GIWBHPUL.js → MQ7UFMYF.js} +1 -1
- package/dist/cdn/{WMJFCYAQ.js → MRZOIDQQ.js} +1 -1
- package/dist/cdn/{JNIRX7D3.js → MTOH4QVT.js} +1 -1
- package/dist/cdn/{RX7YQTRT.js → MYZS7KFS.js} +1 -1
- package/dist/cdn/{SG43VAY2.js → N5VSPAE3.js} +1 -1
- package/dist/cdn/{W6FGHS7T.js → N6TVPJ75.js} +1 -1
- package/dist/cdn/{RL3BQHH7.js → NGAWCOAE.js} +1 -1
- package/dist/cdn/{WBEFTFTM.js → NN7V77MF.js} +1 -1
- package/dist/cdn/{VNHCZF5S.js → NNQ7SFRC.js} +1 -1
- package/dist/cdn/{EARL5L6Z.js → NURKCAEJ.js} +1 -1
- package/dist/cdn/{D2F4S4IN.js → OBIIMTPH.js} +1 -1
- package/dist/cdn/OIO5CL6R.js +2 -0
- package/dist/cdn/{25KULUYL.js → OQ2LTAWF.js} +1 -1
- package/dist/cdn/{YEOA76XG.js → OYT6TEB6.js} +1 -1
- package/dist/cdn/{PK24O5FM.js → P42BO7EU.js} +1 -1
- package/dist/cdn/P5E4K2YU.js +2 -0
- package/dist/cdn/{AHIMAWOG.js → PFED4DAQ.js} +1 -1
- package/dist/cdn/{6VJGFXTB.js → PGLPZTZP.js} +1 -1
- package/dist/cdn/{TBBD7RAC.js → PRMQOCUX.js} +1 -1
- package/dist/cdn/PTCA34C2.js +2 -0
- package/dist/cdn/QESRDF5I.js +2 -0
- package/dist/cdn/{YWSUGSZQ.js → QJMREFZB.js} +1 -1
- package/dist/cdn/{GX22FMPB.js → QLMVDHA2.js} +1 -1
- package/dist/cdn/{DOEPGWZO.js → QNAN26PB.js} +1 -1
- package/dist/cdn/{JYV5JY66.js → QNSRPIAF.js} +1 -1
- package/dist/cdn/QQDQTFWB.js +2 -0
- package/dist/cdn/QQMRGXT6.js +2 -0
- package/dist/cdn/{ZSURDLTS.js → R6VINUVM.js} +1 -1
- package/dist/cdn/R77ROGW2.js +2 -0
- package/dist/cdn/{XKZW6PMR.js → RAJYPSRB.js} +1 -1
- package/dist/cdn/{T6WFAXGK.js → RCFDK4P6.js} +1 -1
- package/dist/cdn/{A7VRJEQ7.js → RCRCHQMS.js} +1 -1
- package/dist/cdn/RJYU6IPS.js +2 -0
- package/dist/cdn/{MDH6YMD3.js → S6U2KSPS.js} +1 -1
- package/dist/cdn/{2WQCK6Z3.js → S7II3I5Q.js} +1 -1
- package/dist/cdn/{MZGWIJTE.js → T3DTWGCK.js} +1 -1
- package/dist/cdn/{MOVYXJPM.js → TB4K2SOD.js} +1 -1
- package/dist/cdn/TFQV64OA.js +2 -0
- package/dist/cdn/{7BPZSHP5.js → TGKWY4TT.js} +1 -1
- package/dist/cdn/{2DTD2NAQ.js → TQQODXRZ.js} +1 -1
- package/dist/cdn/UBV2M472.js +2 -0
- package/dist/cdn/UWAER5W3.js +2 -0
- package/dist/cdn/{DXKVNK72.js → V7AJFYEC.js} +1 -1
- package/dist/cdn/{N5V52FVE.js → VZRT26W2.js} +1 -1
- package/dist/cdn/{7T64APC5.js → W3GTJS5Q.js} +1 -1
- package/dist/cdn/{L4Z32DDI.js → W43X4BGF.js} +1 -1
- package/dist/cdn/{XRGFDJYN.js → WITBUCKH.js} +1 -1
- package/dist/cdn/{VOYNOWTM.js → WMWUSGWO.js} +2 -2
- package/dist/cdn/{RSDMKNTP.js → WNRAC2WY.js} +1 -1
- package/dist/cdn/WRI4WTGJ.js +2 -0
- package/dist/cdn/{LLBCU6W2.js → WUHL2RF4.js} +1 -1
- package/dist/cdn/WX3UVAG5.js +2 -0
- package/dist/cdn/{GQYGI42P.js → X5OTLCGH.js} +1 -1
- package/dist/cdn/{R66RRO3R.js → XGCFMOII.js} +1 -1
- package/dist/cdn/YJPIZ6DX.js +2 -0
- package/dist/cdn/Z5ZJ5N7G.js +2 -0
- package/dist/cdn/{DXJL2WZO.js → ZAUUAVGQ.js} +1 -1
- package/dist/cdn/{VINHY2BO.js → ZSDOYVMG.js} +1 -1
- package/dist/cdn/assets/combobox/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/combobox/t9n/messages.json +1 -1
- package/dist/cdn/assets/icon/buildingIndex16.json +1 -0
- package/dist/cdn/assets/icon/buildingIndex24.json +1 -0
- package/dist/cdn/assets/icon/buildingIndex32.json +1 -0
- package/dist/cdn/assets/icon/fireIndex16.json +1 -0
- package/dist/cdn/assets/icon/fireIndex24.json +1 -0
- package/dist/cdn/assets/icon/fireIndex32.json +1 -0
- package/dist/cdn/assets/icon/geologyIndex16.json +1 -0
- package/dist/cdn/assets/icon/geologyIndex24.json +1 -0
- package/dist/cdn/assets/icon/geologyIndex32.json +1 -0
- package/dist/cdn/assets/icon/returnToDefault16.json +1 -1
- package/dist/cdn/assets/icon/returnToDefault32.json +1 -1
- package/dist/cdn/assets/icon/smartSearch16.json +1 -0
- package/dist/cdn/assets/icon/smartSearch24.json +1 -0
- package/dist/cdn/assets/icon/smartSearch32.json +1 -0
- package/dist/cdn/assets/icon/snowIndex16.json +1 -0
- package/dist/cdn/assets/icon/snowIndex24.json +1 -0
- package/dist/cdn/assets/icon/snowIndex32.json +1 -0
- package/dist/cdn/assets/icon/soilAdjustedVegetationIndex16.json +1 -0
- package/dist/cdn/assets/icon/soilAdjustedVegetationIndex24.json +1 -0
- package/dist/cdn/assets/icon/soilAdjustedVegetationIndex32.json +1 -0
- package/dist/cdn/assets/icon/userSave16.json +1 -0
- package/dist/cdn/assets/icon/userSave24.json +1 -0
- package/dist/cdn/assets/icon/userSave32.json +1 -0
- package/dist/cdn/assets/icon/vegetationIndex16.json +1 -0
- package/dist/cdn/assets/icon/vegetationIndex24.json +1 -0
- package/dist/cdn/assets/icon/vegetationIndex32.json +1 -0
- package/dist/cdn/assets/icon/weatherRadar16.json +1 -0
- package/dist/cdn/assets/icon/weatherRadar24.json +1 -0
- package/dist/cdn/assets/icon/weatherRadar32.json +1 -0
- package/dist/cdn/assets/input/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/input/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/input-number/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/input-text/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/ClearButton.js +1 -1
- package/dist/chunks/date.js +9 -6
- package/dist/chunks/dom.js +3 -2
- package/dist/chunks/math.js +1 -1
- package/dist/chunks/openCloseComponent.js +1 -1
- package/dist/chunks/resources.js +0 -1
- package/dist/chunks/resources10.js +19 -0
- package/dist/chunks/resources11.js +63 -0
- package/dist/chunks/resources12.js +27 -0
- package/dist/chunks/resources5.js +40 -51
- package/dist/chunks/resources6.js +24 -46
- package/dist/chunks/resources7.js +53 -8
- package/dist/chunks/resources8.js +50 -10
- package/dist/chunks/resources9.js +7 -53
- package/dist/chunks/responsive.js +1 -1
- package/dist/chunks/runtime.js +6 -5
- package/dist/chunks/useSizeOverride.js +1 -1
- package/dist/chunks/useSortable.js +34 -4
- package/dist/chunks/useTime.js +27 -24
- package/dist/chunks/utils.js +12 -18
- package/dist/chunks/utils2.js +59 -6
- package/dist/chunks/utils3.js +1 -1
- package/dist/components/calcite-action/customElement.d.ts +1 -5
- package/dist/components/calcite-action/customElement.js +26 -10
- package/dist/components/calcite-action-group/customElement.d.ts +2 -4
- package/dist/components/calcite-action-menu/customElement.d.ts +2 -4
- package/dist/components/calcite-alert/customElement.d.ts +1 -3
- package/dist/components/calcite-autocomplete/customElement.d.ts +3 -9
- package/dist/components/calcite-autocomplete-item/customElement.d.ts +1 -1
- package/dist/components/calcite-block/customElement.d.ts +12 -14
- package/dist/components/calcite-block/customElement.js +8 -49
- package/dist/components/calcite-block-group/customElement.js +3 -5
- package/dist/components/calcite-block-section/customElement.d.ts +5 -5
- package/dist/components/calcite-block-section/customElement.js +1 -1
- package/dist/components/calcite-button/customElement.d.ts +9 -13
- package/dist/components/calcite-button/customElement.js +3 -3
- package/dist/components/calcite-carousel/customElement.js +2 -2
- package/dist/components/calcite-checkbox/customElement.d.ts +1 -5
- package/dist/components/calcite-chip/customElement.d.ts +1 -1
- package/dist/components/calcite-chip/customElement.js +3 -29
- package/dist/components/calcite-color-picker/customElement.d.ts +3 -3
- package/dist/components/calcite-color-picker/customElement.js +23 -20
- package/dist/components/calcite-color-picker-hex-input/customElement.d.ts +1 -1
- package/dist/components/calcite-color-picker-hex-input/customElement.js +4 -4
- package/dist/components/calcite-color-picker-swatch/customElement.d.ts +1 -1
- package/dist/components/calcite-color-picker-swatch/customElement.js +1 -1
- package/dist/components/calcite-combobox/customElement.d.ts +13 -19
- package/dist/components/calcite-combobox/customElement.js +310 -152
- package/dist/components/calcite-combobox-item/customElement.d.ts +6 -6
- package/dist/components/calcite-combobox-item/customElement.js +2 -1
- package/dist/components/calcite-combobox-item-group/customElement.d.ts +1 -1
- package/dist/components/calcite-combobox-item-group/customElement.js +1 -1
- package/dist/components/calcite-date-picker/customElement.d.ts +10 -10
- package/dist/components/calcite-date-picker/customElement.js +18 -18
- package/dist/components/calcite-date-picker-day/customElement.js +2 -2
- package/dist/components/calcite-date-picker-month/customElement.d.ts +4 -4
- package/dist/components/calcite-date-picker-month/customElement.js +19 -14
- package/dist/components/calcite-date-picker-month-header/customElement.js +14 -9
- package/dist/components/calcite-dialog/customElement.d.ts +9 -11
- package/dist/components/calcite-dialog/customElement.js +6 -7
- package/dist/components/calcite-dropdown/customElement.d.ts +6 -7
- package/dist/components/calcite-dropdown/customElement.js +10 -7
- package/dist/components/calcite-dropdown-group/customElement.d.ts +1 -1
- package/dist/components/calcite-dropdown-group/customElement.js +2 -2
- package/dist/components/calcite-dropdown-item/customElement.d.ts +7 -7
- package/dist/components/calcite-dropdown-item/customElement.js +4 -4
- package/dist/components/calcite-filter/customElement.js +1 -1
- package/dist/components/calcite-flow-item/customElement.d.ts +2 -4
- package/dist/components/calcite-flow-item/customElement.js +2 -2
- package/dist/components/calcite-graph/customElement.d.ts +3 -3
- package/dist/components/calcite-graph/customElement.js +11 -15
- package/dist/components/calcite-icon/customElement.d.ts +2 -2
- package/dist/components/calcite-icon/customElement.js +4 -4
- package/dist/components/calcite-icon/interfaces.d.ts +1 -1
- package/dist/components/calcite-inline-editable/customElement.d.ts +1 -1
- package/dist/components/calcite-inline-editable/customElement.js +4 -2
- package/dist/components/calcite-input/customElement.d.ts +23 -24
- package/dist/components/calcite-input/customElement.js +15 -13
- package/dist/components/calcite-input-date-picker/customElement.d.ts +17 -23
- package/dist/components/calcite-input-date-picker/customElement.js +19 -24
- package/dist/components/calcite-input-message/customElement.d.ts +1 -1
- package/dist/components/calcite-input-number/customElement.d.ts +22 -25
- package/dist/components/calcite-input-number/customElement.js +15 -13
- package/dist/components/calcite-input-text/customElement.d.ts +18 -19
- package/dist/components/calcite-input-text/customElement.js +3 -3
- package/dist/components/calcite-input-time-picker/customElement.d.ts +11 -13
- package/dist/components/calcite-input-time-picker/customElement.js +34 -10
- package/dist/components/calcite-input-time-zone/customElement.d.ts +9 -15
- package/dist/components/calcite-input-time-zone/customElement.js +14 -12
- package/dist/components/calcite-list/customElement.js +1 -1
- package/dist/components/calcite-list-item/customElement.d.ts +1 -3
- package/dist/components/calcite-list-item/customElement.js +1 -1
- package/dist/components/calcite-list-item-group/customElement.js +1 -1
- package/dist/components/calcite-meter/customElement.d.ts +1 -3
- package/dist/components/calcite-pagination/customElement.js +3 -3
- package/dist/components/calcite-panel/customElement.d.ts +4 -6
- package/dist/components/calcite-panel/customElement.js +1 -1
- package/dist/components/calcite-popover/customElement.d.ts +2 -4
- package/dist/components/calcite-radio-button/customElement.d.ts +1 -5
- package/dist/components/calcite-rating/customElement.d.ts +1 -5
- package/dist/components/calcite-rating/customElement.js +1 -1
- package/dist/components/calcite-segmented-control/customElement.d.ts +1 -5
- package/dist/components/calcite-select/customElement.d.ts +1 -5
- package/dist/components/calcite-sheet/customElement.d.ts +1 -3
- package/dist/components/calcite-slider/customElement.d.ts +13 -17
- package/dist/components/calcite-slider/customElement.js +19 -20
- package/dist/components/calcite-sort-handle/customElement.d.ts +2 -4
- package/dist/components/calcite-split-button/customElement.d.ts +12 -14
- package/dist/components/calcite-split-button/customElement.js +1 -1
- package/dist/components/calcite-stack/customElement.js +1 -1
- package/dist/components/calcite-stepper/customElement.d.ts +1 -1
- package/dist/components/calcite-stepper/customElement.js +10 -10
- package/dist/components/calcite-stepper-item/customElement.d.ts +3 -3
- package/dist/components/calcite-stepper-item/customElement.js +8 -24
- package/dist/components/calcite-swatch/customElement.d.ts +1 -1
- package/dist/components/calcite-swatch/customElement.js +2 -2
- package/dist/components/calcite-swatch-group/customElement.js +8 -6
- package/dist/components/calcite-switch/customElement.d.ts +6 -10
- package/dist/components/calcite-tab-nav/customElement.js +64 -26
- package/dist/components/calcite-tab-title/customElement.js +4 -0
- package/dist/components/calcite-table-header/customElement.d.ts +1 -1
- package/dist/components/calcite-tabs/customElement.d.ts +6 -0
- package/dist/components/calcite-tabs/customElement.js +13 -7
- package/dist/components/calcite-text-area/customElement.d.ts +1 -5
- package/dist/components/calcite-tile/customElement.d.ts +1 -1
- package/dist/components/calcite-time-picker/customElement.js +4 -4
- package/dist/components/calcite-tooltip/customElement.d.ts +1 -3
- package/dist/controllers/useTime.d.ts +3 -0
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/translations.json +1 -1
- package/dist/docs/vscode.css-custom-data.json +1 -1
- package/dist/docs/vscode.html-custom-data.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/loader.js +3 -3
- package/dist/types/lumina.d.ts +2 -2
- package/dist/types/preact.d.ts +2 -2
- package/dist/types/react.d.ts +2 -2
- package/dist/types/stencil.d.ts +2 -2
- package/dist/utils/date.d.ts +2 -2
- package/package.json +13 -10
- package/dist/cdn/4DBDLDKL.js +0 -2
- package/dist/cdn/5BXJCRHG.js +0 -2
- package/dist/cdn/6I7CG5ZI.js +0 -2
- package/dist/cdn/6THNFXTV.js +0 -2
- package/dist/cdn/7LKWZYMO.js +0 -2
- package/dist/cdn/7RTTBZVL.js +0 -2
- package/dist/cdn/BXSBN734.js +0 -2
- package/dist/cdn/DCQW26QE.js +0 -2
- package/dist/cdn/DE6F4LEP.js +0 -2
- package/dist/cdn/DHXGSMMN.js +0 -2
- package/dist/cdn/DV6Z2ZUP.js +0 -2
- package/dist/cdn/EAMIHL5M.js +0 -2
- package/dist/cdn/FGBYK22Q.js +0 -2
- package/dist/cdn/GEQANJCK.js +0 -2
- package/dist/cdn/HPG25RGF.js +0 -20
- package/dist/cdn/IQC2I5QX.js +0 -2
- package/dist/cdn/JAMAODSH.js +0 -2
- package/dist/cdn/JLRS6GUS.js +0 -2
- package/dist/cdn/JWZRDSEQ.js +0 -2
- package/dist/cdn/LKEGNPWV.js +0 -2
- package/dist/cdn/NSFNE7JF.js +0 -2
- package/dist/cdn/OWVDY7XZ.js +0 -2
- package/dist/cdn/P7VFZYNM.js +0 -2
- package/dist/cdn/POCA3O3T.js +0 -2
- package/dist/cdn/RDJ3NPD2.js +0 -2
- package/dist/cdn/RJJY3IYM.js +0 -2
- package/dist/cdn/S2ACIYIJ.js +0 -2
- package/dist/cdn/SKBNA7MO.js +0 -2
- package/dist/cdn/SYWS7CRW.js +0 -2
- package/dist/cdn/T2B7YQBZ.js +0 -2
- package/dist/cdn/U2RL2HER.js +0 -2
- package/dist/cdn/UYY6Z6VK.js +0 -2
- package/dist/cdn/VWJDFV4M.js +0 -2
- package/dist/cdn/WBKHM7GQ.js +0 -2
- package/dist/cdn/WJ2DBVDY.js +0 -2
- package/dist/cdn/WWXFCBIC.js +0 -2
- package/dist/cdn/XRQ6ALBW.js +0 -2
- package/dist/cdn/ZALKF7AK.js +0 -2
- package/dist/cdn/ZOVBFLHG.js +0 -2
- /package/dist/cdn/{XJY76HZ5.js → 2QCI6TGY.js} +0 -0
- /package/dist/cdn/{O2A6CQZA.js → BLWTCPBG.js} +0 -0
- /package/dist/cdn/{5OPFL4DZ.js → KWIC32XQ.js} +0 -0
- /package/dist/cdn/{SG5FNFQO.js → Q24FQVQ4.js} +0 -0
- /package/dist/cdn/{DE7OTXX2.js → QBJZUEM2.js} +0 -0
|
@@ -27,8 +27,9 @@ import { u as useCancelable } from "../../chunks/useCancelable.js";
|
|
|
27
27
|
import { u as useInteractive } from "../../chunks/useInteractive.js";
|
|
28
28
|
import { u as useTopLayer } from "../../chunks/useTopLayer.js";
|
|
29
29
|
import { u as useForm } from "../../chunks/useForm.js";
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
30
|
+
import { i as isChip } from "../../chunks/resources6.js";
|
|
31
|
+
import { I as IDS, C as CSS, a as ComboboxItemSelector, b as ComboboxItemGroupSelector, c as ICONS } from "../../chunks/resources7.js";
|
|
32
|
+
import { h as hasActiveChildren, i as isSingleLike, o as orderValuesByPrevious, a as orderByPrevious, g as getLabel, b as getItemAncestors, c as getItemChildren } from "../../chunks/utils2.js";
|
|
32
33
|
const styles = css`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:block}:host([scale=s]){font-size:var(--calcite-font-size-relative-sm);--calcite-internal-combobox-spacing-unit-l: .5rem;--calcite-internal-combobox-spacing-unit-s: .25rem;--calcite-internal-combobox-padding-inline-end: var(--calcite-space-2xs);--calcite-internal-combobox-no-matches-spacing-unit-s: .25rem;--calcite-combobox-input-height: 1rem;--calcite-internal-combobox-input-margin-block: calc(.25rem - 1px) ;--calcite-internal-close-size: 1rem}:host([scale=m]){font-size:var(--calcite-font-size-relative-base);--calcite-internal-combobox-spacing-unit-l: .75rem;--calcite-internal-combobox-spacing-unit-s: .5rem;--calcite-internal-combobox-padding-inline-end: var(--calcite-space-sm);--calcite-internal-combobox-no-matches-spacing-unit-s: .375rem;--calcite-combobox-input-height: 1rem;--calcite-internal-combobox-input-margin-block: calc(.5rem - 1px) ;--calcite-internal-close-size: 1.5rem}:host([scale=l]){font-size:var(--calcite-font-size-relative-md);--calcite-internal-combobox-spacing-unit-l: 1rem;--calcite-internal-combobox-spacing-unit-s: .75rem;--calcite-internal-combobox-padding-inline-end: var(--calcite-space-sm-plus);--calcite-internal-combobox-no-matches-spacing-unit-s: var(--calcite-space-sm-plus);--calcite-combobox-input-height: 1.5rem;--calcite-internal-combobox-input-margin-block: calc(var(--calcite-space-sm-plus) - 1px);--calcite-internal-close-size: 2rem}.wrapper{display:flex;border-width:1px;border-style:solid;outline-color:transparent;padding-block:calc(var(--calcite-internal-combobox-spacing-unit-s) / 4);padding-inline:var(--calcite-internal-combobox-spacing-unit-l) var(--calcite-internal-combobox-padding-inline-end);background-color:var(--calcite-combobox-input-background-color, var(--calcite-color-foreground-1));color:var(--calcite-combobox-input-text-color, var(--calcite-color-text-1));border-color:var(--calcite-combobox-input-border-color, var(--calcite-color-border-input))}.wrapper:hover .icon{color:var(--calcite-combobox-icon-color-hover, var(--calcite-color-text-1))}:host(:focus-within) .wrapper,.wrapper--active{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host([read-only]) .wrapper{background-color:var(--calcite-color-background)}:host([read-only]) .label{font-weight:var(--calcite-font-weight-medium)}:host([status=invalid]) .wrapper{border-color:var(--calcite-color-status-danger)}:host([status=invalid]:focus-within) .wrapper{outline:var(--calcite-border-width-md) solid var(--calcite-color-status-danger);outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.wrapper--single{padding-block:0;padding-inline:var(--calcite-internal-combobox-spacing-unit-l) var(--calcite-internal-combobox-padding-inline-end);cursor:pointer;flex-wrap:nowrap}.grid-input{position:relative;display:flex;flex-grow:1;flex-wrap:wrap;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;gap:var(--calcite-internal-combobox-spacing-unit-s);margin-inline-end:var(--calcite-internal-combobox-spacing-unit-s)}.grid-input.selection-display--fit,.grid-input.selection-display--single{flex-wrap:nowrap;overflow:hidden}.input{flex-grow:1;appearance:none;overflow:hidden;text-overflow:ellipsis;border-style:none;background-color:transparent;padding:0;font-family:inherit;color:var(--calcite-color-text-1);font-size:inherit;block-size:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height);inline-size:100%;margin-block-end:var(--calcite-internal-combobox-spacing-unit-s);min-inline-size:4.8125rem}.input:focus{outline:2px solid transparent;outline-offset:2px}.input:placeholder-shown{text-overflow:ellipsis}.input--single{padding:0;margin-block:var(--calcite-internal-combobox-input-margin-block)}.wrapper--active .input-single{cursor:text}.input--hidden{pointer-events:none;width:0px;min-width:0px;opacity:0}.input--icon{padding-block:0;padding-inline:var(--calcite-internal-combobox-spacing-unit-l)}.placeholder-icon{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3))}.input-wrap{display:flex;flex-grow:1;align-items:center}.input-wrap--single{flex:1 1 0%;overflow:hidden}.label{pointer-events:none;max-width:100%;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;font-weight:var(--calcite-font-weight-normal);block-size:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height)}.label--icon{padding-inline:var(--calcite-internal-combobox-spacing-unit-l)}.icon-end,.icon-start{display:flex;cursor:pointer;align-items:center}.icon-end{flex:none}.icon-end .icon{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3))}.floating-ui-container{inline-size:max-content;display:none;max-inline-size:100vw;max-block-size:100vh;inset-block-start:0;left:0;z-index:var(--calcite-floating-ui-z-index)}@starting-style{.floating-ui-container{opacity:0;inset-block-start:0;left:0}}:host([top-layer-disabled]) .floating-ui-container{--calcite-floating-ui-z-index: var(--calcite-z-index-dropdown)}.floating-ui-container[popover]{padding:0;margin:0;border:none;background-color:transparent;overflow:visible;display:none}.floating-ui-container:popover-open{display:block}.floating-ui-container .calcite-floating-ui-anim{position:relative;transition-duration:var(--calcite-floating-ui-transition);transition-property:inset-block-start,left,opacity,display;transition-behavior:allow-discrete;opacity:0;box-shadow:0 0 16px #00000029;z-index:var(--calcite-z-index);border-radius:.25rem}.floating-ui-container[data-placement^=bottom] .calcite-floating-ui-anim{inset-block-start:-5px}.floating-ui-container[data-placement^=top] .calcite-floating-ui-anim{inset-block-start:5px}.floating-ui-container[data-placement^=left] .calcite-floating-ui-anim{left:5px}.floating-ui-container[data-placement^=right] .calcite-floating-ui-anim{left:-5px}.floating-ui-container[data-placement] .calcite-floating-ui-anim--active{opacity:1;inset-block-start:0;left:0}@starting-style{.floating-ui-container[data-placement] .calcite-floating-ui-anim--active{opacity:0}}.floating-ui-container .calcite-floating-ui-anim{box-shadow:var(--calcite-shadow-md)}@media(forced-colors:active){.wrapper,.floating-ui-container{border:1px solid canvasText}}.screen-readers-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.list-container{max-height:45vh;overflow-y:auto;inline-size:var(--calcite-dropdown-width, 100%);background-color:var(--calcite-combobox-background-color, var(--calcite-color-foreground-1))}.list{margin:0;display:block;padding:0;line-height:var(--calcite-font-line-height-relative-snug)}.list--hide{height:0px;overflow:hidden}calcite-chip{--calcite-animation-timing: 0}.chip{margin-block:calc(var(--calcite-internal-combobox-spacing-unit-s) / 4);max-inline-size:100%}.chip--invisible{visibility:hidden;position:absolute}.item{display:block}.select-all{background-color:var(--calcite-combobox-item-background-color-active, var(--calcite-color-foreground-1));border-block-end-color:var(--calcite-combobox-divider-color, var(--calcite-combobox-item-border-color, var(--calcite-color-border-3)));border-block-end-style:solid;border-block-end-width:var(--calcite-border-width-sm);inset-block-start:0;position:sticky;z-index:var(--calcite-z-index-sticky)}.no-matches{padding-block:var(--calcite-internal-combobox-no-matches-spacing-unit-s);padding-inline:var(--calcite-internal-combobox-spacing-unit-l);color:var(--calcite-combobox-input-text-color, var(--calcite-color-text-1));background:var(--calcite-combobox-background-color, var(--calcite-color-foreground-1));cursor:pointer}.no-matches-placeholder{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3));cursor:default}.disabled{opacity:.5}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.clear-button--container{display:flex;cursor:pointer;align-items:center}.clear-button--container:hover calcite-action{--calcite-action-background-color: var(--calcite-clear-button-background-color-hover, var(--calcite-color-foreground-3));--calcite-action-text-color: var(--calcite-clear-button-icon-color-hover, var(--calcite-color-text-1))}.clear-button--container:active calcite-action{--calcite-action-background-color: var(--calcite-clear-button-background-color-press, var(--calcite-color-border-2));--calcite-action-text-color: var(--calcite-clear-button-icon-color-press, var(--calcite-color-text-1))}.clear-button--container calcite-action{--calcite-internal-action-height: 100%;--calcite-internal-action-padding-inline: var(--calcite-spacing-none);--calcite-internal-action-padding-block: var(--calcite-spacing-none);--calcite-action-background-color: var(--calcite-clear-button-background-color, var(--calcite-color-foreground-2));--calcite-action-text-color: var(--calcite-clear-button-icon-color)}.clear-button--container calcite-action:hover{--calcite-action-background-color-hover: var(--calcite-clear-button-background-color-hover, var(--calcite-color-foreground-3));--calcite-action-text-color-press: var(--calcite-clear-button-icon-color-hover)}.clear-button--container calcite-action:active{--calcite-action-background-color-press: var(--calcite-clear-button-background-color-press, var(--calcite-color-border-2));--calcite-action-text-color-press: var(--calcite-clear-button-icon-color-press)}:host([scale=s]) .clear-button--container{padding:var(--calcite-spacing-xxs)}:host([scale=m]) .clear-button--container{padding:var(--calcite-spacing-xxs);padding-inline-end:var(--calcite-space-sm)}:host([scale=l]) .clear-button--container{padding-inline-end:var(--calcite-spacing-sm-plus)}.validation-container{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}:host([scale=m]) .validation-container,:host([scale=l]) .validation-container{padding-block-start:.5rem}:host([scale=s]) .validation-container{padding-block-start:.25rem}::slotted(input[slot=hidden-form-input]){margin:0!important;opacity:0!important;outline:none!important;padding:0!important;position:absolute!important;inset:0!important;transform:none!important;-webkit-appearance:none!important;z-index:-1!important}:host([hidden]){display:none}[hidden]{display:none}.text-match{background-color:transparent;color:inherit;font-weight:var(--calcite-font-weight-bold)}.internal-label-alignment--center{align-items:center}.internal-label-alignment--end{align-items:end}.internal-label--container{display:flex;justify-content:space-between;color:var(--calcite-color-text-1)}.internal-label-required--indicator{font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-status-danger);padding-inline:var(--calcite-spacing-base)}.internal-label-required--indicator:hover{cursor:help}.internal-label--text{line-height:1}:host([scale=s]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-xxs)}:host([scale=s]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label--text{font-size:var(--calcite-font-size--2)}:host([scale=m]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label--text{font-size:var(--calcite-font-size--1)}:host([scale=l]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=l]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-md)}:host([scale=l]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-md)}:host([scale=l]) .internal-label--text{font-size:var(--calcite-font-size-0)}::placeholder{font-weight:var(--calcite-font-weight-normal);color:var(--calcite-input-placeholder-text-color, var(--calcite-color-text-3))}`;
|
|
33
34
|
class Combobox extends LitElement {
|
|
34
35
|
constructor() {
|
|
@@ -39,6 +40,7 @@ class Combobox extends LitElement {
|
|
|
39
40
|
})(this);
|
|
40
41
|
this.selectAllComboboxItemRef = createRef();
|
|
41
42
|
this.allSelectedIndicatorChipRef = createRef();
|
|
43
|
+
this.data = [];
|
|
42
44
|
this.cancelable = useCancelable()(this);
|
|
43
45
|
this.filterItems = (() => {
|
|
44
46
|
const find = (item, filteredData) => item && filteredData.some(({ el }) => item === el);
|
|
@@ -62,7 +64,7 @@ class Combobox extends LitElement {
|
|
|
62
64
|
}
|
|
63
65
|
});
|
|
64
66
|
this.noMatchesFound = this.filteredItems.length === 0 && !!this.filterText;
|
|
65
|
-
this.filterTextMatchPattern = this.filterText
|
|
67
|
+
this.filterTextMatchPattern = this.filterText ? new RegExp(`(${escapeRegExp(this.filterText)})`, "i") : void 0;
|
|
66
68
|
this.keyboardNavItems.forEach((item) => {
|
|
67
69
|
item.filterTextMatchPattern = this.filterTextMatchPattern;
|
|
68
70
|
});
|
|
@@ -77,37 +79,44 @@ class Combobox extends LitElement {
|
|
|
77
79
|
this._filterText = "";
|
|
78
80
|
this.getSelectedItems = () => {
|
|
79
81
|
if (!this.isMulti()) {
|
|
80
|
-
const match = this.
|
|
82
|
+
const match = this.allItems.find(({ selected }) => selected);
|
|
81
83
|
return match ? [match] : [];
|
|
82
84
|
}
|
|
83
|
-
return this.
|
|
84
|
-
const aIdx = this.selectedItems.indexOf(a);
|
|
85
|
-
const bIdx = this.selectedItems.indexOf(b);
|
|
86
|
-
if (aIdx > -1 && bIdx > -1) {
|
|
87
|
-
return aIdx - bIdx;
|
|
88
|
-
}
|
|
89
|
-
return bIdx - aIdx;
|
|
90
|
-
});
|
|
85
|
+
return this.allItems.filter((item) => item.selected && (this.selectionMode !== "ancestors" || !hasActiveChildren(item)));
|
|
91
86
|
};
|
|
87
|
+
this.groupData = [];
|
|
92
88
|
this.groupItems = [];
|
|
93
89
|
this.guid = guid();
|
|
94
90
|
this.ignoreSelectedEventsFlag = false;
|
|
95
91
|
this.internalValueChangeFlag = false;
|
|
92
|
+
this.previousAllSelected = false;
|
|
93
|
+
this.refreshingSelectionDisplay = false;
|
|
96
94
|
this.mutationObserver = createObserver("mutation", () => this.updateItems());
|
|
97
95
|
this.onLabelClick = () => {
|
|
98
96
|
this.setFocus();
|
|
99
97
|
};
|
|
100
98
|
this.transitionProp = "opacity";
|
|
101
|
-
this.resizeObserver =
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
99
|
+
this.resizeObserver = (() => {
|
|
100
|
+
let resizeWorkQueued = false;
|
|
101
|
+
return createObserver("resize", () => {
|
|
102
|
+
if (resizeWorkQueued) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
resizeWorkQueued = true;
|
|
106
|
+
requestAnimationFrame(() => {
|
|
107
|
+
resizeWorkQueued = false;
|
|
108
|
+
this.setMaxScrollerHeight();
|
|
109
|
+
this.refreshSelectionDisplay();
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
})();
|
|
105
113
|
this.selectedIndicatorChipRef = createRef();
|
|
114
|
+
this.selectedChipCountRef = createRef();
|
|
106
115
|
this.clearButtonRef = createRef();
|
|
107
116
|
this._selectedItems = [];
|
|
108
117
|
this.textInputRef = createRef();
|
|
109
|
-
this._value =
|
|
110
|
-
this.messages = useT9n();
|
|
118
|
+
this._value = "";
|
|
119
|
+
this.messages = useT9n({ blocking: true });
|
|
111
120
|
this.focusSetter = useSetFocus()(this);
|
|
112
121
|
this.customChipAddHandler = () => {
|
|
113
122
|
this.addCustomChip(this.filterText, true);
|
|
@@ -120,10 +129,13 @@ class Combobox extends LitElement {
|
|
|
120
129
|
this.activeDescendant = "";
|
|
121
130
|
this.activeItemIndex = -1;
|
|
122
131
|
this.compactSelectionDisplay = false;
|
|
132
|
+
this.deferFitChipCountRender = false;
|
|
123
133
|
this.selectedHiddenChipsCount = 0;
|
|
124
134
|
this.selectedVisibleChipsCount = 0;
|
|
135
|
+
this.fitUsingCompactCountLabel = false;
|
|
125
136
|
this.allItems = [];
|
|
126
137
|
this.items = [];
|
|
138
|
+
this.noMatchesFound = false;
|
|
127
139
|
this.clearDisabled = false;
|
|
128
140
|
this.disabled = false;
|
|
129
141
|
this.maxItems = 0;
|
|
@@ -153,7 +165,7 @@ class Combobox extends LitElement {
|
|
|
153
165
|
this.listen("click", this.comboboxFocusHandler);
|
|
154
166
|
}
|
|
155
167
|
static {
|
|
156
|
-
this.properties = { activeChipIndex: [16, {}, { state: true }], activeDescendant: [16, {}, { state: true }], activeItemIndex: [16, {}, { state: true }], compactSelectionDisplay: [16, {}, { state: true }], selectedHiddenChipsCount: [16, {}, { state: true }], selectedVisibleChipsCount: [16, {}, { state: true }], allItems: [16, {}, { state: true }], items: [16, {}, { state: true }], noMatchesFound: [16, {}, { state: true }], allowCustomValues: [7, {}, { reflect: true, type: Boolean }], clearDisabled: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], filterText: [3, {}, { reflect: true }], filterProps: [0, {}, { attribute: false }], filteredItems: [32, {}, { attribute: false, readOnly: true }], flipPlacements: [0, {}, { attribute: false }], form: [3, {}, { reflect: true }], label: 1, labelText: 1, maxItems: [11, {}, { reflect: true, type: Number }], messageOverrides: [0, {}, { attribute: false }], name: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], placeholder: 1, placeholderIcon: [3, { type: String }, { reflect: true }], placeholderIconFlipRtl: [7, {}, { reflect: true, type: Boolean }], placement: [3, {}, { reflect: true }], readOnly: [7, {}, { reflect: true, type: Boolean }], required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], selectAllEnabled: [7, {}, { reflect: true, type: Boolean }], selectedItems: [0, {}, { attribute: false }], selectionDisplay: [3, {}, { reflect: true }], selectionAppearance: [3, {}, { reflect: true }], selectionMode: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], validationIcon: [3, { converter: stringOrBoolean, type: String }, { reflect: true }], validationMessage: 1, validity: [32, {}, { readOnly: true, attribute: false }], value: 1 };
|
|
168
|
+
this.properties = { activeChipIndex: [16, {}, { state: true }], activeDescendant: [16, {}, { state: true }], activeItemIndex: [16, {}, { state: true }], compactSelectionDisplay: [16, {}, { state: true }], deferFitChipCountRender: [16, {}, { state: true }], selectedHiddenChipsCount: [16, {}, { state: true }], selectedVisibleChipsCount: [16, {}, { state: true }], fitUsingCompactCountLabel: [16, {}, { state: true }], allItems: [16, {}, { state: true }], items: [16, {}, { state: true }], noMatchesFound: [16, {}, { state: true }], allowCustomValues: [7, {}, { reflect: true, type: Boolean }], clearDisabled: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], filterText: [3, {}, { reflect: true }], filterProps: [0, {}, { attribute: false }], filteredItems: [32, {}, { attribute: false, readOnly: true }], flipPlacements: [0, {}, { attribute: false }], form: [3, {}, { reflect: true }], label: 1, labelText: 1, maxItems: [11, {}, { reflect: true, type: Number }], messageOverrides: [0, {}, { attribute: false }], name: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], placeholder: 1, placeholderIcon: [3, { type: String }, { reflect: true }], placeholderIconFlipRtl: [7, {}, { reflect: true, type: Boolean }], placement: [3, {}, { reflect: true }], readOnly: [7, {}, { reflect: true, type: Boolean }], required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], selectAllEnabled: [7, {}, { reflect: true, type: Boolean }], selectedItems: [0, {}, { attribute: false }], selectionDisplay: [3, {}, { reflect: true }], selectionAppearance: [3, {}, { reflect: true }], selectionMode: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], validationIcon: [3, { converter: stringOrBoolean, type: String }, { reflect: true }], validationMessage: 1, validity: [32, {}, { readOnly: true, attribute: false }], value: 1 };
|
|
157
169
|
}
|
|
158
170
|
static {
|
|
159
171
|
this.formAssociated = true;
|
|
@@ -178,9 +190,6 @@ class Combobox extends LitElement {
|
|
|
178
190
|
const enabledItems = this.allItems.filter((item) => !item.disabled);
|
|
179
191
|
return enabledItems.length > 0 && enabledItems.every((item) => item.selected);
|
|
180
192
|
}
|
|
181
|
-
get hasDisabledItems() {
|
|
182
|
-
return this.allItems.some((item) => item.disabled);
|
|
183
|
-
}
|
|
184
193
|
get hasDisabledSelected() {
|
|
185
194
|
return this.allItems.some((item) => item.disabled && item.selected);
|
|
186
195
|
}
|
|
@@ -325,11 +334,33 @@ class Combobox extends LitElement {
|
|
|
325
334
|
this.reposition(true);
|
|
326
335
|
}
|
|
327
336
|
selectedItemsHandler() {
|
|
337
|
+
const wasAllSelected = this.previousAllSelected;
|
|
338
|
+
const isAllSelected = this.allSelected;
|
|
339
|
+
this.previousAllSelected = isAllSelected;
|
|
328
340
|
this.internalValueChangeFlag = true;
|
|
329
341
|
this.value = this.getValue();
|
|
330
342
|
this.internalValueChangeFlag = false;
|
|
331
343
|
if (this.selectionDisplay === "fit" && this.isMulti()) {
|
|
332
|
-
|
|
344
|
+
const transitioningFromAllSelected = wasAllSelected && !isAllSelected;
|
|
345
|
+
if (wasAllSelected && !isAllSelected) {
|
|
346
|
+
this.selectedHiddenChipsCount = 0;
|
|
347
|
+
this.selectedItems.forEach((item) => {
|
|
348
|
+
const chipEl = this.referenceEl?.querySelector(`#${IDS.chip(item.guid)}`);
|
|
349
|
+
if (chipEl) {
|
|
350
|
+
this.showChip(chipEl);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
this.updateComplete.then(async () => {
|
|
355
|
+
if (transitioningFromAllSelected) {
|
|
356
|
+
await this.updateComplete;
|
|
357
|
+
}
|
|
358
|
+
await this.refreshSelectionDisplay();
|
|
359
|
+
if (this.fitFollowUpRefreshPromise) {
|
|
360
|
+
await this.fitFollowUpRefreshPromise;
|
|
361
|
+
}
|
|
362
|
+
this.deferFitChipCountRender = false;
|
|
363
|
+
});
|
|
333
364
|
}
|
|
334
365
|
}
|
|
335
366
|
async documentClickHandler(event) {
|
|
@@ -348,10 +379,11 @@ class Combobox extends LitElement {
|
|
|
348
379
|
this.open = false;
|
|
349
380
|
}
|
|
350
381
|
handleSelectAll(isSelectAllTarget) {
|
|
351
|
-
if (isSelectAllTarget) {
|
|
352
|
-
|
|
382
|
+
if (!isSelectAllTarget) {
|
|
383
|
+
return;
|
|
353
384
|
}
|
|
354
|
-
|
|
385
|
+
this.toggleSelectAll();
|
|
386
|
+
if (this.selectionDisplay !== "fit" && this.allSelected) {
|
|
355
387
|
this.selectedItems.forEach((item) => {
|
|
356
388
|
const chipEl = this.referenceEl.querySelector(`#${IDS.chip(item.guid)}`);
|
|
357
389
|
if (chipEl) {
|
|
@@ -360,6 +392,9 @@ class Combobox extends LitElement {
|
|
|
360
392
|
});
|
|
361
393
|
}
|
|
362
394
|
}
|
|
395
|
+
updateSelectedItems() {
|
|
396
|
+
this.selectedItems = this.getOrderedSelectedItems(this.getSelectedItems());
|
|
397
|
+
}
|
|
363
398
|
calciteComboboxItemChangeHandler(event) {
|
|
364
399
|
if (this.ignoreSelectedEventsFlag) {
|
|
365
400
|
return;
|
|
@@ -372,7 +407,6 @@ class Combobox extends LitElement {
|
|
|
372
407
|
const newIndex = this.keyboardNavItems.indexOf(isSelectAllTarget ? this.selectAllComboboxItemRef.value : target);
|
|
373
408
|
this.updateActiveItemIndex(newIndex);
|
|
374
409
|
this.toggleSelection(target, target.selected);
|
|
375
|
-
this.selectedItems = this.getSelectedItems();
|
|
376
410
|
}
|
|
377
411
|
calciteInternalComboboxItemChangeHandler(event) {
|
|
378
412
|
event.stopPropagation();
|
|
@@ -381,11 +415,14 @@ class Combobox extends LitElement {
|
|
|
381
415
|
}
|
|
382
416
|
}
|
|
383
417
|
clearValue() {
|
|
384
|
-
this.
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
418
|
+
const enabledSelectedItems = this.items.filter((item) => item.selected && !item.disabled);
|
|
419
|
+
if (enabledSelectedItems.length) {
|
|
420
|
+
this.ignoreSelectedEventsFlag = true;
|
|
421
|
+
enabledSelectedItems.forEach((el) => el.selected = false);
|
|
422
|
+
this.ignoreSelectedEventsFlag = false;
|
|
423
|
+
this.updateSelectedItems();
|
|
424
|
+
this.emitComboboxChange();
|
|
425
|
+
}
|
|
389
426
|
this.open = false;
|
|
390
427
|
this.updateActiveItemIndex(-1);
|
|
391
428
|
this.resetText();
|
|
@@ -400,12 +437,22 @@ class Combobox extends LitElement {
|
|
|
400
437
|
}
|
|
401
438
|
setFilteredPlacements() {
|
|
402
439
|
const { el, flipPlacements } = this;
|
|
403
|
-
this.filteredFlipPlacements = flipPlacements ? filterValidFlipPlacements(flipPlacements, el) :
|
|
440
|
+
this.filteredFlipPlacements = flipPlacements ? filterValidFlipPlacements(flipPlacements, el) : void 0;
|
|
404
441
|
}
|
|
405
442
|
getValue() {
|
|
406
|
-
const items = this.selectedItems.map((item) => item.value?.toString());
|
|
443
|
+
const items = this.getOrderedSelectedValues(this.selectedItems.map((item) => item.value?.toString()));
|
|
407
444
|
return items.length ? items.length > 1 ? items : items[0] : "";
|
|
408
445
|
}
|
|
446
|
+
getOrderedSelectedValues(selectedValues) {
|
|
447
|
+
if (!this.isMulti()) {
|
|
448
|
+
return selectedValues;
|
|
449
|
+
}
|
|
450
|
+
const previousValues = Array.isArray(this.value) ? this.value : this.value ? [this.value] : [];
|
|
451
|
+
return orderValuesByPrevious(selectedValues, previousValues);
|
|
452
|
+
}
|
|
453
|
+
getOrderedSelectedItems(selectedItems) {
|
|
454
|
+
return this.isMulti() ? orderByPrevious(selectedItems, this.selectedItems) : selectedItems;
|
|
455
|
+
}
|
|
409
456
|
comboboxInViewport() {
|
|
410
457
|
const bounding = this.el.getBoundingClientRect();
|
|
411
458
|
return bounding.top >= 0 && bounding.left >= 0 && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight);
|
|
@@ -418,9 +465,16 @@ class Combobox extends LitElement {
|
|
|
418
465
|
}
|
|
419
466
|
item.selected = toggledValue;
|
|
420
467
|
});
|
|
421
|
-
this.
|
|
468
|
+
this.updateSelectedItems();
|
|
422
469
|
this.emitComboboxChange();
|
|
423
470
|
}
|
|
471
|
+
hasHiddenSelectedFitChips() {
|
|
472
|
+
if (this.selectionDisplay !== "fit" || !this.isMulti()) {
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
475
|
+
const hiddenCountChip = this.selectedChipCountRef.value;
|
|
476
|
+
return !!hiddenCountChip && !hiddenCountChip.classList.contains(CSS.chipInvisible);
|
|
477
|
+
}
|
|
424
478
|
keyDownHandler(event) {
|
|
425
479
|
if (this.readOnly) {
|
|
426
480
|
return;
|
|
@@ -443,7 +497,7 @@ class Combobox extends LitElement {
|
|
|
443
497
|
}
|
|
444
498
|
break;
|
|
445
499
|
case "ArrowLeft":
|
|
446
|
-
if (this.activeChipIndex !== -1 || this.textInputRef.value
|
|
500
|
+
if (this.activeChipIndex !== -1 || this.textInputRef.value?.selectionStart === 0) {
|
|
447
501
|
this.previousChip();
|
|
448
502
|
event.preventDefault();
|
|
449
503
|
}
|
|
@@ -483,7 +537,7 @@ class Combobox extends LitElement {
|
|
|
483
537
|
}
|
|
484
538
|
break;
|
|
485
539
|
case " ":
|
|
486
|
-
if (!this.textInputRef.value
|
|
540
|
+
if (!this.textInputRef.value?.value && !event.defaultPrevented) {
|
|
487
541
|
if (!this.open && this.keyboardNavItems.length) {
|
|
488
542
|
this.open = true;
|
|
489
543
|
this.ensureRecentSelectedItemIsActive();
|
|
@@ -520,7 +574,7 @@ class Combobox extends LitElement {
|
|
|
520
574
|
break;
|
|
521
575
|
}
|
|
522
576
|
if (!this.clearDisabled) {
|
|
523
|
-
if (this.textInputRef.value
|
|
577
|
+
if (this.textInputRef.value.value.length > 0) {
|
|
524
578
|
this.resetText();
|
|
525
579
|
event.preventDefault();
|
|
526
580
|
} else if (this.selectedItems.length > 0 && this.selectionMode !== "single-persist") {
|
|
@@ -547,13 +601,16 @@ class Combobox extends LitElement {
|
|
|
547
601
|
break;
|
|
548
602
|
case "Delete":
|
|
549
603
|
case "Backspace": {
|
|
550
|
-
const
|
|
604
|
+
const fitDeleteBlockedByOverflow = this.hasHiddenSelectedFitChips();
|
|
605
|
+
const overflowDeleteBlocked = fitDeleteBlockedByOverflow && this.activeChipIndex === -1;
|
|
606
|
+
const notDeletable = this.selectionDisplay === "single" || overflowDeleteBlocked;
|
|
551
607
|
if (notDeletable) {
|
|
552
608
|
return;
|
|
553
609
|
}
|
|
554
|
-
|
|
610
|
+
const deleteTargetChip = event.composedPath().find((node) => isChip(node));
|
|
611
|
+
if (this.activeChipIndex > -1 && deleteTargetChip) {
|
|
555
612
|
event.preventDefault();
|
|
556
|
-
this.removeActiveChip(
|
|
613
|
+
this.removeActiveChip(deleteTargetChip);
|
|
557
614
|
} else if (!this.filterText && this.isMulti()) {
|
|
558
615
|
event.preventDefault();
|
|
559
616
|
this.removeLastChip();
|
|
@@ -581,7 +638,7 @@ class Combobox extends LitElement {
|
|
|
581
638
|
}
|
|
582
639
|
async setMaxScrollerHeight() {
|
|
583
640
|
const { listContainerEl, open, referenceEl } = this;
|
|
584
|
-
if (!listContainerEl || !open) {
|
|
641
|
+
if (!listContainerEl || !open || !referenceEl) {
|
|
585
642
|
return;
|
|
586
643
|
}
|
|
587
644
|
const maxScrollerHeight = this.getMaxScrollerHeight();
|
|
@@ -601,12 +658,13 @@ class Combobox extends LitElement {
|
|
|
601
658
|
return;
|
|
602
659
|
}
|
|
603
660
|
const composedPath = event.composedPath();
|
|
604
|
-
if (composedPath.some((node) => node
|
|
661
|
+
if (composedPath.some((node) => isChip(node))) {
|
|
605
662
|
this.open = false;
|
|
606
663
|
event.preventDefault();
|
|
607
664
|
return;
|
|
608
665
|
}
|
|
609
|
-
|
|
666
|
+
const clearButton = this.clearButtonRef.value;
|
|
667
|
+
if (clearButton && composedPath.includes(clearButton)) {
|
|
610
668
|
this.clearValue();
|
|
611
669
|
event.preventDefault();
|
|
612
670
|
return;
|
|
@@ -630,35 +688,63 @@ class Combobox extends LitElement {
|
|
|
630
688
|
showChip(chipEl) {
|
|
631
689
|
chipEl.classList.remove(CSS.chipInvisible);
|
|
632
690
|
}
|
|
633
|
-
refreshChipDisplay({ chipEls, availableHorizontalChipElSpace, chipContainerElGap }) {
|
|
691
|
+
refreshChipDisplay({ chipEls, availableHorizontalChipElSpace, chipContainerElGap, hideSelectedChips }) {
|
|
692
|
+
const selectedChipEls = chipEls.filter((chipEl) => chipEl.selected);
|
|
693
|
+
const enabledSelectedChipEls = selectedChipEls.filter((chipEl) => !chipEl.disabled);
|
|
694
|
+
const disabledSelectedChipEls = selectedChipEls.filter((chipEl) => chipEl.disabled);
|
|
695
|
+
const getChipWidth = (chipEl) => {
|
|
696
|
+
const computedWidth = getElementWidth(chipEl);
|
|
697
|
+
const fallbackWidth = chipEl.getBoundingClientRect().width;
|
|
698
|
+
return Number.isFinite(computedWidth) && computedWidth > 0 ? computedWidth : fallbackWidth;
|
|
699
|
+
};
|
|
700
|
+
selectedChipEls.forEach((chipEl) => getChipWidth(chipEl));
|
|
634
701
|
chipEls.forEach((chipEl) => {
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
702
|
+
this.hideChip(chipEl);
|
|
703
|
+
});
|
|
704
|
+
if (hideSelectedChips) {
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
const renderFittingChips = (chips) => {
|
|
708
|
+
let visibleChipsCount = 0;
|
|
709
|
+
chips.forEach((chipEl) => {
|
|
710
|
+
const chipElWidth = getChipWidth(chipEl);
|
|
711
|
+
if (chipElWidth && chipElWidth <= availableHorizontalChipElSpace) {
|
|
640
712
|
availableHorizontalChipElSpace -= chipElWidth + chipContainerElGap;
|
|
641
713
|
this.showChip(chipEl);
|
|
642
|
-
|
|
714
|
+
visibleChipsCount++;
|
|
643
715
|
}
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
}
|
|
716
|
+
});
|
|
717
|
+
return visibleChipsCount;
|
|
718
|
+
};
|
|
719
|
+
const visibleEnabledChipsCount = renderFittingChips(enabledSelectedChipEls);
|
|
720
|
+
if (visibleEnabledChipsCount <= 1) {
|
|
721
|
+
renderFittingChips(disabledSelectedChipEls);
|
|
722
|
+
}
|
|
647
723
|
}
|
|
648
|
-
async refreshSelectionDisplay() {
|
|
649
|
-
this.
|
|
650
|
-
if (isSingleLike(this.selectionMode)) {
|
|
724
|
+
async refreshSelectionDisplay(followUpRefresh = true) {
|
|
725
|
+
if (this.refreshingSelectionDisplay) {
|
|
651
726
|
return;
|
|
652
727
|
}
|
|
653
|
-
|
|
728
|
+
this.refreshingSelectionDisplay = true;
|
|
729
|
+
await this.componentOnReady();
|
|
730
|
+
if (isSingleLike(this.selectionMode)) {
|
|
731
|
+
this.refreshingSelectionDisplay = false;
|
|
654
732
|
return;
|
|
655
733
|
}
|
|
656
734
|
const { allSelectedIndicatorChipRef, chipContainerEl, selectionDisplay, placeholder, selectedIndicatorChipRef, textInputRef } = this;
|
|
657
|
-
|
|
735
|
+
if (!textInputRef.value || !chipContainerEl) {
|
|
736
|
+
this.refreshingSelectionDisplay = false;
|
|
737
|
+
return;
|
|
738
|
+
}
|
|
739
|
+
const chipContainerElGap = parseInt(getComputedStyle(chipContainerEl).gap, 10);
|
|
658
740
|
const chipContainerElWidth = getElementWidth(chipContainerEl);
|
|
659
|
-
const { fontSize, fontFamily } = getComputedStyle(textInputRef.value);
|
|
660
|
-
const
|
|
661
|
-
const
|
|
741
|
+
const { fontSize, fontFamily, minInlineSize } = getComputedStyle(textInputRef.value);
|
|
742
|
+
const placeholderWidthMultiplier = 0.55;
|
|
743
|
+
const inputMinWidth = parseFloat(minInlineSize) || parseInt(calciteSize48, 10);
|
|
744
|
+
const measuredPlaceholderWidth = getTextWidth(placeholder, `${fontSize} ${fontFamily}`);
|
|
745
|
+
const placeholderWidth = measuredPlaceholderWidth > 0 ? measuredPlaceholderWidth : Math.max(inputMinWidth, Math.round((placeholder?.length || 0) * (parseFloat(fontSize) || parseInt(calciteSize48, 10)) * placeholderWidthMultiplier));
|
|
746
|
+
const fitInputWidth = Math.max(inputMinWidth, placeholderWidth);
|
|
747
|
+
const inputWidth = (selectionDisplay === "fit" ? fitInputWidth : placeholderWidth) + chipContainerElGap;
|
|
662
748
|
const allSelectedIndicatorChipElWidth = getElementWidth(allSelectedIndicatorChipRef.value);
|
|
663
749
|
const selectedIndicatorChipElWidth = getElementWidth(selectedIndicatorChipRef.value);
|
|
664
750
|
const largestSelectedIndicatorChipWidth = Math.max(allSelectedIndicatorChipElWidth, selectedIndicatorChipElWidth);
|
|
@@ -668,9 +754,9 @@ class Combobox extends LitElement {
|
|
|
668
754
|
inputWidth,
|
|
669
755
|
largestSelectedIndicatorChipWidth
|
|
670
756
|
});
|
|
671
|
-
if (
|
|
757
|
+
if (selectionDisplay !== "fit" && this.allSelected && this.selectAllEnabled) {
|
|
672
758
|
this.selectedItems.forEach((item) => {
|
|
673
|
-
const chipEl = this.referenceEl
|
|
759
|
+
const chipEl = this.referenceEl?.querySelector(`#${IDS.chip(item.guid)}`);
|
|
674
760
|
if (chipEl) {
|
|
675
761
|
this.hideChip(chipEl);
|
|
676
762
|
}
|
|
@@ -678,23 +764,71 @@ class Combobox extends LitElement {
|
|
|
678
764
|
}
|
|
679
765
|
if (this.indeterminate) {
|
|
680
766
|
this.selectedItems.forEach((item) => {
|
|
681
|
-
const chipEl = this.referenceEl
|
|
767
|
+
const chipEl = this.referenceEl?.querySelector(`#${IDS.chip(item.guid)}`);
|
|
682
768
|
if (chipEl) {
|
|
683
769
|
this.showChip(chipEl);
|
|
684
770
|
}
|
|
685
771
|
});
|
|
686
772
|
}
|
|
687
773
|
if (selectionDisplay === "fit") {
|
|
688
|
-
const chipEls = Array.from(this.
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
774
|
+
const chipEls = Array.from(this.renderRoot.querySelectorAll("calcite-chip")).filter((chipEl) => {
|
|
775
|
+
const chipValue = chipEl.value;
|
|
776
|
+
const hasValue = chipValue != null && `${chipValue}` !== "";
|
|
777
|
+
return chipEl.disabled || hasValue;
|
|
778
|
+
});
|
|
779
|
+
const { hiddenChipIndicatorWidth, hideSelectedChips, reservedPlaceholderInputWidth } = this.getFitCompactDisplayState({
|
|
780
|
+
chipContainerElGap,
|
|
781
|
+
chipContainerElWidth,
|
|
782
|
+
inputMinWidth,
|
|
783
|
+
placeholderWidth,
|
|
784
|
+
selectedIndicatorChipElWidth
|
|
785
|
+
});
|
|
786
|
+
this.fitUsingCompactCountLabel = hideSelectedChips;
|
|
787
|
+
const availableHorizontalChipElSpace = Math.round(chipContainerElWidth - (hiddenChipIndicatorWidth + chipContainerElGap + reservedPlaceholderInputWidth + chipContainerElGap));
|
|
788
|
+
this.refreshChipDisplay({
|
|
789
|
+
availableHorizontalChipElSpace,
|
|
790
|
+
chipContainerElGap,
|
|
791
|
+
chipEls,
|
|
792
|
+
hideSelectedChips
|
|
793
|
+
});
|
|
794
|
+
const previousHiddenChipsCount = this.selectedHiddenChipsCount;
|
|
795
|
+
this.syncChipVisibilityCounts(chipEls);
|
|
796
|
+
const didHiddenCountChange = previousHiddenChipsCount !== this.selectedHiddenChipsCount;
|
|
797
|
+
if (didHiddenCountChange && followUpRefresh) {
|
|
798
|
+
this.fitFollowUpRefreshPromise = this.updateComplete.then(() => this.refreshSelectionDisplay(false)).then(() => {
|
|
799
|
+
this.fitFollowUpRefreshPromise = void 0;
|
|
800
|
+
});
|
|
801
|
+
}
|
|
692
802
|
}
|
|
803
|
+
this.refreshingSelectionDisplay = false;
|
|
693
804
|
}
|
|
694
805
|
setFloatingEl(el) {
|
|
695
806
|
this.floatingEl = el;
|
|
696
807
|
connectFloatingUI(this);
|
|
697
808
|
}
|
|
809
|
+
shouldUseFitCompactDisplay({ chipContainerElGap, chipContainerElWidth, hiddenChipIndicatorWidth, inputMinWidth, placeholderWidth, reservedPlaceholderInputWidth }) {
|
|
810
|
+
const availableHorizontalChipElSpaceWithPlaceholder = Math.round(chipContainerElWidth - (hiddenChipIndicatorWidth + chipContainerElGap + reservedPlaceholderInputWidth + chipContainerElGap));
|
|
811
|
+
const placeholderIsReallyLong = placeholderWidth > inputMinWidth * 2;
|
|
812
|
+
return placeholderIsReallyLong && availableHorizontalChipElSpaceWithPlaceholder <= 0;
|
|
813
|
+
}
|
|
814
|
+
getFitCompactDisplayState({ chipContainerElGap, chipContainerElWidth, inputMinWidth, placeholderWidth, selectedIndicatorChipElWidth }) {
|
|
815
|
+
const selectedChipCountElWidth = getElementWidth(this.selectedChipCountRef.value);
|
|
816
|
+
const hiddenChipIndicatorWidth = this.deferFitChipCountRender || this.selectedHiddenChipsCount <= 0 ? 0 : selectedChipCountElWidth || selectedIndicatorChipElWidth;
|
|
817
|
+
const reservedPlaceholderInputWidth = Math.max(inputMinWidth, placeholderWidth);
|
|
818
|
+
const hideSelectedChips = this.shouldUseFitCompactDisplay({
|
|
819
|
+
chipContainerElGap,
|
|
820
|
+
chipContainerElWidth,
|
|
821
|
+
hiddenChipIndicatorWidth,
|
|
822
|
+
inputMinWidth,
|
|
823
|
+
placeholderWidth,
|
|
824
|
+
reservedPlaceholderInputWidth
|
|
825
|
+
});
|
|
826
|
+
return {
|
|
827
|
+
hiddenChipIndicatorWidth,
|
|
828
|
+
hideSelectedChips,
|
|
829
|
+
reservedPlaceholderInputWidth
|
|
830
|
+
};
|
|
831
|
+
}
|
|
698
832
|
setCompactSelectionDisplay({ chipContainerElGap, chipContainerElWidth, inputWidth, largestSelectedIndicatorChipWidth }) {
|
|
699
833
|
const newCompactBreakpoint = Math.round(largestSelectedIndicatorChipWidth + chipContainerElGap + inputWidth);
|
|
700
834
|
if (!this.maxCompactBreakpoint || this.maxCompactBreakpoint < newCompactBreakpoint) {
|
|
@@ -715,17 +849,21 @@ class Combobox extends LitElement {
|
|
|
715
849
|
this.referenceEl = el;
|
|
716
850
|
connectFloatingUI(this);
|
|
717
851
|
}
|
|
718
|
-
|
|
852
|
+
syncChipVisibilityCounts(chipEls) {
|
|
719
853
|
let newSelectedVisibleChipsCount = 0;
|
|
854
|
+
let selectedChipCount = 0;
|
|
720
855
|
chipEls.forEach((chipEl) => {
|
|
721
|
-
if (chipEl.selected
|
|
722
|
-
|
|
856
|
+
if (chipEl.selected) {
|
|
857
|
+
selectedChipCount++;
|
|
858
|
+
if (!chipEl.classList.contains(CSS.chipInvisible)) {
|
|
859
|
+
newSelectedVisibleChipsCount++;
|
|
860
|
+
}
|
|
723
861
|
}
|
|
724
862
|
});
|
|
725
863
|
if (newSelectedVisibleChipsCount !== this.selectedVisibleChipsCount) {
|
|
726
864
|
this.selectedVisibleChipsCount = newSelectedVisibleChipsCount;
|
|
727
865
|
}
|
|
728
|
-
const newSelectedHiddenChipsCount = Math.max(0,
|
|
866
|
+
const newSelectedHiddenChipsCount = Math.max(0, selectedChipCount - newSelectedVisibleChipsCount);
|
|
729
867
|
if (newSelectedHiddenChipsCount !== this.selectedHiddenChipsCount) {
|
|
730
868
|
this.selectedHiddenChipsCount = newSelectedHiddenChipsCount;
|
|
731
869
|
}
|
|
@@ -770,6 +908,9 @@ class Combobox extends LitElement {
|
|
|
770
908
|
if (!item || this.selectionMode === "single-persist" && item.selected && item.value === this.value && !value) {
|
|
771
909
|
return;
|
|
772
910
|
}
|
|
911
|
+
if (this.selectionDisplay === "fit" && this.isMulti()) {
|
|
912
|
+
this.deferFitChipCountRender = true;
|
|
913
|
+
}
|
|
773
914
|
if (this.isMulti()) {
|
|
774
915
|
this.handleMultiSelection(item, value);
|
|
775
916
|
} else {
|
|
@@ -779,7 +920,7 @@ class Combobox extends LitElement {
|
|
|
779
920
|
handleMultiSelection(item, value) {
|
|
780
921
|
item.selected = value;
|
|
781
922
|
this.updateAncestors(item);
|
|
782
|
-
this.
|
|
923
|
+
this.updateSelectedItems();
|
|
783
924
|
this.emitComboboxChange();
|
|
784
925
|
this.resetText();
|
|
785
926
|
this.filterItems("");
|
|
@@ -788,7 +929,7 @@ class Combobox extends LitElement {
|
|
|
788
929
|
this.ignoreSelectedEventsFlag = true;
|
|
789
930
|
this.items.forEach((el) => el.selected = el === item ? value : false);
|
|
790
931
|
this.ignoreSelectedEventsFlag = false;
|
|
791
|
-
this.
|
|
932
|
+
this.updateSelectedItems();
|
|
792
933
|
this.emitComboboxChange();
|
|
793
934
|
if (this.textInputRef.value) {
|
|
794
935
|
this.textInputRef.value.value = getLabel(item);
|
|
@@ -805,11 +946,14 @@ class Combobox extends LitElement {
|
|
|
805
946
|
const ancestors = getItemAncestors(item);
|
|
806
947
|
const children = getItemChildren(item);
|
|
807
948
|
if (item.selected) {
|
|
808
|
-
ancestors.forEach((el) => {
|
|
949
|
+
[...children, ...ancestors].forEach((el) => {
|
|
950
|
+
if (el.disabled) {
|
|
951
|
+
return;
|
|
952
|
+
}
|
|
809
953
|
el.selected = true;
|
|
810
954
|
});
|
|
811
955
|
} else {
|
|
812
|
-
children.forEach((el) => {
|
|
956
|
+
[...children].forEach((el) => {
|
|
813
957
|
if (el.disabled) {
|
|
814
958
|
return;
|
|
815
959
|
}
|
|
@@ -829,7 +973,8 @@ class Combobox extends LitElement {
|
|
|
829
973
|
this.data = this.getData();
|
|
830
974
|
this.groupData = this.getGroupData();
|
|
831
975
|
this.updateItemProps();
|
|
832
|
-
this.
|
|
976
|
+
this.updateSelectedItems();
|
|
977
|
+
this.previousAllSelected = this.allSelected;
|
|
833
978
|
}
|
|
834
979
|
updateItemProps() {
|
|
835
980
|
this.allItems.forEach((item) => {
|
|
@@ -903,13 +1048,17 @@ class Combobox extends LitElement {
|
|
|
903
1048
|
}
|
|
904
1049
|
removeActiveChip(chip) {
|
|
905
1050
|
const activeItem = this.selectedItems[this.activeChipIndex];
|
|
906
|
-
if (activeItem && `${IDS.chip(activeItem.guid)}` === chip.id) {
|
|
1051
|
+
if (activeItem && !activeItem.disabled && `${IDS.chip(activeItem.guid)}` === chip.id) {
|
|
907
1052
|
this.toggleSelection(activeItem, false);
|
|
908
1053
|
}
|
|
909
1054
|
this.setFocus();
|
|
910
1055
|
}
|
|
911
1056
|
removeLastChip() {
|
|
912
|
-
this.
|
|
1057
|
+
const lastEnabledSelectedItem = this.selectedItems.findLast((item) => !item.disabled);
|
|
1058
|
+
if (!lastEnabledSelectedItem) {
|
|
1059
|
+
return;
|
|
1060
|
+
}
|
|
1061
|
+
this.toggleSelection(lastEnabledSelectedItem, false);
|
|
913
1062
|
this.setFocus();
|
|
914
1063
|
}
|
|
915
1064
|
previousChip() {
|
|
@@ -933,7 +1082,7 @@ class Combobox extends LitElement {
|
|
|
933
1082
|
}
|
|
934
1083
|
focusChip() {
|
|
935
1084
|
const guid2 = this.selectedItems[this.activeChipIndex]?.guid;
|
|
936
|
-
const chip = guid2 ? this.referenceEl
|
|
1085
|
+
const chip = guid2 ? this.referenceEl?.querySelector(`#${IDS.chip(guid2)}`) : void 0;
|
|
937
1086
|
chip?.setFocus();
|
|
938
1087
|
}
|
|
939
1088
|
scrollToActiveOrSelectedItem(scrollToSelected = false) {
|
|
@@ -959,7 +1108,7 @@ class Combobox extends LitElement {
|
|
|
959
1108
|
}
|
|
960
1109
|
updateActiveItemIndex(index) {
|
|
961
1110
|
this.activeItemIndex = index;
|
|
962
|
-
let activeDescendant =
|
|
1111
|
+
let activeDescendant = "";
|
|
963
1112
|
this.keyboardNavItems.forEach((el, i) => {
|
|
964
1113
|
if (i === index) {
|
|
965
1114
|
el.active = true;
|
|
@@ -980,7 +1129,11 @@ class Combobox extends LitElement {
|
|
|
980
1129
|
if (this.disabled) {
|
|
981
1130
|
return;
|
|
982
1131
|
}
|
|
983
|
-
this.
|
|
1132
|
+
this.activeChipIndex = -1;
|
|
1133
|
+
this.textInputRef.value?.focus();
|
|
1134
|
+
if (this.open && this.selectionDisplay === "fit" && this.isMulti()) {
|
|
1135
|
+
void this.refreshSelectionDisplay();
|
|
1136
|
+
}
|
|
984
1137
|
}
|
|
985
1138
|
createScreenReaderItem({ ariaLabel, ariaSelected, id, textContent }) {
|
|
986
1139
|
return html`<li aria-label=${ariaLabel ?? nothing} aria-selected=${ariaSelected ?? nothing} id=${id ?? nothing} role=option tabindex=-1>${textContent}</li>`;
|
|
@@ -992,7 +1145,7 @@ class Combobox extends LitElement {
|
|
|
992
1145
|
}
|
|
993
1146
|
getDescriptionMessage() {
|
|
994
1147
|
const value = Array.isArray(this.value) ? this.value.join(", ") : this.value;
|
|
995
|
-
return this.readOnly ? this.messages.nonEditable
|
|
1148
|
+
return this.readOnly ? this.messages.nonEditable.replace("{value}", `${value}`) : value;
|
|
996
1149
|
}
|
|
997
1150
|
getChipLabel(item, isAncestors) {
|
|
998
1151
|
if (!isAncestors) {
|
|
@@ -1006,64 +1159,58 @@ class Combobox extends LitElement {
|
|
|
1006
1159
|
return keyed(item.guid || item.value || label, html`<calcite-chip .appearance=${readOnly ? "outline" : "solid"} class=${safeClassMap({
|
|
1007
1160
|
[CSS.chip]: true,
|
|
1008
1161
|
[CSS.disabled]: disabled
|
|
1009
|
-
})} .closable=${!disabled && !readOnly} .disabled=${disabled} .icon=${item.icon} .iconFlipRtl=${item.iconFlipRtl} id=${(!disabled && item.guid ? `${IDS.chip(item.guid)}` :
|
|
1162
|
+
})} .closable=${!disabled && !readOnly} data-testid=${`${disabled ? "disabled-chip" : "chip"}-${index}`} .disabled=${disabled} .icon=${item.icon} .iconFlipRtl=${item.iconFlipRtl} id=${(!disabled && item.guid ? `${IDS.chip(item.guid)}` : void 0) ?? nothing} .label=${label} .messageOverrides=${!disabled ? { dismissLabel: messages.removeTag.replace("{value}", `${label}`) } : void 0} @calciteChipClose=${!disabled ? () => this.calciteChipCloseHandler(item) : void 0} @focusin=${!disabled ? () => this.activeChipIndex = index : void 0} .scale=${scale} .selected=${item.selected} .tabIndex=${!disabled && activeChipIndex === index ? 0 : -1} title=${label ?? nothing} .value=${item.value}>${label}</calcite-chip>`);
|
|
1010
1163
|
}
|
|
1011
1164
|
renderChipCount(count, scale) {
|
|
1012
|
-
const label = this.messages.disabledSelectedCount
|
|
1165
|
+
const label = this.fitUsingCompactCountLabel ? `${count}` : this.messages.disabledSelectedCount.replace("{count}", `${count}`) ?? `+${count}`;
|
|
1013
1166
|
return html`<calcite-chip appearance=solid class=${safeClassMap({
|
|
1014
1167
|
[CSS.chip]: true
|
|
1015
|
-
})} .label=${label} .scale=${scale} tabindex=-1 title=${label ?? nothing}>${label}</calcite-chip>`;
|
|
1168
|
+
})} data-testid=selected-chip-count id=selected-chip-count .label=${label} .scale=${scale} tabindex=-1 title=${label ?? nothing} ${ref(this.selectedChipCountRef)}>${label}</calcite-chip>`;
|
|
1016
1169
|
}
|
|
1017
1170
|
renderChips() {
|
|
1018
1171
|
const { activeChipIndex, readOnly, scale, selectionDisplay, selectionMode, messages } = this;
|
|
1019
1172
|
const chips = [];
|
|
1020
1173
|
const isAncestors = selectionMode === "ancestors";
|
|
1021
|
-
const
|
|
1022
|
-
const allSelectedWithDisabledSelected = this.allSelected && this.hasDisabledSelected;
|
|
1023
|
-
const disabledItems = this.allItems.filter((item) => item.disabled && item.selected && (!isAncestors || !hasActiveChildren(item)));
|
|
1174
|
+
const hideSelectedChipsForSelectAll = this.selectAllEnabled && this.allSelected;
|
|
1024
1175
|
const preserveOrder = selectionDisplay === "all";
|
|
1025
|
-
if (
|
|
1176
|
+
if (hideSelectedChipsForSelectAll) {
|
|
1026
1177
|
return null;
|
|
1027
1178
|
}
|
|
1028
1179
|
let selectedIndex = 0;
|
|
1029
1180
|
let disabledIndex = 0;
|
|
1030
1181
|
if (preserveOrder) {
|
|
1031
|
-
this.allItems.
|
|
1182
|
+
const selectedChipItems = this.allItems.filter((item) => item.selected && (!isAncestors || !hasActiveChildren(item)));
|
|
1183
|
+
const orderedSelectedChipItems = orderByPrevious(selectedChipItems, this.selectedItems);
|
|
1184
|
+
orderedSelectedChipItems.forEach((item) => {
|
|
1032
1185
|
if (item.disabled) {
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
}));
|
|
1044
|
-
}
|
|
1186
|
+
chips.push(this.renderChip({
|
|
1187
|
+
activeChipIndex,
|
|
1188
|
+
disabled: true,
|
|
1189
|
+
index: disabledIndex++,
|
|
1190
|
+
item,
|
|
1191
|
+
messages,
|
|
1192
|
+
readOnly,
|
|
1193
|
+
scale,
|
|
1194
|
+
isAncestors
|
|
1195
|
+
}));
|
|
1045
1196
|
return;
|
|
1046
1197
|
}
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
isAncestors
|
|
1058
|
-
}));
|
|
1059
|
-
}
|
|
1060
|
-
}
|
|
1198
|
+
chips.push(this.renderChip({
|
|
1199
|
+
activeChipIndex,
|
|
1200
|
+
disabled: false,
|
|
1201
|
+
index: selectedIndex++,
|
|
1202
|
+
item,
|
|
1203
|
+
messages,
|
|
1204
|
+
readOnly,
|
|
1205
|
+
scale,
|
|
1206
|
+
isAncestors
|
|
1207
|
+
}));
|
|
1061
1208
|
});
|
|
1062
|
-
} else if (!
|
|
1209
|
+
} else if (!hideSelectedChipsForSelectAll) {
|
|
1063
1210
|
this.selectedItems.forEach((item) => {
|
|
1064
1211
|
chips.push(this.renderChip({
|
|
1065
1212
|
activeChipIndex,
|
|
1066
|
-
disabled:
|
|
1213
|
+
disabled: item.disabled,
|
|
1067
1214
|
index: selectedIndex++,
|
|
1068
1215
|
item,
|
|
1069
1216
|
messages,
|
|
@@ -1073,32 +1220,53 @@ class Combobox extends LitElement {
|
|
|
1073
1220
|
}));
|
|
1074
1221
|
});
|
|
1075
1222
|
}
|
|
1076
|
-
if (selectionDisplay === "fit"
|
|
1077
|
-
|
|
1223
|
+
if (selectionDisplay === "fit") {
|
|
1224
|
+
const hiddenSelectedCount = this.selectedHiddenChipsCount;
|
|
1225
|
+
const countChipValue = this.selectedVisibleChipsCount === 0 ? this.selectedItems.length : hiddenSelectedCount;
|
|
1226
|
+
if (hiddenSelectedCount > 0 && !this.deferFitChipCountRender) {
|
|
1227
|
+
chips.push(this.renderChipCount(countChipValue, scale));
|
|
1228
|
+
}
|
|
1078
1229
|
}
|
|
1079
1230
|
return chips.length ? chips : null;
|
|
1080
1231
|
}
|
|
1081
1232
|
renderAllSelectedIndicatorChip() {
|
|
1082
1233
|
const { allSelectedIndicatorChipRef, compactSelectionDisplay, scale, selectedVisibleChipsCount } = this;
|
|
1083
|
-
|
|
1084
|
-
|
|
1234
|
+
let useFitCompactLabel = false;
|
|
1235
|
+
if (this.selectionDisplay === "fit" && this.textInputRef.value && this.chipContainerEl) {
|
|
1236
|
+
const chipContainerElGap = parseInt(getComputedStyle(this.chipContainerEl).gap, 10);
|
|
1237
|
+
const chipContainerElWidth = getElementWidth(this.chipContainerEl);
|
|
1238
|
+
const { fontSize, fontFamily, minInlineSize } = getComputedStyle(this.textInputRef.value);
|
|
1239
|
+
const placeholderWidthMultiplier = 0.55;
|
|
1240
|
+
const inputMinWidth = parseFloat(minInlineSize) || parseInt(calciteSize48, 10);
|
|
1241
|
+
const measuredPlaceholderWidth = getTextWidth(this.placeholder, `${fontSize} ${fontFamily}`);
|
|
1242
|
+
const placeholderWidth = measuredPlaceholderWidth > 0 ? measuredPlaceholderWidth : Math.max(inputMinWidth, Math.round((this.placeholder?.length || 0) * (parseFloat(fontSize) || parseInt(calciteSize48, 10)) * placeholderWidthMultiplier));
|
|
1243
|
+
const selectedIndicatorChipElWidth = getElementWidth(this.selectedIndicatorChipRef.value);
|
|
1244
|
+
useFitCompactLabel = this.getFitCompactDisplayState({
|
|
1245
|
+
chipContainerElGap,
|
|
1246
|
+
chipContainerElWidth,
|
|
1247
|
+
inputMinWidth,
|
|
1248
|
+
placeholderWidth,
|
|
1249
|
+
selectedIndicatorChipElWidth
|
|
1250
|
+
}).hideSelectedChips;
|
|
1251
|
+
}
|
|
1252
|
+
const useCompactAllLabel = compactSelectionDisplay || useFitCompactLabel;
|
|
1253
|
+
const label = useCompactAllLabel ? this.messages.all : this.messages.allSelected;
|
|
1254
|
+
const showAllSelectedChip = this.allSelected && (this.selectionDisplay === "single" || !selectedVisibleChipsCount || this.selectionDisplay === "all");
|
|
1085
1255
|
return html`<calcite-chip class=${safeClassMap({
|
|
1086
1256
|
[CSS.chip]: true,
|
|
1087
1257
|
[CSS.chipInvisible]: !showAllSelectedChip,
|
|
1088
1258
|
[CSS.allSelected]: true
|
|
1089
|
-
})} .label=${label} .scale=${scale} title=${label ?? nothing} value ${ref(allSelectedIndicatorChipRef)}>${label}</calcite-chip>`;
|
|
1259
|
+
})} data-testid=all-selected-indicator-chip .label=${label} .scale=${scale} title=${label ?? nothing} value ${ref(allSelectedIndicatorChipRef)}>${label}</calcite-chip>`;
|
|
1090
1260
|
}
|
|
1091
1261
|
renderSelectedIndicatorChip() {
|
|
1092
|
-
const { compactSelectionDisplay, selectionDisplay, scale,
|
|
1093
|
-
|
|
1094
|
-
const allSelectedWithDisabledSelected = this.allSelected && this.hasDisabledSelected;
|
|
1095
|
-
let chipInvisible;
|
|
1262
|
+
const { compactSelectionDisplay, selectionDisplay, scale, selectedIndicatorChipRef } = this;
|
|
1263
|
+
let chipInvisible = false;
|
|
1096
1264
|
let label;
|
|
1265
|
+
const selectedItemsCount = this.getSelectedItems().length;
|
|
1097
1266
|
if (compactSelectionDisplay) {
|
|
1098
1267
|
chipInvisible = true;
|
|
1099
1268
|
} else {
|
|
1100
1269
|
if (selectionDisplay === "single") {
|
|
1101
|
-
const selectedItemsCount = this.allItems.filter((item) => item.selected && (this.selectionMode !== "ancestors" || !hasActiveChildren(item))).length;
|
|
1102
1270
|
if (this.allSelected) {
|
|
1103
1271
|
chipInvisible = true;
|
|
1104
1272
|
} else if (selectedItemsCount > 0) {
|
|
@@ -1107,9 +1275,6 @@ class Combobox extends LitElement {
|
|
|
1107
1275
|
chipInvisible = true;
|
|
1108
1276
|
}
|
|
1109
1277
|
label = `${selectedItemsCount} ${this.messages.selected}`;
|
|
1110
|
-
} else if (selectionDisplay === "fit") {
|
|
1111
|
-
chipInvisible = !!((allSelectedNoDisabled || allSelectedWithDisabledSelected) && selectedVisibleChipsCount === 0 || selectedHiddenChipsCount === 0);
|
|
1112
|
-
label = selectedVisibleChipsCount > 0 ? `+${selectedHiddenChipsCount}` : `${selectedHiddenChipsCount} ${this.messages.selected}`;
|
|
1113
1278
|
}
|
|
1114
1279
|
}
|
|
1115
1280
|
return html`<calcite-chip class=${safeClassMap({
|
|
@@ -1118,18 +1283,13 @@ class Combobox extends LitElement {
|
|
|
1118
1283
|
})} .label=${label} .scale=${scale} title=${label ?? nothing} value ${ref(selectedIndicatorChipRef)}>${label}</calcite-chip>`;
|
|
1119
1284
|
}
|
|
1120
1285
|
renderSelectedIndicatorChipCompact() {
|
|
1121
|
-
const { compactSelectionDisplay, selectionDisplay, scale
|
|
1122
|
-
|
|
1123
|
-
const allSelectedWithDisabledSelected = this.allSelected && this.hasDisabledSelected;
|
|
1124
|
-
let chipInvisible;
|
|
1286
|
+
const { compactSelectionDisplay, selectionDisplay, scale } = this;
|
|
1287
|
+
let chipInvisible = false;
|
|
1125
1288
|
let label;
|
|
1289
|
+
const selectedItemsCount = this.getSelectedItems().length;
|
|
1126
1290
|
if (compactSelectionDisplay) {
|
|
1127
|
-
|
|
1128
|
-
if (allSelectedNoDisabled || allSelectedWithDisabledSelected || selectionDisplay === "single" && this.allSelected) {
|
|
1291
|
+
if (this.allSelected) {
|
|
1129
1292
|
chipInvisible = true;
|
|
1130
|
-
} else if (selectionDisplay === "fit") {
|
|
1131
|
-
chipInvisible = !(selectedHiddenChipsCount > 0);
|
|
1132
|
-
label = `${selectedHiddenChipsCount || 0}`;
|
|
1133
1293
|
} else if (selectionDisplay === "single") {
|
|
1134
1294
|
chipInvisible = !(selectedItemsCount > 0);
|
|
1135
1295
|
label = `${selectedItemsCount}`;
|
|
@@ -1158,7 +1318,7 @@ class Combobox extends LitElement {
|
|
|
1158
1318
|
[CSS.inputSingle]: true,
|
|
1159
1319
|
[CSS.inputHidden]: showLabel,
|
|
1160
1320
|
[CSS.inputIcon]: this.showingInlineIcon && !!this.placeholderIcon
|
|
1161
|
-
})} .disabled=${disabled} .id=${`${IDS.input(guid2)}`} @focus=${this.comboboxFocusHandler} @input=${this.inputHandler} placeholder=${placeholder ?? nothing} .readOnly=${this.readOnly} .required=${this.required} role=combobox .tabIndex=${this.activeChipIndex === -1 ? 0 : -1} type=text .value=${live(this.filterText ?? "")} ${ref(this.textInputRef)}>`)}</span>`;
|
|
1321
|
+
})} data-testid=input .disabled=${disabled} .id=${`${IDS.input(guid2)}`} @focus=${this.comboboxFocusHandler} @input=${this.inputHandler} placeholder=${placeholder ?? nothing} .readOnly=${this.readOnly} .required=${this.required} role=combobox .tabIndex=${this.activeChipIndex === -1 ? 0 : -1} type=text .value=${live(this.filterText ?? "")} ${ref(this.textInputRef)}>`)}</span>`;
|
|
1162
1322
|
}
|
|
1163
1323
|
renderListBoxOptions() {
|
|
1164
1324
|
const mappedListBoxOptions = this.keyboardNavItems.map((item) => this.createScreenReaderItem({
|
|
@@ -1186,8 +1346,8 @@ class Combobox extends LitElement {
|
|
|
1186
1346
|
[FloatingCSS.animation]: true,
|
|
1187
1347
|
[FloatingCSS.animationActive]: open
|
|
1188
1348
|
};
|
|
1189
|
-
const label = (this.filterText && messages.add
|
|
1190
|
-
return html`<div aria-hidden=true class=${safeClassMap(CSS.floatingUIContainer)} popover=manual ${ref(setFloatingEl)}><div class=${safeClassMap(classes)} ${ref(setContainerEl)}><ul class=${safeClassMap({ [CSS.list]: true, [CSS.listHide]: !open })}>${this.selectAllEnabled && this.selectionMode !== "single" && this.selectionMode !== "single-persist" && html`<calcite-combobox-item class=${safeClassMap(CSS.selectAll)} .heading=${messages.selectAll} .id=${`${this.guid}-select-all-enabled-interactive`} .indeterminate=${this.indeterminate} .label=${messages.selectAll} .scale=${scale} .selected=${this.allSelected} tabindex=-1 value=select-all ${ref(this.selectAllComboboxItemRef)}></calcite-combobox-item>` || ""}<slot></slot>${this.noMatchesFound && (this.allowCustomValues ? html`<li aria-label=${label ?? nothing} class=${safeClassMap(CSS.noMatches)} @click=${this.customChipAddHandler} role=option tabindex=0>${highlightText({
|
|
1349
|
+
const label = (this.filterText && messages.add.replace("{text}", `${this.filterText}`)) ?? "";
|
|
1350
|
+
return html`<div aria-hidden=true class=${safeClassMap(CSS.floatingUIContainer)} popover=manual ${ref(setFloatingEl)}><div class=${safeClassMap(classes)} ${ref(setContainerEl)}><ul class=${safeClassMap({ [CSS.list]: true, [CSS.listHide]: !open })}>${this.selectAllEnabled && this.selectionMode !== "single" && this.selectionMode !== "single-persist" && html`<calcite-combobox-item class=${safeClassMap(CSS.selectAll)} data-testid=select-all-item .heading=${messages.selectAll} .id=${`${this.guid}-select-all-enabled-interactive`} .indeterminate=${this.indeterminate} .label=${messages.selectAll} .scale=${scale} .selected=${this.allSelected} tabindex=-1 value=select-all ${ref(this.selectAllComboboxItemRef)}></calcite-combobox-item>` || ""}<slot></slot>${this.noMatchesFound && (this.allowCustomValues ? html`<li aria-label=${label ?? nothing} class=${safeClassMap(CSS.noMatches)} @click=${this.customChipAddHandler} role=option tabindex=0>${highlightText({
|
|
1191
1351
|
text: label,
|
|
1192
1352
|
pattern: new RegExp(`(${escapeRegExp(this.filterText)})`, "i")
|
|
1193
1353
|
})}</li>` : html`<li class=${safeClassMap({ [CSS.noMatchesPlaceholder]: true, [CSS.noMatches]: true })}>${messages.noMatches}</li>`) || ""}</ul></div></div>`;
|
|
@@ -1212,8 +1372,10 @@ class Combobox extends LitElement {
|
|
|
1212
1372
|
const allSelectionDisplay = selectionDisplay === "all";
|
|
1213
1373
|
const singleSelectionDisplay = selectionDisplay === "single";
|
|
1214
1374
|
const fitSelectionDisplay = !singleSelectionMode && selectionDisplay === "fit";
|
|
1215
|
-
const
|
|
1216
|
-
const
|
|
1375
|
+
const showIndicatorChips = !singleSelectionMode && !allSelectionDisplay;
|
|
1376
|
+
const showSingleIndicatorChips = showIndicatorChips && !fitSelectionDisplay;
|
|
1377
|
+
const hasClearableSelection = this.items.some((item) => item.selected && !item.disabled);
|
|
1378
|
+
const isClearable = !this.clearDisabled && this.selectionMode !== "single-persist" && !!this.value?.length && hasClearableSelection;
|
|
1217
1379
|
return this.interactiveContainer({ disabled: this.disabled, children: html`${this.labelText && InternalLabel({ labelText: this.labelText, onClick: this.onLabelClick, required: this.required, tooltipText: this.messages.required }) || ""}<div aria-live=polite class=${safeClassMap({
|
|
1218
1380
|
[CSS.wrapper]: true,
|
|
1219
1381
|
[CSS.wrapperSingle]: singleSelectionMode || !this.selectedItems.length,
|
|
@@ -1222,11 +1384,7 @@ class Combobox extends LitElement {
|
|
|
1222
1384
|
[CSS.gridInput]: true,
|
|
1223
1385
|
[CSS.selectionDisplayFit]: fitSelectionDisplay,
|
|
1224
1386
|
[CSS.selectionDisplaySingle]: singleSelectionDisplay
|
|
1225
|
-
})} ${ref(this.setChipContainerEl)}>${!singleSelectionMode && !singleSelectionDisplay && this.renderChips() || ""}${!singleSelectionMode && !singleSelectionDisplay && this.selectAllEnabled && allSelectionDisplay && (
|
|
1226
|
-
this.renderSelectedIndicatorChip(),
|
|
1227
|
-
this.renderSelectedIndicatorChipCompact(),
|
|
1228
|
-
this.renderAllSelectedIndicatorChip()
|
|
1229
|
-
] || ""}<label class=${safeClassMap(CSS.screenReadersOnly)} .htmlFor=${`${IDS.input(guid2)}`} .id=${`${IDS.label(guid2)}`}>${label}</label>${this.renderInput()}</div>`)}${!readOnly && isClearable ? ClearButton({ ariaLabel: this.messages.clear, disabled: this.disabled, ref: this.clearButtonRef, scale: this.scale, title: this.messages.clear }) : null}${!readOnly && this.renderChevronIcon() || ""}</div><ul aria-labelledby=${`${IDS.label(guid2)}`} aria-multiselectable=true class=${safeClassMap(CSS.screenReadersOnly)} .id=${`${IDS.listbox(guid2)}`} role=listbox tabindex=-1>${this.renderListBoxOptions()}</ul>${this.renderFloatingUIContainer()}${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
|
|
1387
|
+
})} ${ref(this.setChipContainerEl)}>${!singleSelectionMode && !singleSelectionDisplay && this.renderChips() || ""}${!singleSelectionMode && !singleSelectionDisplay && this.selectAllEnabled && allSelectionDisplay && this.renderAllSelectedIndicatorChip() || ""}${showSingleIndicatorChips && this.renderSelectedIndicatorChip() || ""}${showSingleIndicatorChips && this.renderSelectedIndicatorChipCompact() || ""}${showIndicatorChips && this.renderAllSelectedIndicatorChip() || ""}<label class=${safeClassMap(CSS.screenReadersOnly)} .htmlFor=${`${IDS.input(guid2)}`} .id=${`${IDS.label(guid2)}`}>${label}</label>${this.renderInput()}</div>`)}${!readOnly && isClearable ? ClearButton({ ariaLabel: this.messages.clear, disabled: this.disabled, ref: this.clearButtonRef, scale: this.scale, title: this.messages.clear }) : null}${!readOnly && this.renderChevronIcon() || ""}</div><ul aria-labelledby=${`${IDS.label(guid2)}`} aria-multiselectable=true class=${safeClassMap(CSS.screenReadersOnly)} .id=${`${IDS.listbox(guid2)}`} role=listbox tabindex=-1>${this.renderListBoxOptions()}</ul>${this.renderFloatingUIContainer()}${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
|
|
1230
1388
|
}
|
|
1231
1389
|
}
|
|
1232
1390
|
customElement("calcite-combobox", Combobox);
|