@tylertech/forge 2.13.0 → 2.13.2
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 +14 -3
- package/custom-elements.json +99 -2
- package/dist/busy-indicator/forge-busy-indicator.css +1 -1
- package/dist/button/forge-button.css +1 -1
- package/dist/dialog/forge-dialog-utils.css +1 -1
- package/dist/dialog/forge-dialog.css +1 -1
- package/dist/esm/accordion/index.js +2 -2
- package/dist/esm/app-bar/help-button/index.js +2 -2
- package/dist/esm/app-bar/index.js +2 -2
- package/dist/esm/app-bar/menu-button/index.js +2 -2
- package/dist/esm/app-bar/notification-button/index.js +2 -2
- package/dist/esm/app-bar/profile-button/index.js +2 -2
- package/dist/esm/app-bar/search/index.js +2 -2
- package/dist/esm/autocomplete/index.js +2 -2
- package/dist/esm/avatar/index.js +2 -2
- package/dist/esm/backdrop/index.js +2 -2
- package/dist/esm/badge/index.js +2 -2
- package/dist/esm/banner/index.js +2 -2
- package/dist/esm/bottom-sheet/index.js +2 -2
- package/dist/esm/busy-indicator/index.js +2 -2
- package/dist/esm/button/index.js +2 -2
- package/dist/esm/button-toggle/button-toggle/index.js +2 -2
- package/dist/esm/button-toggle/button-toggle-group/index.js +2 -2
- package/dist/esm/button-toggle/index.js +2 -2
- package/dist/esm/calendar/calendar-dropdown/index.js +2 -2
- package/dist/esm/calendar/calendar-menu/index.js +2 -2
- package/dist/esm/calendar/core/index.js +1 -1
- package/dist/esm/calendar/index.js +2 -2
- package/dist/esm/card/index.js +2 -2
- package/dist/esm/checkbox/index.js +2 -2
- package/dist/esm/chip-field/index.js +2 -2
- package/dist/esm/chips/chip/index.js +2 -2
- package/dist/esm/chips/chip-set/index.js +2 -2
- package/dist/esm/chips/index.js +2 -2
- package/dist/esm/chunks/chunk.24D46RLZ.js +1 -1
- package/dist/esm/chunks/chunk.2CEW64ZM.js +7 -0
- package/dist/esm/chunks/{chunk.MNBJMPJ6.js.map → chunk.2CEW64ZM.js.map} +2 -2
- package/dist/esm/chunks/chunk.2GY2VPJG.js +1 -1
- package/dist/esm/chunks/chunk.2LHBE2QZ.js +7 -0
- package/dist/esm/chunks/{chunk.YHHIPP2F.js.map → chunk.2LHBE2QZ.js.map} +1 -1
- package/dist/esm/chunks/{chunk.4T5TGQFG.js → chunk.2ZQ3ZDPN.js} +3 -3
- package/dist/esm/chunks/{chunk.4T5TGQFG.js.map → chunk.2ZQ3ZDPN.js.map} +0 -0
- package/dist/esm/chunks/chunk.36VS7FMU.js +7 -0
- package/dist/esm/chunks/{chunk.FPV4XEUK.js.map → chunk.36VS7FMU.js.map} +2 -2
- package/dist/esm/chunks/chunk.3L7T5WYL.js +7 -0
- package/dist/esm/chunks/{chunk.BCUBTR5O.js.map → chunk.3L7T5WYL.js.map} +1 -1
- package/dist/esm/chunks/chunk.3MP6OFVU.js +7 -0
- package/dist/esm/chunks/{chunk.KYCC3C3M.js.map → chunk.3MP6OFVU.js.map} +3 -3
- package/dist/esm/chunks/chunk.3STDLL5U.js +7 -0
- package/dist/esm/chunks/{chunk.WNOSTPQQ.js.map → chunk.3STDLL5U.js.map} +2 -2
- package/dist/esm/chunks/{chunk.PZTAIVJW.js → chunk.4K3IV4GI.js} +3 -3
- package/dist/esm/chunks/{chunk.PZTAIVJW.js.map → chunk.4K3IV4GI.js.map} +2 -2
- package/dist/esm/chunks/chunk.55BOUOT6.js +7 -0
- package/dist/esm/chunks/{chunk.QJPH24V4.js.map → chunk.55BOUOT6.js.map} +2 -2
- package/dist/esm/chunks/chunk.5BDTX7CR.js +7 -0
- package/dist/esm/chunks/chunk.5BDTX7CR.js.map +7 -0
- package/dist/esm/chunks/chunk.5EQPGUZH.js +7 -0
- package/dist/esm/chunks/{chunk.MGTNCCW3.js.map → chunk.5EQPGUZH.js.map} +1 -1
- package/dist/esm/chunks/{chunk.A23NSEWA.js → chunk.5PXABBKU.js} +3 -3
- package/dist/esm/chunks/{chunk.A23NSEWA.js.map → chunk.5PXABBKU.js.map} +0 -0
- package/dist/esm/chunks/chunk.5TVWDATE.js +7 -0
- package/dist/esm/chunks/{chunk.APGFXXJ7.js.map → chunk.5TVWDATE.js.map} +1 -1
- package/dist/esm/chunks/chunk.6KTLOA7V.js +1 -1
- package/dist/esm/chunks/chunk.6LXDG4W5.js +7 -0
- package/dist/esm/chunks/{chunk.Y7Q6QI5V.js.map → chunk.6LXDG4W5.js.map} +2 -2
- package/dist/esm/chunks/chunk.7MVBJ37L.js +7 -0
- package/dist/esm/chunks/{chunk.OG2BI3UW.js.map → chunk.7MVBJ37L.js.map} +2 -2
- package/dist/esm/chunks/{chunk.QEHJJKFZ.js → chunk.7R6TYPPS.js} +3 -3
- package/dist/esm/chunks/{chunk.QEHJJKFZ.js.map → chunk.7R6TYPPS.js.map} +2 -2
- package/dist/esm/chunks/chunk.7TDB3VFH.js +7 -0
- package/dist/esm/chunks/{chunk.LLHA3SQR.js.map → chunk.7TDB3VFH.js.map} +2 -2
- package/dist/esm/chunks/chunk.AJJILT3A.js +1 -1
- package/dist/esm/chunks/chunk.ALJ3FDXL.js +7 -0
- package/dist/esm/chunks/{chunk.BX7242PC.js.map → chunk.ALJ3FDXL.js.map} +2 -2
- package/dist/esm/chunks/chunk.AMFXGOSA.js +1 -1
- package/dist/esm/chunks/chunk.AWCBH5KW.js +1 -1
- package/dist/esm/chunks/chunk.B3IJU6XJ.js +1 -1
- package/dist/esm/chunks/chunk.B52LJRGH.js +29 -0
- package/dist/esm/chunks/{chunk.YWKKZLZ2.js.map → chunk.B52LJRGH.js.map} +2 -2
- package/dist/esm/chunks/chunk.BCD4AAI2.js +7 -0
- package/dist/esm/chunks/chunk.BCD4AAI2.js.map +7 -0
- package/dist/esm/chunks/chunk.BCP2YATB.js +7 -0
- package/dist/esm/chunks/{chunk.J6CIWTDH.js.map → chunk.BCP2YATB.js.map} +2 -2
- package/dist/esm/chunks/chunk.BMFJLHDR.js +7 -0
- package/dist/esm/chunks/{chunk.54QFNVMG.js.map → chunk.BMFJLHDR.js.map} +1 -1
- package/dist/esm/chunks/chunk.BTI5I25G.js +12 -0
- package/dist/esm/chunks/{chunk.ON3JVSSR.js.map → chunk.BTI5I25G.js.map} +0 -0
- package/dist/esm/chunks/chunk.BYRJ7577.js +7 -0
- package/dist/esm/chunks/{chunk.K43ZNKT2.js.map → chunk.BYRJ7577.js.map} +0 -0
- package/dist/esm/chunks/chunk.CKS5A4YN.js +1 -1
- package/dist/esm/chunks/chunk.D4SNVKDA.js +1 -1
- package/dist/esm/chunks/chunk.DB2WESQC.js +7 -0
- package/dist/esm/chunks/{chunk.I2YRKTG7.js.map → chunk.DB2WESQC.js.map} +2 -2
- package/dist/esm/chunks/chunk.DLAIQJHL.js +7 -0
- package/dist/esm/chunks/{chunk.JNOCXQVB.js.map → chunk.DLAIQJHL.js.map} +2 -2
- package/dist/esm/chunks/chunk.DRXMITOO.js +29 -0
- package/dist/esm/chunks/{chunk.K753A3KI.js.map → chunk.DRXMITOO.js.map} +2 -2
- package/dist/esm/chunks/chunk.DURRORXO.js +29 -0
- package/dist/esm/chunks/{chunk.HUWXZ4ZN.js.map → chunk.DURRORXO.js.map} +1 -1
- package/dist/esm/chunks/chunk.E37HEAJ5.js +1 -1
- package/dist/esm/chunks/chunk.E43TT4RI.js +1 -1
- package/dist/esm/chunks/chunk.E4NCI7MS.js +1 -1
- package/dist/esm/chunks/chunk.EC6JSIQW.js +1 -1
- package/dist/esm/chunks/chunk.EDU7RQD7.js +7 -0
- package/dist/esm/chunks/{chunk.NGIBMR3Q.js.map → chunk.EDU7RQD7.js.map} +2 -2
- package/dist/esm/chunks/chunk.ETIN6DEM.js +7 -0
- package/dist/esm/chunks/{chunk.RST65QIB.js.map → chunk.ETIN6DEM.js.map} +2 -2
- package/dist/esm/chunks/chunk.F2GXZPID.js +7 -0
- package/dist/esm/chunks/chunk.F2GXZPID.js.map +7 -0
- package/dist/esm/chunks/{chunk.YPUWII7L.js → chunk.F3Q62EMG.js} +3 -3
- package/dist/esm/chunks/chunk.F3Q62EMG.js.map +7 -0
- package/dist/esm/chunks/chunk.F5I55MXD.js +1 -1
- package/dist/esm/chunks/{chunk.URBXDOF7.js → chunk.FL6SJHQU.js} +3 -3
- package/dist/esm/chunks/{chunk.URBXDOF7.js.map → chunk.FL6SJHQU.js.map} +0 -0
- package/dist/esm/chunks/chunk.FZQCBRPK.js +1 -1
- package/dist/esm/chunks/chunk.G76HB2FK.js +1 -1
- package/dist/esm/chunks/chunk.GEMZPO6Z.js +7 -0
- package/dist/esm/chunks/{chunk.B5ABD4CZ.js.map → chunk.GEMZPO6Z.js.map} +1 -1
- package/dist/esm/chunks/chunk.GVQVA7P3.js +1 -1
- package/dist/esm/chunks/chunk.GXUYYBVO.js +29 -0
- package/dist/esm/chunks/{chunk.T7ZJDAXV.js.map → chunk.GXUYYBVO.js.map} +1 -1
- package/dist/esm/chunks/chunk.HHJJJ73Y.js +29 -0
- package/dist/esm/chunks/{chunk.XYBFFTXS.js.map → chunk.HHJJJ73Y.js.map} +1 -1
- package/dist/esm/chunks/chunk.HPJ4AQIE.js +7 -0
- package/dist/esm/chunks/chunk.HPJ4AQIE.js.map +7 -0
- package/dist/esm/chunks/chunk.HWQEGQDD.js +7 -0
- package/dist/esm/chunks/{chunk.5K5SIZRX.js.map → chunk.HWQEGQDD.js.map} +2 -2
- package/dist/esm/chunks/{chunk.6APYGKNX.js → chunk.HWVLZ44Q.js} +3 -3
- package/dist/esm/chunks/{chunk.6APYGKNX.js.map → chunk.HWVLZ44Q.js.map} +0 -0
- package/dist/esm/chunks/chunk.HYMB3XDK.js +9 -0
- package/dist/esm/chunks/chunk.HYMB3XDK.js.map +7 -0
- package/dist/esm/chunks/{chunk.IMK2LFWR.js → chunk.IARIRFXO.js} +3 -3
- package/dist/esm/chunks/chunk.IARIRFXO.js.map +7 -0
- package/dist/esm/chunks/chunk.IMZ5PF4C.js +7 -0
- package/dist/esm/chunks/{chunk.IFZXG3LI.js.map → chunk.IMZ5PF4C.js.map} +2 -2
- package/dist/esm/chunks/chunk.JMXJXZTS.js +7 -0
- package/dist/esm/chunks/{chunk.BOENNFXE.js.map → chunk.JMXJXZTS.js.map} +1 -1
- package/dist/esm/chunks/chunk.JXY6MTP3.js +7 -0
- package/dist/esm/chunks/{chunk.YAJT3P6V.js.map → chunk.JXY6MTP3.js.map} +2 -2
- package/dist/esm/chunks/chunk.KBMLP7UT.js +7 -0
- package/dist/esm/chunks/{chunk.OUEF6VQ6.js.map → chunk.KBMLP7UT.js.map} +2 -2
- package/dist/esm/chunks/chunk.L54GENPD.js +7 -0
- package/dist/esm/chunks/{chunk.5WMEFHVN.js.map → chunk.L54GENPD.js.map} +1 -1
- package/dist/esm/chunks/{chunk.DGDT4UQT.js → chunk.LGEYSCS2.js} +3 -3
- package/dist/esm/chunks/{chunk.DGDT4UQT.js.map → chunk.LGEYSCS2.js.map} +2 -2
- package/dist/esm/chunks/chunk.LZHDRATV.js +7 -0
- package/dist/esm/chunks/{chunk.IJIKFXUT.js.map → chunk.LZHDRATV.js.map} +2 -2
- package/dist/esm/chunks/chunk.LZMYHIO2.js +1 -1
- package/dist/esm/chunks/{chunk.JB2N65SR.js → chunk.M4KJNCLO.js} +3 -3
- package/dist/esm/chunks/{chunk.JB2N65SR.js.map → chunk.M4KJNCLO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.QOZLQPKE.js → chunk.MBS5VMYY.js} +3 -3
- package/dist/esm/chunks/{chunk.QOZLQPKE.js.map → chunk.MBS5VMYY.js.map} +2 -2
- package/dist/esm/chunks/{chunk.F2TKPPK7.js → chunk.MBWEYW6M.js} +3 -3
- package/dist/esm/chunks/{chunk.F2TKPPK7.js.map → chunk.MBWEYW6M.js.map} +2 -2
- package/dist/esm/chunks/chunk.MCIQXNKY.js +1 -1
- package/dist/esm/chunks/chunk.MHEJZJT3.js +1 -1
- package/dist/esm/chunks/chunk.MIYZJUXH.js +1 -1
- package/dist/esm/chunks/chunk.MMVZJLXE.js +7 -0
- package/dist/esm/chunks/{chunk.HN4PXH3D.js.map → chunk.MMVZJLXE.js.map} +3 -3
- package/dist/esm/chunks/chunk.MNFGVNDI.js +1 -1
- package/dist/esm/chunks/{chunk.VLTJFKGZ.js → chunk.MNPORZ4F.js} +3 -3
- package/dist/esm/chunks/{chunk.VLTJFKGZ.js.map → chunk.MNPORZ4F.js.map} +0 -0
- package/dist/esm/chunks/chunk.MWD47ZZU.js +7 -0
- package/dist/esm/chunks/{chunk.CV5E5W6I.js.map → chunk.MWD47ZZU.js.map} +2 -2
- package/dist/esm/chunks/chunk.MYNPY3AQ.js +7 -0
- package/dist/esm/chunks/{chunk.VMWS5OOZ.js.map → chunk.MYNPY3AQ.js.map} +1 -1
- package/dist/esm/chunks/chunk.N24NHF7Y.js +7 -0
- package/dist/esm/chunks/{chunk.TLHI6K2R.js.map → chunk.N24NHF7Y.js.map} +2 -2
- package/dist/esm/chunks/chunk.N46G56GG.js +7 -0
- package/dist/esm/chunks/{chunk.RGWUF3J2.js.map → chunk.N46G56GG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.6SGRP4FO.js → chunk.NV2HNCQH.js} +3 -3
- package/dist/esm/chunks/{chunk.6SGRP4FO.js.map → chunk.NV2HNCQH.js.map} +0 -0
- package/dist/esm/chunks/{chunk.SHT6BCLY.js → chunk.NYMNX3S7.js} +3 -3
- package/dist/esm/chunks/{chunk.SHT6BCLY.js.map → chunk.NYMNX3S7.js.map} +0 -0
- package/dist/esm/chunks/chunk.O2R6MBT5.js +7 -0
- package/dist/esm/chunks/chunk.O2R6MBT5.js.map +7 -0
- package/dist/esm/chunks/chunk.O5I3ZMDA.js +7 -0
- package/dist/esm/chunks/{chunk.WV45FGTW.js.map → chunk.O5I3ZMDA.js.map} +0 -0
- package/dist/esm/chunks/{chunk.WIUER75G.js → chunk.OJFI5I6O.js} +3 -3
- package/dist/esm/chunks/{chunk.WIUER75G.js.map → chunk.OJFI5I6O.js.map} +2 -2
- package/dist/esm/chunks/chunk.OLNFXF3V.js +7 -0
- package/dist/esm/chunks/{chunk.P6B3UWJ5.js.map → chunk.OLNFXF3V.js.map} +2 -2
- package/dist/esm/chunks/chunk.ON6FJ2D6.js +7 -0
- package/dist/esm/chunks/{chunk.XXA6KNXT.js.map → chunk.ON6FJ2D6.js.map} +1 -1
- package/dist/esm/chunks/{chunk.BSZ2LBJX.js → chunk.OOW3UKT4.js} +3 -3
- package/dist/esm/chunks/{chunk.BSZ2LBJX.js.map → chunk.OOW3UKT4.js.map} +0 -0
- package/dist/esm/chunks/chunk.ORF746AF.js +7 -0
- package/dist/esm/chunks/{chunk.RPPBBBYG.js.map → chunk.ORF746AF.js.map} +2 -2
- package/dist/esm/chunks/{chunk.J3NHIF6W.js → chunk.PBJEZJTY.js} +3 -3
- package/dist/esm/chunks/{chunk.J3NHIF6W.js.map → chunk.PBJEZJTY.js.map} +0 -0
- package/dist/esm/chunks/chunk.PCSCKTFS.js +7 -0
- package/dist/esm/chunks/chunk.PCSCKTFS.js.map +7 -0
- package/dist/esm/chunks/chunk.PYG4YVBA.js +1 -1
- package/dist/esm/chunks/chunk.Q3RRONZQ.js +7 -0
- package/dist/esm/chunks/{chunk.Q6L7T6OJ.js.map → chunk.Q3RRONZQ.js.map} +2 -2
- package/dist/esm/chunks/chunk.QH4DLM3R.js +7 -0
- package/dist/esm/chunks/{chunk.2SAHWDGJ.js.map → chunk.QH4DLM3R.js.map} +2 -2
- package/dist/esm/chunks/chunk.QIJHHDYF.js +7 -0
- package/dist/esm/chunks/chunk.QIJHHDYF.js.map +7 -0
- package/dist/esm/chunks/chunk.QMRLSOAB.js +7 -0
- package/dist/esm/chunks/chunk.QMRLSOAB.js.map +7 -0
- package/dist/esm/chunks/chunk.QQDDGRY6.js +1 -1
- package/dist/esm/chunks/chunk.QZHEP4X2.js +1 -1
- package/dist/esm/chunks/chunk.R4NDFXVA.js +1 -1
- package/dist/esm/chunks/chunk.S76NW5JY.js +7 -0
- package/dist/esm/chunks/{chunk.EJ4ASQET.js.map → chunk.S76NW5JY.js.map} +2 -2
- package/dist/esm/chunks/chunk.SKLCDWYQ.js +1 -1
- package/dist/esm/chunks/chunk.SLSVRMAS.js +7 -0
- package/dist/esm/chunks/{chunk.7O7V3N4A.js.map → chunk.SLSVRMAS.js.map} +2 -2
- package/dist/esm/chunks/chunk.STS5TIUV.js +1 -1
- package/dist/esm/chunks/chunk.SVGEVCXA.js +1 -1
- package/dist/esm/chunks/chunk.TCAOLSLI.js +7 -0
- package/dist/esm/chunks/{chunk.35U4OX7S.js.map → chunk.TCAOLSLI.js.map} +2 -2
- package/dist/esm/chunks/chunk.TLCGGWBO.js +1 -1
- package/dist/esm/chunks/chunk.TLS4ALGU.js +7 -0
- package/dist/esm/chunks/{chunk.DQBSFX46.js.map → chunk.TLS4ALGU.js.map} +2 -2
- package/dist/esm/chunks/chunk.U6FJJGO3.js +1 -1
- package/dist/esm/chunks/chunk.UOWU5VVK.js +7 -0
- package/dist/esm/chunks/{chunk.3UMBCR4P.js.map → chunk.UOWU5VVK.js.map} +2 -2
- package/dist/esm/chunks/chunk.UUX4QJ4D.js +1 -1
- package/dist/esm/chunks/chunk.V55E5JD5.js +7 -0
- package/dist/esm/chunks/{chunk.444GNOS4.js.map → chunk.V55E5JD5.js.map} +2 -2
- package/dist/esm/chunks/chunk.VHKQHMK3.js +7 -0
- package/dist/esm/chunks/{chunk.33Q5FK2H.js.map → chunk.VHKQHMK3.js.map} +2 -2
- package/dist/esm/chunks/chunk.VW4JVRH7.js +7 -0
- package/dist/esm/chunks/{chunk.O3G6ZLJN.js.map → chunk.VW4JVRH7.js.map} +0 -0
- package/dist/esm/chunks/{chunk.6QMDYUVT.js → chunk.WEUNLYMQ.js} +3 -3
- package/dist/esm/chunks/{chunk.6QMDYUVT.js.map → chunk.WEUNLYMQ.js.map} +2 -2
- package/dist/esm/chunks/chunk.WF2MFLG4.js +1 -1
- package/dist/esm/chunks/chunk.WINL2C7Q.js +1 -1
- package/dist/esm/chunks/{chunk.6XXKSGW5.js → chunk.WOHCW6KW.js} +3 -3
- package/dist/esm/chunks/{chunk.6XXKSGW5.js.map → chunk.WOHCW6KW.js.map} +2 -2
- package/dist/esm/chunks/chunk.WU24GAQY.js +7 -0
- package/dist/esm/chunks/{chunk.BFNAQQCU.js.map → chunk.WU24GAQY.js.map} +2 -2
- package/dist/esm/chunks/chunk.X2RP4QW3.js +1 -1
- package/dist/esm/chunks/chunk.X5JLUP7O.js +7 -0
- package/dist/esm/chunks/{chunk.PFD2SVJ4.js.map → chunk.X5JLUP7O.js.map} +2 -2
- package/dist/esm/chunks/chunk.XSZ4S77A.js +7 -0
- package/dist/esm/chunks/{chunk.7NXPOEXV.js.map → chunk.XSZ4S77A.js.map} +2 -2
- package/dist/esm/chunks/chunk.Y4L7AVUS.js +7 -0
- package/dist/esm/chunks/{chunk.G77PXLAU.js.map → chunk.Y4L7AVUS.js.map} +2 -2
- package/dist/esm/chunks/chunk.Y5GQ2BA7.js +29 -0
- package/dist/esm/chunks/{chunk.OOBE3XRM.js.map → chunk.Y5GQ2BA7.js.map} +2 -2
- package/dist/esm/chunks/chunk.Y6FFG7XO.js +1 -1
- package/dist/esm/chunks/{chunk.HSJQA42U.js → chunk.YG2KLPHA.js} +3 -3
- package/dist/esm/chunks/{chunk.HSJQA42U.js.map → chunk.YG2KLPHA.js.map} +0 -0
- package/dist/esm/chunks/chunk.YONRMJU5.js +7 -0
- package/dist/esm/chunks/chunk.YONRMJU5.js.map +7 -0
- package/dist/esm/chunks/chunk.YWRCWMNO.js +7 -0
- package/dist/esm/chunks/{chunk.Y6MPWPZU.js.map → chunk.YWRCWMNO.js.map} +2 -2
- package/dist/esm/chunks/chunk.Z4MN5NB5.js +7 -0
- package/dist/esm/chunks/{chunk.4KBQ5AJJ.js.map → chunk.Z4MN5NB5.js.map} +2 -2
- package/dist/esm/chunks/chunk.Z6S62LZJ.js +7 -0
- package/dist/esm/chunks/chunk.Z6S62LZJ.js.map +7 -0
- package/dist/esm/chunks/chunk.ZAGCOV55.js +7 -0
- package/dist/esm/chunks/{chunk.J2ODMCFS.js.map → chunk.ZAGCOV55.js.map} +2 -2
- package/dist/esm/chunks/chunk.ZFD3OE45.js +7 -0
- package/dist/esm/chunks/{chunk.DIYJJHWP.js.map → chunk.ZFD3OE45.js.map} +1 -1
- package/dist/esm/chunks/chunk.ZMXKZJRM.js +7 -0
- package/dist/esm/chunks/{chunk.5XQVZQ4U.js.map → chunk.ZMXKZJRM.js.map} +2 -2
- package/dist/esm/chunks/{chunk.75KFBRF6.js → chunk.ZPBGKHHM.js} +3 -3
- package/dist/esm/chunks/chunk.ZPBGKHHM.js.map +7 -0
- package/dist/esm/circular-progress/index.js +2 -2
- package/dist/esm/color-picker/index.js +2 -2
- package/dist/esm/core/base/index.js +2 -2
- package/dist/esm/core/delegates/index.js +1 -1
- package/dist/esm/core/index.js +2 -2
- package/dist/esm/core/mask/index.js +2 -2
- package/dist/esm/core/utils/index.js +2 -2
- package/dist/esm/date-picker/index.js +2 -2
- package/dist/esm/date-range-picker/index.js +2 -2
- package/dist/esm/dialog/index.js +2 -2
- package/dist/esm/divider/index.js +2 -2
- package/dist/esm/drawer/base/index.js +2 -2
- package/dist/esm/drawer/drawer/index.js +2 -2
- package/dist/esm/drawer/index.js +2 -2
- package/dist/esm/drawer/mini-drawer/index.js +2 -2
- package/dist/esm/drawer/modal-drawer/index.js +2 -2
- package/dist/esm/expansion-panel/index.js +2 -2
- package/dist/esm/file-picker/index.js +2 -2
- package/dist/esm/floating-action-button/index.js +2 -2
- package/dist/esm/floating-label/index.js +1 -1
- package/dist/esm/icon/index.js +2 -2
- package/dist/esm/icon-button/index.js +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/inline-message/index.js +2 -2
- package/dist/esm/keyboard-shortcut/index.js +2 -2
- package/dist/esm/label-value/index.js +2 -2
- package/dist/esm/linear-progress/index.js +2 -2
- package/dist/esm/list/index.js +2 -2
- package/dist/esm/list/list/index.js +2 -2
- package/dist/esm/list/list-item/index.js +2 -2
- package/dist/esm/list-dropdown/index.js +2 -2
- package/dist/esm/menu/index.js +2 -2
- package/dist/esm/open-icon/index.js +2 -2
- package/dist/esm/page-state/index.js +2 -2
- package/dist/esm/paginator/index.js +2 -2
- package/dist/esm/popup/index.js +2 -2
- package/dist/esm/product-icon/index.js +2 -2
- package/dist/esm/profile-card/index.js +2 -2
- package/dist/esm/quantity-field/index.js +2 -2
- package/dist/esm/radio/index.js +2 -2
- package/dist/esm/ripple/index.js +2 -2
- package/dist/esm/scaffold/index.js +2 -2
- package/dist/esm/select/core/index.js +2 -2
- package/dist/esm/select/index.js +2 -2
- package/dist/esm/select/option/index.js +2 -2
- package/dist/esm/select/option-group/index.js +2 -2
- package/dist/esm/select/select/index.js +2 -2
- package/dist/esm/select/select-dropdown/index.js +2 -2
- package/dist/esm/skeleton/index.js +2 -2
- package/dist/esm/slider/index.js +2 -2
- package/dist/esm/split-view/core/index.js +1 -1
- package/dist/esm/split-view/index.js +2 -2
- package/dist/esm/split-view/split-view/index.js +2 -2
- package/dist/esm/split-view/split-view-panel/index.js +2 -2
- package/dist/esm/stepper/index.js +2 -2
- package/dist/esm/stepper/step/index.js +2 -2
- package/dist/esm/stepper/stepper/index.js +2 -2
- package/dist/esm/switch/index.js +2 -2
- package/dist/esm/table/index.js +2 -2
- package/dist/esm/tabs/index.js +2 -2
- package/dist/esm/tabs/tab/index.js +2 -2
- package/dist/esm/tabs/tab-bar/index.js +2 -2
- package/dist/esm/text-field/index.js +2 -2
- package/dist/esm/theme/index.js +1 -1
- package/dist/esm/time-picker/index.js +2 -2
- package/dist/esm/toast/index.js +2 -2
- package/dist/esm/toolbar/index.js +2 -2
- package/dist/esm/tooltip/index.js +2 -2
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/view-switcher/index.js +2 -2
- package/dist/esm/view-switcher/view/index.js +2 -2
- package/dist/expansion-panel/forge-expansion-panel.css +1 -1
- package/dist/floating-action-button/forge-floating-action-button.css +1 -1
- package/dist/floating-label/forge-floating-label.css +1 -1
- package/dist/forge-core.css +1 -1
- package/dist/forge-dark.css +1 -1
- package/dist/forge.css +1 -1
- package/dist/form-field/forge-form-field.css +1 -1
- package/dist/icon-button/forge-icon-button.css +1 -1
- package/dist/popup/forge-popup.css +1 -1
- package/dist/quantity-field/forge-quantity-field.css +1 -1
- package/dist/ripple/forge-ripple.css +1 -1
- package/dist/scaffold/forge-scaffold.css +1 -1
- package/dist/table/forge-table.css +1 -1
- package/dist/theme/forge-theme.css +1 -1
- package/dist/tooltip/forge-tooltip.css +1 -1
- package/dist/typography/forge-form.css +1 -1
- package/dist/typography/forge-typography.css +1 -1
- package/dist/utils/forge-flex.css +1 -1
- package/dist/utils/forge-grid.css +1 -1
- package/dist/utils/forge-utils.css +1 -1
- package/esm/accordion/accordion-adapter.d.ts +1 -1
- package/esm/accordion/accordion-adapter.js +1 -1
- package/esm/accordion/accordion-constants.d.ts +1 -1
- package/esm/accordion/accordion-constants.js +1 -1
- package/esm/accordion/accordion-foundation.d.ts +1 -1
- package/esm/accordion/accordion-foundation.js +1 -1
- package/esm/accordion/accordion.d.ts +1 -1
- package/esm/accordion/accordion.js +1 -1
- package/esm/accordion/index.d.ts +1 -1
- package/esm/accordion/index.js +1 -1
- package/esm/app-bar/app-bar-adapter.d.ts +1 -1
- package/esm/app-bar/app-bar-adapter.js +1 -1
- package/esm/app-bar/app-bar-constants.d.ts +1 -1
- package/esm/app-bar/app-bar-constants.js +1 -1
- package/esm/app-bar/app-bar-foundation.d.ts +1 -1
- package/esm/app-bar/app-bar-foundation.js +1 -1
- package/esm/app-bar/app-bar.d.ts +1 -1
- package/esm/app-bar/app-bar.js +1 -1
- package/esm/app-bar/help-button/app-bar-help-button-adapter.d.ts +1 -1
- package/esm/app-bar/help-button/app-bar-help-button-adapter.js +1 -1
- package/esm/app-bar/help-button/app-bar-help-button-constants.d.ts +1 -1
- package/esm/app-bar/help-button/app-bar-help-button-constants.js +1 -1
- package/esm/app-bar/help-button/app-bar-help-button-foundation.d.ts +1 -1
- package/esm/app-bar/help-button/app-bar-help-button-foundation.js +1 -1
- package/esm/app-bar/help-button/app-bar-help-button.d.ts +1 -1
- package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
- package/esm/app-bar/help-button/index.d.ts +1 -1
- package/esm/app-bar/help-button/index.js +1 -1
- package/esm/app-bar/index.d.ts +1 -1
- package/esm/app-bar/index.js +1 -1
- package/esm/app-bar/menu-button/app-bar-menu-button-constants.d.ts +1 -1
- package/esm/app-bar/menu-button/app-bar-menu-button-constants.js +1 -1
- package/esm/app-bar/menu-button/app-bar-menu-button.d.ts +1 -1
- package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
- package/esm/app-bar/menu-button/index.d.ts +1 -1
- package/esm/app-bar/menu-button/index.js +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-adapter.d.ts +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-constants.d.ts +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-constants.js +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-foundation.d.ts +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-foundation.js +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
- package/esm/app-bar/notification-button/index.d.ts +1 -1
- package/esm/app-bar/notification-button/index.js +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-constants.d.ts +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-foundation.d.ts +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
- package/esm/app-bar/profile-button/index.d.ts +1 -1
- package/esm/app-bar/profile-button/index.js +1 -1
- package/esm/app-bar/search/app-bar-search-adapter.d.ts +1 -1
- package/esm/app-bar/search/app-bar-search-adapter.js +1 -1
- package/esm/app-bar/search/app-bar-search-constants.d.ts +1 -1
- package/esm/app-bar/search/app-bar-search-constants.js +1 -1
- package/esm/app-bar/search/app-bar-search-foundation.d.ts +1 -1
- package/esm/app-bar/search/app-bar-search-foundation.js +1 -1
- package/esm/app-bar/search/app-bar-search.d.ts +1 -1
- package/esm/app-bar/search/app-bar-search.js +1 -1
- package/esm/app-bar/search/index.d.ts +1 -1
- package/esm/app-bar/search/index.js +1 -1
- package/esm/autocomplete/autocomplete-adapter.d.ts +1 -1
- package/esm/autocomplete/autocomplete-adapter.js +1 -1
- package/esm/autocomplete/autocomplete-component-delegate.d.ts +1 -1
- package/esm/autocomplete/autocomplete-component-delegate.js +1 -1
- package/esm/autocomplete/autocomplete-constants.d.ts +1 -1
- package/esm/autocomplete/autocomplete-constants.js +1 -1
- package/esm/autocomplete/autocomplete-foundation.d.ts +1 -1
- package/esm/autocomplete/autocomplete-foundation.js +1 -1
- package/esm/autocomplete/autocomplete-utils.d.ts +1 -1
- package/esm/autocomplete/autocomplete-utils.js +1 -1
- package/esm/autocomplete/autocomplete.d.ts +1 -1
- package/esm/autocomplete/autocomplete.js +1 -1
- package/esm/autocomplete/index.d.ts +1 -1
- package/esm/autocomplete/index.js +1 -1
- package/esm/avatar/avatar-adapter.d.ts +1 -1
- package/esm/avatar/avatar-adapter.js +1 -1
- package/esm/avatar/avatar-component-delegate.d.ts +1 -1
- package/esm/avatar/avatar-component-delegate.js +1 -1
- package/esm/avatar/avatar-constants.d.ts +1 -1
- package/esm/avatar/avatar-constants.js +1 -1
- package/esm/avatar/avatar-foundation.d.ts +1 -1
- package/esm/avatar/avatar-foundation.js +1 -1
- package/esm/avatar/avatar.d.ts +1 -1
- package/esm/avatar/avatar.js +1 -1
- package/esm/avatar/index.d.ts +1 -1
- package/esm/avatar/index.js +1 -1
- package/esm/backdrop/backdrop-adapter.d.ts +1 -1
- package/esm/backdrop/backdrop-adapter.js +1 -1
- package/esm/backdrop/backdrop-constants.d.ts +1 -1
- package/esm/backdrop/backdrop-constants.js +1 -1
- package/esm/backdrop/backdrop-foundation.d.ts +1 -1
- package/esm/backdrop/backdrop-foundation.js +1 -1
- package/esm/backdrop/backdrop.d.ts +1 -1
- package/esm/backdrop/backdrop.js +1 -1
- package/esm/backdrop/index.d.ts +1 -1
- package/esm/backdrop/index.js +1 -1
- package/esm/badge/badge-adapter.d.ts +1 -1
- package/esm/badge/badge-adapter.js +1 -1
- package/esm/badge/badge-component-delegate.d.ts +1 -1
- package/esm/badge/badge-component-delegate.js +1 -1
- package/esm/badge/badge-constants.d.ts +1 -1
- package/esm/badge/badge-constants.js +1 -1
- package/esm/badge/badge-foundation.d.ts +1 -1
- package/esm/badge/badge-foundation.js +1 -1
- package/esm/badge/badge.d.ts +1 -1
- package/esm/badge/badge.js +1 -1
- package/esm/badge/index.d.ts +1 -1
- package/esm/badge/index.js +1 -1
- package/esm/banner/banner-adapter.d.ts +1 -1
- package/esm/banner/banner-adapter.js +1 -1
- package/esm/banner/banner-constants.d.ts +1 -1
- package/esm/banner/banner-constants.js +1 -1
- package/esm/banner/banner-foundation.d.ts +1 -1
- package/esm/banner/banner-foundation.js +1 -1
- package/esm/banner/banner.d.ts +1 -1
- package/esm/banner/banner.js +1 -1
- package/esm/banner/index.d.ts +1 -1
- package/esm/banner/index.js +1 -1
- package/esm/bottom-sheet/bottom-sheet-adapter.d.ts +1 -1
- package/esm/bottom-sheet/bottom-sheet-adapter.js +1 -1
- package/esm/bottom-sheet/bottom-sheet-constants.d.ts +1 -1
- package/esm/bottom-sheet/bottom-sheet-constants.js +1 -1
- package/esm/bottom-sheet/bottom-sheet-foundation.d.ts +1 -1
- package/esm/bottom-sheet/bottom-sheet-foundation.js +1 -1
- package/esm/bottom-sheet/bottom-sheet.d.ts +1 -1
- package/esm/bottom-sheet/bottom-sheet.js +1 -1
- package/esm/bottom-sheet/index.d.ts +1 -1
- package/esm/bottom-sheet/index.js +1 -1
- package/esm/busy-indicator/busy-indicator-adapter.d.ts +1 -1
- package/esm/busy-indicator/busy-indicator-adapter.js +1 -1
- package/esm/busy-indicator/busy-indicator-constants.d.ts +1 -1
- package/esm/busy-indicator/busy-indicator-constants.js +1 -1
- package/esm/busy-indicator/busy-indicator-foundation.d.ts +1 -1
- package/esm/busy-indicator/busy-indicator-foundation.js +1 -1
- package/esm/busy-indicator/busy-indicator.d.ts +1 -1
- package/esm/busy-indicator/busy-indicator.js +1 -1
- package/esm/busy-indicator/index.d.ts +1 -1
- package/esm/busy-indicator/index.js +1 -1
- package/esm/button/button-component-delegate.d.ts +1 -1
- package/esm/button/button-component-delegate.js +1 -1
- package/esm/button/button-constants.d.ts +1 -1
- package/esm/button/button-constants.js +1 -1
- package/esm/button/button.d.ts +1 -1
- package/esm/button/button.js +2 -2
- package/esm/button/index.d.ts +1 -1
- package/esm/button/index.js +1 -1
- package/esm/button-toggle/button-toggle/button-toggle-adapter.d.ts +1 -1
- package/esm/button-toggle/button-toggle/button-toggle-adapter.js +1 -1
- package/esm/button-toggle/button-toggle/button-toggle-constants.d.ts +1 -1
- package/esm/button-toggle/button-toggle/button-toggle-constants.js +1 -1
- package/esm/button-toggle/button-toggle/button-toggle-foundation.d.ts +1 -1
- package/esm/button-toggle/button-toggle/button-toggle-foundation.js +1 -1
- package/esm/button-toggle/button-toggle/button-toggle.d.ts +1 -1
- package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
- package/esm/button-toggle/button-toggle/index.d.ts +1 -1
- package/esm/button-toggle/button-toggle/index.js +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.d.ts +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.js +23 -9
- package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.d.ts +4 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.js +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.d.ts +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.js +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group.js +1 -1
- package/esm/button-toggle/button-toggle-group/index.d.ts +1 -1
- package/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/esm/button-toggle/index.d.ts +1 -1
- package/esm/button-toggle/index.js +1 -1
- package/esm/calendar/calendar-adapter.d.ts +1 -1
- package/esm/calendar/calendar-adapter.js +1 -1
- package/esm/calendar/calendar-component-delegate.d.ts +1 -1
- package/esm/calendar/calendar-component-delegate.js +1 -1
- package/esm/calendar/calendar-constants.d.ts +1 -1
- package/esm/calendar/calendar-constants.js +1 -1
- package/esm/calendar/calendar-dom-utils.d.ts +1 -1
- package/esm/calendar/calendar-dom-utils.js +1 -1
- package/esm/calendar/calendar-dropdown/calendar-dropdown-constants.d.ts +1 -1
- package/esm/calendar/calendar-dropdown/calendar-dropdown-constants.js +1 -1
- package/esm/calendar/calendar-dropdown/calendar-dropdown.d.ts +1 -1
- package/esm/calendar/calendar-dropdown/calendar-dropdown.js +1 -1
- package/esm/calendar/calendar-dropdown/index.d.ts +1 -1
- package/esm/calendar/calendar-dropdown/index.js +1 -1
- package/esm/calendar/calendar-foundation.d.ts +1 -1
- package/esm/calendar/calendar-foundation.js +1 -1
- package/esm/calendar/calendar-locale-utils.d.ts +1 -1
- package/esm/calendar/calendar-locale-utils.js +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-adapter.d.ts +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-adapter.js +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-constants.d.ts +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-constants.js +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-foundation.d.ts +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-foundation.js +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-utils.d.ts +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-utils.js +1 -1
- package/esm/calendar/calendar-menu/calendar-menu.d.ts +1 -1
- package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
- package/esm/calendar/calendar-menu/index.d.ts +1 -1
- package/esm/calendar/calendar-menu/index.js +1 -1
- package/esm/calendar/calendar-utils.d.ts +1 -1
- package/esm/calendar/calendar-utils.js +1 -1
- package/esm/calendar/calendar.d.ts +1 -1
- package/esm/calendar/calendar.js +1 -1
- package/esm/calendar/core/calendar-base.d.ts +1 -1
- package/esm/calendar/core/calendar-base.js +1 -1
- package/esm/calendar/core/date-range.d.ts +1 -1
- package/esm/calendar/core/date-range.js +1 -1
- package/esm/calendar/core/index.d.ts +1 -1
- package/esm/calendar/core/index.js +1 -1
- package/esm/calendar/index.d.ts +1 -1
- package/esm/calendar/index.js +1 -1
- package/esm/card/card-constants.d.ts +1 -1
- package/esm/card/card-constants.js +1 -1
- package/esm/card/card.d.ts +1 -1
- package/esm/card/card.js +1 -1
- package/esm/card/index.d.ts +1 -1
- package/esm/card/index.js +1 -1
- package/esm/checkbox/checkbox-adapter.d.ts +1 -1
- package/esm/checkbox/checkbox-adapter.js +1 -1
- package/esm/checkbox/checkbox-component-delegate.d.ts +1 -1
- package/esm/checkbox/checkbox-component-delegate.js +1 -1
- package/esm/checkbox/checkbox-constants.d.ts +1 -1
- package/esm/checkbox/checkbox-constants.js +1 -1
- package/esm/checkbox/checkbox-foundation.d.ts +1 -1
- package/esm/checkbox/checkbox-foundation.js +1 -1
- package/esm/checkbox/checkbox.d.ts +1 -1
- package/esm/checkbox/checkbox.js +1 -1
- package/esm/checkbox/index.d.ts +1 -1
- package/esm/checkbox/index.js +1 -1
- package/esm/chip-field/chip-field-adapter.d.ts +1 -1
- package/esm/chip-field/chip-field-adapter.js +1 -1
- package/esm/chip-field/chip-field-component-delegate.d.ts +1 -1
- package/esm/chip-field/chip-field-component-delegate.js +1 -1
- package/esm/chip-field/chip-field-constants.d.ts +2 -2
- package/esm/chip-field/chip-field-constants.js +1 -1
- package/esm/chip-field/chip-field-foundation.d.ts +1 -1
- package/esm/chip-field/chip-field-foundation.js +1 -1
- package/esm/chip-field/chip-field.d.ts +1 -1
- package/esm/chip-field/chip-field.js +1 -1
- package/esm/chip-field/index.d.ts +1 -1
- package/esm/chip-field/index.js +1 -1
- package/esm/chips/chip/chip-adapter.d.ts +1 -1
- package/esm/chips/chip/chip-adapter.js +1 -1
- package/esm/chips/chip/chip-constants.d.ts +1 -1
- package/esm/chips/chip/chip-constants.js +1 -1
- package/esm/chips/chip/chip-foundation.d.ts +1 -1
- package/esm/chips/chip/chip-foundation.js +1 -1
- package/esm/chips/chip/chip.d.ts +1 -1
- package/esm/chips/chip/chip.js +1 -1
- package/esm/chips/chip/index.d.ts +1 -1
- package/esm/chips/chip/index.js +1 -1
- package/esm/chips/chip-set/chip-set-adapter.d.ts +1 -1
- package/esm/chips/chip-set/chip-set-adapter.js +1 -1
- package/esm/chips/chip-set/chip-set-constants.d.ts +1 -1
- package/esm/chips/chip-set/chip-set-constants.js +1 -1
- package/esm/chips/chip-set/chip-set-foundation.d.ts +1 -1
- package/esm/chips/chip-set/chip-set-foundation.js +1 -1
- package/esm/chips/chip-set/chip-set.d.ts +1 -1
- package/esm/chips/chip-set/chip-set.js +1 -1
- package/esm/chips/chip-set/index.d.ts +1 -1
- package/esm/chips/chip-set/index.js +1 -1
- package/esm/chips/index.d.ts +1 -1
- package/esm/chips/index.js +1 -1
- package/esm/circular-progress/circular-progress-adapter.d.ts +1 -1
- package/esm/circular-progress/circular-progress-adapter.js +1 -1
- package/esm/circular-progress/circular-progress-constants.d.ts +1 -1
- package/esm/circular-progress/circular-progress-constants.js +1 -1
- package/esm/circular-progress/circular-progress-foundation.d.ts +1 -1
- package/esm/circular-progress/circular-progress-foundation.js +1 -1
- package/esm/circular-progress/circular-progress.d.ts +1 -1
- package/esm/circular-progress/circular-progress.js +1 -1
- package/esm/circular-progress/index.d.ts +1 -1
- package/esm/circular-progress/index.js +1 -1
- package/esm/color-picker/color-picker-adapter.d.ts +1 -1
- package/esm/color-picker/color-picker-adapter.js +1 -1
- package/esm/color-picker/color-picker-constants.d.ts +1 -1
- package/esm/color-picker/color-picker-constants.js +1 -1
- package/esm/color-picker/color-picker-foundation.d.ts +1 -1
- package/esm/color-picker/color-picker-foundation.js +1 -1
- package/esm/color-picker/color-picker-gradient-slider.d.ts +1 -1
- package/esm/color-picker/color-picker-gradient-slider.js +1 -1
- package/esm/color-picker/color-picker-slider.d.ts +1 -1
- package/esm/color-picker/color-picker-slider.js +1 -1
- package/esm/color-picker/color-picker-utils.d.ts +1 -1
- package/esm/color-picker/color-picker-utils.js +1 -1
- package/esm/color-picker/color-picker.d.ts +1 -1
- package/esm/color-picker/color-picker.js +1 -1
- package/esm/color-picker/index.d.ts +1 -1
- package/esm/color-picker/index.js +1 -1
- package/esm/constants.d.ts +1 -1
- package/esm/constants.js +1 -1
- package/esm/core/base/base-adapter.d.ts +1 -1
- package/esm/core/base/base-adapter.js +1 -1
- package/esm/core/base/base-component.d.ts +1 -1
- package/esm/core/base/base-component.js +1 -1
- package/esm/core/base/index.d.ts +1 -1
- package/esm/core/base/index.js +1 -1
- package/esm/core/delegates/base-component-delegate.d.ts +1 -1
- package/esm/core/delegates/base-component-delegate.js +1 -1
- package/esm/core/delegates/form-field-component-delegate.d.ts +1 -1
- package/esm/core/delegates/form-field-component-delegate.js +1 -1
- package/esm/core/delegates/index.d.ts +1 -1
- package/esm/core/delegates/index.js +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/mask/date-input-mask.d.ts +1 -1
- package/esm/core/mask/date-input-mask.js +1 -1
- package/esm/core/mask/index.d.ts +1 -1
- package/esm/core/mask/index.js +1 -1
- package/esm/core/mask/time-input-mask.d.ts +1 -1
- package/esm/core/mask/time-input-mask.js +1 -1
- package/esm/core/utils/date-utils.d.ts +1 -1
- package/esm/core/utils/date-utils.js +1 -1
- package/esm/core/utils/event-utils.d.ts +1 -1
- package/esm/core/utils/event-utils.js +1 -1
- package/esm/core/utils/index.d.ts +1 -1
- package/esm/core/utils/index.js +1 -1
- package/esm/core/utils/svg-utils.d.ts +1 -1
- package/esm/core/utils/svg-utils.js +1 -1
- package/esm/core/utils/time-utils.d.ts +1 -1
- package/esm/core/utils/time-utils.js +1 -1
- package/esm/core/utils/utils.d.ts +1 -1
- package/esm/core/utils/utils.js +1 -1
- package/esm/date-picker/base/base-date-picker-adapter.d.ts +1 -1
- package/esm/date-picker/base/base-date-picker-adapter.js +1 -1
- package/esm/date-picker/base/base-date-picker-constants.d.ts +1 -1
- package/esm/date-picker/base/base-date-picker-constants.js +1 -1
- package/esm/date-picker/base/base-date-picker-foundation.d.ts +1 -1
- package/esm/date-picker/base/base-date-picker-foundation.js +1 -1
- package/esm/date-picker/base/base-date-picker-utils.d.ts +1 -1
- package/esm/date-picker/base/base-date-picker-utils.js +1 -1
- package/esm/date-picker/base/base-date-picker.d.ts +1 -1
- package/esm/date-picker/base/base-date-picker.js +1 -1
- package/esm/date-picker/date-picker-adapter.d.ts +1 -1
- package/esm/date-picker/date-picker-adapter.js +1 -1
- package/esm/date-picker/date-picker-component-delegate.d.ts +1 -1
- package/esm/date-picker/date-picker-component-delegate.js +1 -1
- package/esm/date-picker/date-picker-constants.d.ts +1 -1
- package/esm/date-picker/date-picker-constants.js +1 -1
- package/esm/date-picker/date-picker-foundation.d.ts +1 -1
- package/esm/date-picker/date-picker-foundation.js +1 -1
- package/esm/date-picker/date-picker.d.ts +1 -1
- package/esm/date-picker/date-picker.js +1 -1
- package/esm/date-picker/index.d.ts +1 -1
- package/esm/date-picker/index.js +1 -1
- package/esm/date-range-picker/date-range-picker-adapter.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker-adapter.js +1 -1
- package/esm/date-range-picker/date-range-picker-component-delegate.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker-component-delegate.js +1 -1
- package/esm/date-range-picker/date-range-picker-constants.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker-constants.js +1 -1
- package/esm/date-range-picker/date-range-picker-foundation.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker-foundation.js +1 -1
- package/esm/date-range-picker/date-range-picker.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker.js +7 -7
- package/esm/date-range-picker/index.d.ts +1 -1
- package/esm/date-range-picker/index.js +1 -1
- package/esm/dialog/dialog-adapter.d.ts +1 -1
- package/esm/dialog/dialog-adapter.js +1 -1
- package/esm/dialog/dialog-constants.d.ts +1 -1
- package/esm/dialog/dialog-constants.js +1 -1
- package/esm/dialog/dialog-foundation.d.ts +1 -1
- package/esm/dialog/dialog-foundation.js +3 -2
- package/esm/dialog/dialog.d.ts +1 -1
- package/esm/dialog/dialog.js +1 -1
- package/esm/dialog/index.d.ts +1 -1
- package/esm/dialog/index.js +1 -1
- package/esm/divider/divider-constants.d.ts +1 -1
- package/esm/divider/divider-constants.js +1 -1
- package/esm/divider/divider.d.ts +1 -1
- package/esm/divider/divider.js +1 -1
- package/esm/divider/index.d.ts +1 -1
- package/esm/divider/index.js +1 -1
- package/esm/drawer/base/base-drawer-adapter.d.ts +1 -1
- package/esm/drawer/base/base-drawer-adapter.js +1 -1
- package/esm/drawer/base/base-drawer-constants.d.ts +1 -1
- package/esm/drawer/base/base-drawer-constants.js +1 -1
- package/esm/drawer/base/base-drawer-foundation.d.ts +1 -1
- package/esm/drawer/base/base-drawer-foundation.js +1 -1
- package/esm/drawer/base/base-drawer.d.ts +1 -1
- package/esm/drawer/base/base-drawer.js +4 -4
- package/esm/drawer/base/index.d.ts +1 -1
- package/esm/drawer/base/index.js +1 -1
- package/esm/drawer/drawer/drawer-constants.d.ts +1 -1
- package/esm/drawer/drawer/drawer-constants.js +1 -1
- package/esm/drawer/drawer/drawer.d.ts +1 -1
- package/esm/drawer/drawer/drawer.js +1 -1
- package/esm/drawer/drawer/index.d.ts +1 -1
- package/esm/drawer/drawer/index.js +1 -1
- package/esm/drawer/index.d.ts +1 -1
- package/esm/drawer/index.js +1 -1
- package/esm/drawer/mini-drawer/index.d.ts +1 -1
- package/esm/drawer/mini-drawer/index.js +1 -1
- package/esm/drawer/mini-drawer/mini-drawer-constants.d.ts +1 -1
- package/esm/drawer/mini-drawer/mini-drawer-constants.js +1 -1
- package/esm/drawer/mini-drawer/mini-drawer.d.ts +1 -1
- package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
- package/esm/drawer/modal-drawer/index.d.ts +1 -1
- package/esm/drawer/modal-drawer/index.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer-adapter.d.ts +1 -1
- package/esm/drawer/modal-drawer/modal-drawer-adapter.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer-constants.d.ts +1 -1
- package/esm/drawer/modal-drawer/modal-drawer-constants.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer-foundation.d.ts +1 -1
- package/esm/drawer/modal-drawer/modal-drawer-foundation.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer.d.ts +1 -1
- package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
- package/esm/expansion-panel/expansion-panel-adapter.d.ts +1 -1
- package/esm/expansion-panel/expansion-panel-adapter.js +1 -1
- package/esm/expansion-panel/expansion-panel-constants.d.ts +1 -1
- package/esm/expansion-panel/expansion-panel-constants.js +1 -1
- package/esm/expansion-panel/expansion-panel-foundation.d.ts +1 -1
- package/esm/expansion-panel/expansion-panel-foundation.js +1 -1
- package/esm/expansion-panel/expansion-panel.d.ts +1 -1
- package/esm/expansion-panel/expansion-panel.js +1 -1
- package/esm/expansion-panel/index.d.ts +1 -1
- package/esm/expansion-panel/index.js +1 -1
- package/esm/field/field-adapter.d.ts +1 -1
- package/esm/field/field-adapter.js +1 -1
- package/esm/field/field-constants.d.ts +1 -1
- package/esm/field/field-constants.js +1 -1
- package/esm/field/field-foundation.d.ts +1 -1
- package/esm/field/field-foundation.js +1 -1
- package/esm/field/field.d.ts +1 -1
- package/esm/field/field.js +1 -1
- package/esm/file-picker/file-picker-adapter.d.ts +1 -1
- package/esm/file-picker/file-picker-adapter.js +1 -1
- package/esm/file-picker/file-picker-component-delegate.d.ts +1 -1
- package/esm/file-picker/file-picker-component-delegate.js +1 -1
- package/esm/file-picker/file-picker-constants.d.ts +1 -1
- package/esm/file-picker/file-picker-constants.js +1 -1
- package/esm/file-picker/file-picker-foundation.d.ts +1 -1
- package/esm/file-picker/file-picker-foundation.js +1 -1
- package/esm/file-picker/file-picker.d.ts +1 -1
- package/esm/file-picker/file-picker.js +1 -1
- package/esm/file-picker/index.d.ts +1 -1
- package/esm/file-picker/index.js +1 -1
- package/esm/floating-action-button/floating-action-button-component-delegate.d.ts +1 -1
- package/esm/floating-action-button/floating-action-button-component-delegate.js +1 -1
- package/esm/floating-action-button/floating-action-button-constants.d.ts +1 -1
- package/esm/floating-action-button/floating-action-button-constants.js +1 -1
- package/esm/floating-action-button/floating-action-button.d.ts +1 -1
- package/esm/floating-action-button/floating-action-button.js +1 -1
- package/esm/floating-action-button/index.d.ts +1 -1
- package/esm/floating-action-button/index.js +1 -1
- package/esm/floating-label/floating-label-adapter.d.ts +1 -1
- package/esm/floating-label/floating-label-adapter.js +1 -1
- package/esm/floating-label/floating-label-constants.d.ts +1 -1
- package/esm/floating-label/floating-label-constants.js +1 -1
- package/esm/floating-label/floating-label-foundation.d.ts +1 -1
- package/esm/floating-label/floating-label-foundation.js +1 -1
- package/esm/floating-label/floating-label.d.ts +1 -1
- package/esm/floating-label/floating-label.js +1 -1
- package/esm/floating-label/index.d.ts +1 -1
- package/esm/floating-label/index.js +1 -1
- package/esm/icon/icon-adapter.d.ts +1 -1
- package/esm/icon/icon-adapter.js +1 -1
- package/esm/icon/icon-component-delegate.d.ts +1 -1
- package/esm/icon/icon-component-delegate.js +1 -1
- package/esm/icon/icon-constants.d.ts +1 -1
- package/esm/icon/icon-constants.js +1 -1
- package/esm/icon/icon-foundation.d.ts +1 -1
- package/esm/icon/icon-foundation.js +1 -1
- package/esm/icon/icon-registry.d.ts +1 -1
- package/esm/icon/icon-registry.js +1 -1
- package/esm/icon/icon-utils.d.ts +1 -1
- package/esm/icon/icon-utils.js +1 -1
- package/esm/icon/icon.d.ts +1 -1
- package/esm/icon/icon.js +1 -1
- package/esm/icon/index.d.ts +1 -1
- package/esm/icon/index.js +1 -1
- package/esm/icon-button/icon-button-component-delegate.d.ts +1 -1
- package/esm/icon-button/icon-button-component-delegate.js +1 -1
- package/esm/icon-button/icon-button-constants.d.ts +1 -1
- package/esm/icon-button/icon-button-constants.js +1 -1
- package/esm/icon-button/icon-button.d.ts +1 -1
- package/esm/icon-button/icon-button.js +1 -1
- package/esm/icon-button/index.d.ts +1 -1
- package/esm/icon-button/index.js +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/inline-message/index.d.ts +1 -1
- package/esm/inline-message/index.js +1 -1
- package/esm/inline-message/inline-message-constants.d.ts +1 -1
- package/esm/inline-message/inline-message-constants.js +1 -1
- package/esm/inline-message/inline-message.d.ts +1 -1
- package/esm/inline-message/inline-message.js +1 -1
- package/esm/keyboard-shortcut/index.d.ts +1 -1
- package/esm/keyboard-shortcut/index.js +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-adapter.d.ts +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-adapter.js +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-constants.js +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-utils.d.ts +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-utils.js +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -1
- package/esm/keyboard-shortcut/keyboard-shortcut.js +1 -1
- package/esm/label-value/index.d.ts +1 -1
- package/esm/label-value/index.js +1 -1
- package/esm/label-value/label-value-adapter.d.ts +1 -1
- package/esm/label-value/label-value-adapter.js +1 -1
- package/esm/label-value/label-value-component-delegate.d.ts +1 -1
- package/esm/label-value/label-value-component-delegate.js +1 -1
- package/esm/label-value/label-value-constants.d.ts +2 -2
- package/esm/label-value/label-value-constants.js +1 -1
- package/esm/label-value/label-value-foundation.d.ts +1 -1
- package/esm/label-value/label-value-foundation.js +1 -1
- package/esm/label-value/label-value.d.ts +1 -1
- package/esm/label-value/label-value.js +1 -1
- package/esm/linear-progress/index.d.ts +1 -1
- package/esm/linear-progress/index.js +1 -1
- package/esm/linear-progress/linear-progress-constants.d.ts +1 -1
- package/esm/linear-progress/linear-progress-constants.js +1 -1
- package/esm/linear-progress/linear-progress.d.ts +1 -1
- package/esm/linear-progress/linear-progress.js +1 -1
- package/esm/list/index.d.ts +1 -1
- package/esm/list/index.js +1 -1
- package/esm/list/list/index.d.ts +1 -1
- package/esm/list/list/index.js +1 -1
- package/esm/list/list/list-adapter.d.ts +1 -1
- package/esm/list/list/list-adapter.js +1 -1
- package/esm/list/list/list-constants.d.ts +1 -1
- package/esm/list/list/list-constants.js +1 -1
- package/esm/list/list/list-foundation.d.ts +1 -1
- package/esm/list/list/list-foundation.js +1 -1
- package/esm/list/list/list.d.ts +1 -1
- package/esm/list/list/list.js +1 -1
- package/esm/list/list-item/index.d.ts +1 -1
- package/esm/list/list-item/index.js +1 -1
- package/esm/list/list-item/list-item-adapter.d.ts +4 -1
- package/esm/list/list-item/list-item-adapter.js +5 -1
- package/esm/list/list-item/list-item-constants.d.ts +1 -1
- package/esm/list/list-item/list-item-constants.js +1 -1
- package/esm/list/list-item/list-item-foundation.d.ts +1 -1
- package/esm/list/list-item/list-item-foundation.js +10 -3
- package/esm/list/list-item/list-item.d.ts +1 -1
- package/esm/list/list-item/list-item.js +1 -1
- package/esm/list-dropdown/cascading-list-dropdown-aware-foundation.d.ts +1 -1
- package/esm/list-dropdown/cascading-list-dropdown-aware-foundation.js +1 -1
- package/esm/list-dropdown/index.d.ts +1 -1
- package/esm/list-dropdown/index.js +1 -1
- package/esm/list-dropdown/list-dropdown-adapter.d.ts +1 -1
- package/esm/list-dropdown/list-dropdown-adapter.js +1 -1
- package/esm/list-dropdown/list-dropdown-aware-foundation.d.ts +1 -1
- package/esm/list-dropdown/list-dropdown-aware-foundation.js +1 -1
- package/esm/list-dropdown/list-dropdown-aware.d.ts +1 -1
- package/esm/list-dropdown/list-dropdown-aware.js +1 -1
- package/esm/list-dropdown/list-dropdown-constants.d.ts +1 -1
- package/esm/list-dropdown/list-dropdown-constants.js +1 -1
- package/esm/list-dropdown/list-dropdown-foundation.d.ts +1 -1
- package/esm/list-dropdown/list-dropdown-foundation.js +2 -1
- package/esm/list-dropdown/list-dropdown-utils.d.ts +1 -1
- package/esm/list-dropdown/list-dropdown-utils.js +1 -1
- package/esm/list-dropdown/list-dropdown.d.ts +1 -1
- package/esm/list-dropdown/list-dropdown.js +1 -1
- package/esm/menu/index.d.ts +1 -1
- package/esm/menu/index.js +1 -1
- package/esm/menu/menu-adapter.d.ts +1 -1
- package/esm/menu/menu-adapter.js +1 -1
- package/esm/menu/menu-constants.d.ts +1 -1
- package/esm/menu/menu-constants.js +1 -1
- package/esm/menu/menu-foundation.d.ts +1 -1
- package/esm/menu/menu-foundation.js +1 -1
- package/esm/menu/menu.d.ts +1 -1
- package/esm/menu/menu.js +1 -1
- package/esm/open-icon/index.d.ts +1 -1
- package/esm/open-icon/index.js +1 -1
- package/esm/open-icon/open-icon-adapter.d.ts +1 -1
- package/esm/open-icon/open-icon-adapter.js +1 -1
- package/esm/open-icon/open-icon-constants.d.ts +1 -1
- package/esm/open-icon/open-icon-constants.js +1 -1
- package/esm/open-icon/open-icon-foundation.d.ts +1 -1
- package/esm/open-icon/open-icon-foundation.js +1 -1
- package/esm/open-icon/open-icon.d.ts +1 -1
- package/esm/open-icon/open-icon.js +1 -1
- package/esm/page-state/index.d.ts +1 -1
- package/esm/page-state/index.js +1 -1
- package/esm/page-state/page-state-constants.d.ts +1 -1
- package/esm/page-state/page-state-constants.js +1 -1
- package/esm/page-state/page-state.d.ts +1 -1
- package/esm/page-state/page-state.js +1 -1
- package/esm/paginator/index.d.ts +1 -1
- package/esm/paginator/index.js +1 -1
- package/esm/paginator/paginator-adapter.d.ts +1 -1
- package/esm/paginator/paginator-adapter.js +1 -1
- package/esm/paginator/paginator-constants.d.ts +1 -1
- package/esm/paginator/paginator-constants.js +1 -1
- package/esm/paginator/paginator-foundation.d.ts +1 -1
- package/esm/paginator/paginator-foundation.js +1 -1
- package/esm/paginator/paginator.d.ts +1 -1
- package/esm/paginator/paginator.js +1 -1
- package/esm/popup/index.d.ts +1 -1
- package/esm/popup/index.js +1 -1
- package/esm/popup/popup-adapter.d.ts +1 -1
- package/esm/popup/popup-adapter.js +1 -1
- package/esm/popup/popup-constants.d.ts +1 -1
- package/esm/popup/popup-constants.js +1 -1
- package/esm/popup/popup-foundation.d.ts +1 -1
- package/esm/popup/popup-foundation.js +1 -1
- package/esm/popup/popup.d.ts +1 -1
- package/esm/popup/popup.js +1 -1
- package/esm/product-icon/index.d.ts +1 -1
- package/esm/product-icon/index.js +1 -1
- package/esm/product-icon/product-icon-adapter.d.ts +1 -1
- package/esm/product-icon/product-icon-adapter.js +1 -1
- package/esm/product-icon/product-icon-constants.d.ts +1 -1
- package/esm/product-icon/product-icon-constants.js +1 -1
- package/esm/product-icon/product-icon-foundation.d.ts +1 -1
- package/esm/product-icon/product-icon-foundation.js +1 -1
- package/esm/product-icon/product-icon.d.ts +1 -1
- package/esm/product-icon/product-icon.js +1 -1
- package/esm/profile-card/index.d.ts +1 -1
- package/esm/profile-card/index.js +1 -1
- package/esm/profile-card/profile-card-adapter.d.ts +1 -1
- package/esm/profile-card/profile-card-adapter.js +1 -1
- package/esm/profile-card/profile-card-constants.d.ts +1 -1
- package/esm/profile-card/profile-card-constants.js +1 -1
- package/esm/profile-card/profile-card-foundation.d.ts +1 -1
- package/esm/profile-card/profile-card-foundation.js +1 -1
- package/esm/profile-card/profile-card.d.ts +1 -1
- package/esm/profile-card/profile-card.js +1 -1
- package/esm/quantity-field/index.d.ts +1 -1
- package/esm/quantity-field/index.js +1 -1
- package/esm/quantity-field/quantity-field-adapter.d.ts +1 -1
- package/esm/quantity-field/quantity-field-adapter.js +1 -1
- package/esm/quantity-field/quantity-field-component-delegate.d.ts +1 -1
- package/esm/quantity-field/quantity-field-component-delegate.js +1 -1
- package/esm/quantity-field/quantity-field-constants.d.ts +1 -1
- package/esm/quantity-field/quantity-field-constants.js +1 -1
- package/esm/quantity-field/quantity-field-foundation.d.ts +1 -1
- package/esm/quantity-field/quantity-field-foundation.js +1 -1
- package/esm/quantity-field/quantity-field.d.ts +1 -1
- package/esm/quantity-field/quantity-field.js +1 -1
- package/esm/radio/index.d.ts +1 -1
- package/esm/radio/index.js +1 -1
- package/esm/radio/radio-adapter.d.ts +1 -1
- package/esm/radio/radio-adapter.js +1 -1
- package/esm/radio/radio-constants.d.ts +1 -1
- package/esm/radio/radio-constants.js +1 -1
- package/esm/radio/radio-foundation.d.ts +1 -1
- package/esm/radio/radio-foundation.js +1 -1
- package/esm/radio/radio.d.ts +1 -1
- package/esm/radio/radio.js +1 -1
- package/esm/ripple/forge-ripple.d.ts +2 -2
- package/esm/ripple/forge-ripple.js +1 -1
- package/esm/ripple/index.d.ts +1 -1
- package/esm/ripple/index.js +1 -1
- package/esm/ripple/ripple-adapter.d.ts +1 -1
- package/esm/ripple/ripple-adapter.js +1 -1
- package/esm/ripple/ripple-constants.d.ts +1 -1
- package/esm/ripple/ripple-constants.js +1 -1
- package/esm/ripple/ripple-foundation.d.ts +1 -1
- package/esm/ripple/ripple-foundation.js +1 -1
- package/esm/ripple/ripple.d.ts +3 -3
- package/esm/ripple/ripple.js +3 -2
- package/esm/scaffold/index.d.ts +1 -1
- package/esm/scaffold/index.js +1 -1
- package/esm/scaffold/scaffold-constants.d.ts +1 -1
- package/esm/scaffold/scaffold-constants.js +1 -1
- package/esm/scaffold/scaffold.d.ts +1 -1
- package/esm/scaffold/scaffold.js +1 -1
- package/esm/select/core/base-select-adapter.d.ts +1 -1
- package/esm/select/core/base-select-adapter.js +1 -1
- package/esm/select/core/base-select-constants.d.ts +1 -1
- package/esm/select/core/base-select-constants.js +1 -1
- package/esm/select/core/base-select-foundation.d.ts +1 -1
- package/esm/select/core/base-select-foundation.js +1 -1
- package/esm/select/core/base-select.d.ts +1 -1
- package/esm/select/core/base-select.js +1 -1
- package/esm/select/core/index.d.ts +1 -1
- package/esm/select/core/index.js +1 -1
- package/esm/select/core/select-utils.d.ts +1 -1
- package/esm/select/core/select-utils.js +1 -1
- package/esm/select/index.d.ts +1 -1
- package/esm/select/index.js +1 -1
- package/esm/select/option/index.d.ts +1 -1
- package/esm/select/option/index.js +1 -1
- package/esm/select/option/option-adapter.d.ts +1 -1
- package/esm/select/option/option-adapter.js +1 -1
- package/esm/select/option/option-constants.d.ts +1 -1
- package/esm/select/option/option-constants.js +1 -1
- package/esm/select/option/option-foundation.d.ts +1 -1
- package/esm/select/option/option-foundation.js +1 -1
- package/esm/select/option/option.d.ts +1 -1
- package/esm/select/option/option.js +1 -1
- package/esm/select/option-group/index.d.ts +1 -1
- package/esm/select/option-group/index.js +1 -1
- package/esm/select/option-group/option-group-constants.d.ts +1 -1
- package/esm/select/option-group/option-group-constants.js +1 -1
- package/esm/select/option-group/option-group.d.ts +1 -1
- package/esm/select/option-group/option-group.js +1 -1
- package/esm/select/select/index.d.ts +1 -1
- package/esm/select/select/index.js +1 -1
- package/esm/select/select/select-adapter.d.ts +1 -1
- package/esm/select/select/select-adapter.js +1 -1
- package/esm/select/select/select-constants.d.ts +2 -2
- package/esm/select/select/select-constants.js +1 -1
- package/esm/select/select/select-foundation.d.ts +1 -1
- package/esm/select/select/select-foundation.js +1 -1
- package/esm/select/select/select.d.ts +1 -1
- package/esm/select/select/select.js +7 -7
- package/esm/select/select-component-delegate.d.ts +1 -1
- package/esm/select/select-component-delegate.js +1 -1
- package/esm/select/select-dropdown/index.d.ts +1 -1
- package/esm/select/select-dropdown/index.js +1 -1
- package/esm/select/select-dropdown/select-dropdown-adapter.d.ts +1 -1
- package/esm/select/select-dropdown/select-dropdown-adapter.js +1 -1
- package/esm/select/select-dropdown/select-dropdown-constants.d.ts +1 -1
- package/esm/select/select-dropdown/select-dropdown-constants.js +1 -1
- package/esm/select/select-dropdown/select-dropdown-foundation.d.ts +1 -1
- package/esm/select/select-dropdown/select-dropdown-foundation.js +1 -1
- package/esm/select/select-dropdown/select-dropdown.d.ts +1 -1
- package/esm/select/select-dropdown/select-dropdown.js +6 -6
- package/esm/skeleton/index.d.ts +1 -1
- package/esm/skeleton/index.js +1 -1
- package/esm/skeleton/skeleton-constants.d.ts +1 -1
- package/esm/skeleton/skeleton-constants.js +1 -1
- package/esm/skeleton/skeleton.d.ts +1 -1
- package/esm/skeleton/skeleton.js +1 -1
- package/esm/slider/index.d.ts +1 -1
- package/esm/slider/index.js +1 -1
- package/esm/slider/slider-component-delegate.d.ts +1 -1
- package/esm/slider/slider-component-delegate.js +1 -1
- package/esm/slider/slider-constants.d.ts +1 -1
- package/esm/slider/slider-constants.js +1 -1
- package/esm/slider/slider.d.ts +1 -1
- package/esm/slider/slider.js +1 -1
- package/esm/split-view/core/index.d.ts +1 -1
- package/esm/split-view/core/index.js +1 -1
- package/esm/split-view/core/split-view-base.d.ts +1 -1
- package/esm/split-view/core/split-view-base.js +1 -1
- package/esm/split-view/index.d.ts +1 -1
- package/esm/split-view/index.js +1 -1
- package/esm/split-view/split-view/index.d.ts +1 -1
- package/esm/split-view/split-view/index.js +1 -1
- package/esm/split-view/split-view/split-view-adapter.d.ts +1 -1
- package/esm/split-view/split-view/split-view-adapter.js +1 -1
- package/esm/split-view/split-view/split-view-constants.d.ts +1 -1
- package/esm/split-view/split-view/split-view-constants.js +1 -1
- package/esm/split-view/split-view/split-view-foundation.d.ts +1 -1
- package/esm/split-view/split-view/split-view-foundation.js +1 -1
- package/esm/split-view/split-view/split-view.d.ts +1 -1
- package/esm/split-view/split-view/split-view.js +4 -2
- package/esm/split-view/split-view-panel/index.d.ts +1 -1
- package/esm/split-view/split-view-panel/index.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-adapter.d.ts +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-adapter.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-constants.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-foundation.d.ts +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-foundation.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-utils.d.ts +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-utils.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel.d.ts +1 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +2 -2
- package/esm/stepper/core/stepper-utils.d.ts +1 -1
- package/esm/stepper/core/stepper-utils.js +1 -1
- package/esm/stepper/index.d.ts +1 -1
- package/esm/stepper/index.js +1 -1
- package/esm/stepper/step/index.d.ts +1 -1
- package/esm/stepper/step/index.js +1 -1
- package/esm/stepper/step/step-adapter.d.ts +1 -1
- package/esm/stepper/step/step-adapter.js +1 -1
- package/esm/stepper/step/step-constants.d.ts +1 -1
- package/esm/stepper/step/step-constants.js +1 -1
- package/esm/stepper/step/step-foundation.d.ts +1 -1
- package/esm/stepper/step/step-foundation.js +1 -1
- package/esm/stepper/step/step.d.ts +1 -1
- package/esm/stepper/step/step.js +7 -4
- package/esm/stepper/stepper/index.d.ts +1 -1
- package/esm/stepper/stepper/index.js +1 -1
- package/esm/stepper/stepper/stepper-adapter.d.ts +1 -1
- package/esm/stepper/stepper/stepper-adapter.js +1 -1
- package/esm/stepper/stepper/stepper-constants.d.ts +1 -1
- package/esm/stepper/stepper/stepper-constants.js +1 -1
- package/esm/stepper/stepper/stepper-foundation.d.ts +1 -1
- package/esm/stepper/stepper/stepper-foundation.js +1 -1
- package/esm/stepper/stepper/stepper.d.ts +1 -1
- package/esm/stepper/stepper/stepper.js +1 -1
- package/esm/switch/index.d.ts +1 -1
- package/esm/switch/index.js +1 -1
- package/esm/switch/switch-component-delegate.d.ts +1 -1
- package/esm/switch/switch-component-delegate.js +1 -1
- package/esm/switch/switch-constants.d.ts +1 -1
- package/esm/switch/switch-constants.js +1 -1
- package/esm/switch/switch.d.ts +1 -1
- package/esm/switch/switch.js +1 -1
- package/esm/table/index.d.ts +1 -1
- package/esm/table/index.js +1 -1
- package/esm/table/multi-sort-manager.d.ts +1 -1
- package/esm/table/multi-sort-manager.js +1 -1
- package/esm/table/table-adapter.d.ts +1 -1
- package/esm/table/table-adapter.js +1 -1
- package/esm/table/table-constants.d.ts +1 -1
- package/esm/table/table-constants.js +1 -1
- package/esm/table/table-foundation.d.ts +1 -1
- package/esm/table/table-foundation.js +1 -1
- package/esm/table/table-row.d.ts +1 -1
- package/esm/table/table-row.js +1 -1
- package/esm/table/table-utils.d.ts +1 -1
- package/esm/table/table-utils.js +8 -4
- package/esm/table/table.d.ts +1 -1
- package/esm/table/table.js +1 -1
- package/esm/table/types.d.ts +1 -1
- package/esm/table/types.js +1 -1
- package/esm/tabs/index.d.ts +1 -1
- package/esm/tabs/index.js +1 -1
- package/esm/tabs/tab/index.d.ts +1 -1
- package/esm/tabs/tab/index.js +1 -1
- package/esm/tabs/tab/tab-adapter.d.ts +1 -1
- package/esm/tabs/tab/tab-adapter.js +1 -1
- package/esm/tabs/tab/tab-constants.d.ts +1 -1
- package/esm/tabs/tab/tab-constants.js +1 -1
- package/esm/tabs/tab/tab-foundation.d.ts +1 -1
- package/esm/tabs/tab/tab-foundation.js +1 -1
- package/esm/tabs/tab/tab.d.ts +1 -1
- package/esm/tabs/tab/tab.js +1 -1
- package/esm/tabs/tab-bar/index.d.ts +1 -1
- package/esm/tabs/tab-bar/index.js +1 -1
- package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +1 -1
- package/esm/tabs/tab-bar/tab-bar-adapter.js +1 -1
- package/esm/tabs/tab-bar/tab-bar-constants.d.ts +1 -1
- package/esm/tabs/tab-bar/tab-bar-constants.js +1 -1
- package/esm/tabs/tab-bar/tab-bar-foundation.d.ts +1 -1
- package/esm/tabs/tab-bar/tab-bar-foundation.js +1 -1
- package/esm/tabs/tab-bar/tab-bar.d.ts +1 -1
- package/esm/tabs/tab-bar/tab-bar.js +1 -1
- package/esm/text-field/index.d.ts +1 -1
- package/esm/text-field/index.js +1 -1
- package/esm/text-field/text-field-adapter.d.ts +1 -1
- package/esm/text-field/text-field-adapter.js +1 -1
- package/esm/text-field/text-field-component-delegate.d.ts +1 -1
- package/esm/text-field/text-field-component-delegate.js +1 -1
- package/esm/text-field/text-field-constants.d.ts +2 -2
- package/esm/text-field/text-field-constants.js +1 -1
- package/esm/text-field/text-field-foundation.d.ts +1 -1
- package/esm/text-field/text-field-foundation.js +1 -1
- package/esm/text-field/text-field.d.ts +1 -1
- package/esm/text-field/text-field.js +1 -1
- package/esm/theme/color-constants.d.ts +1 -1
- package/esm/theme/color-constants.js +1 -1
- package/esm/theme/index.d.ts +1 -1
- package/esm/theme/index.js +1 -1
- package/esm/theme/theme-utils.d.ts +1 -1
- package/esm/theme/theme-utils.js +1 -1
- package/esm/time-picker/index.d.ts +1 -1
- package/esm/time-picker/index.js +1 -1
- package/esm/time-picker/time-picker-adapter.d.ts +1 -1
- package/esm/time-picker/time-picker-adapter.js +1 -1
- package/esm/time-picker/time-picker-component-delegate.d.ts +1 -1
- package/esm/time-picker/time-picker-component-delegate.js +1 -1
- package/esm/time-picker/time-picker-constants.d.ts +1 -1
- package/esm/time-picker/time-picker-constants.js +1 -1
- package/esm/time-picker/time-picker-foundation.d.ts +1 -1
- package/esm/time-picker/time-picker-foundation.js +3 -2
- package/esm/time-picker/time-picker-utils.d.ts +1 -1
- package/esm/time-picker/time-picker-utils.js +1 -1
- package/esm/time-picker/time-picker.d.ts +1 -1
- package/esm/time-picker/time-picker.js +1 -1
- package/esm/toast/index.d.ts +1 -1
- package/esm/toast/index.js +1 -1
- package/esm/toast/toast-adapter.d.ts +1 -1
- package/esm/toast/toast-adapter.js +1 -1
- package/esm/toast/toast-constants.d.ts +1 -1
- package/esm/toast/toast-constants.js +1 -1
- package/esm/toast/toast-foundation.d.ts +1 -1
- package/esm/toast/toast-foundation.js +1 -1
- package/esm/toast/toast.d.ts +1 -1
- package/esm/toast/toast.js +1 -1
- package/esm/toolbar/index.d.ts +1 -1
- package/esm/toolbar/index.js +1 -1
- package/esm/toolbar/toolbar-constants.d.ts +1 -1
- package/esm/toolbar/toolbar-constants.js +1 -1
- package/esm/toolbar/toolbar.d.ts +1 -1
- package/esm/toolbar/toolbar.js +2 -2
- package/esm/tooltip/index.d.ts +1 -1
- package/esm/tooltip/index.js +1 -1
- package/esm/tooltip/tooltip-adapter.d.ts +1 -1
- package/esm/tooltip/tooltip-adapter.js +1 -1
- package/esm/tooltip/tooltip-constants.d.ts +1 -1
- package/esm/tooltip/tooltip-constants.js +1 -1
- package/esm/tooltip/tooltip-foundation.d.ts +1 -1
- package/esm/tooltip/tooltip-foundation.js +1 -1
- package/esm/tooltip/tooltip-utils.d.ts +1 -1
- package/esm/tooltip/tooltip-utils.js +1 -1
- package/esm/tooltip/tooltip.d.ts +1 -1
- package/esm/tooltip/tooltip.js +1 -1
- package/esm/utils/color-utils.d.ts +1 -1
- package/esm/utils/color-utils.js +1 -1
- package/esm/utils/index.d.ts +1 -1
- package/esm/utils/index.js +1 -1
- package/esm/view-switcher/index.d.ts +1 -1
- package/esm/view-switcher/index.js +1 -1
- package/esm/view-switcher/view/index.d.ts +1 -1
- package/esm/view-switcher/view/index.js +1 -1
- package/esm/view-switcher/view/view-constants.d.ts +1 -1
- package/esm/view-switcher/view/view-constants.js +1 -1
- package/esm/view-switcher/view/view.d.ts +1 -1
- package/esm/view-switcher/view/view.js +1 -1
- package/esm/view-switcher/view-switcher-adapter.d.ts +1 -1
- package/esm/view-switcher/view-switcher-adapter.js +1 -1
- package/esm/view-switcher/view-switcher-constants.d.ts +1 -1
- package/esm/view-switcher/view-switcher-constants.js +1 -1
- package/esm/view-switcher/view-switcher-foundation.d.ts +1 -1
- package/esm/view-switcher/view-switcher-foundation.js +1 -1
- package/esm/view-switcher/view-switcher.d.ts +1 -1
- package/esm/view-switcher/view-switcher.js +1 -1
- package/package.json +2 -2
- package/styles/app-bar/_mixins.scss +1 -1
- package/styles/app-bar/_variables.scss +1 -1
- package/styles/app-bar/app-bar.scss +1 -1
- package/styles/app-bar/search/_mixins.scss +1 -1
- package/styles/app-bar/search/_variables.scss +1 -1
- package/styles/app-bar/search/app-bar-search.scss +1 -1
- package/styles/autocomplete/autocomplete.scss +1 -1
- package/styles/avatar/_mixins.scss +1 -1
- package/styles/avatar/_variables.scss +1 -1
- package/styles/avatar/avatar.scss +1 -1
- package/styles/backdrop/_mixins.scss +1 -1
- package/styles/backdrop/_variables.scss +1 -1
- package/styles/backdrop/backdrop.scss +1 -1
- package/styles/badge/_mixins.scss +1 -1
- package/styles/badge/_variables.scss +1 -1
- package/styles/badge/badge.scss +1 -1
- package/styles/banner/_mixins.scss +1 -1
- package/styles/banner/_variables.scss +1 -1
- package/styles/banner/banner.scss +1 -1
- package/styles/bottom-sheet/_mixins.scss +1 -1
- package/styles/bottom-sheet/_variables.scss +1 -1
- package/styles/bottom-sheet/bottom-sheet.scss +1 -1
- package/styles/busy-indicator/_mixins.scss +1 -1
- package/styles/busy-indicator/_variables.scss +1 -1
- package/styles/busy-indicator/busy-indicator.scss +1 -1
- package/styles/busy-indicator/forge-busy-indicator.scss +1 -1
- package/styles/button/_button-base.scss +1 -1
- package/styles/button/_button-filled-theme.scss +1 -1
- package/styles/button/_button-filled.scss +1 -1
- package/styles/button/_button-outlined-theme.scss +1 -1
- package/styles/button/_button-outlined.scss +1 -1
- package/styles/button/_button-protected-theme.scss +1 -1
- package/styles/button/_button-protected.scss +1 -1
- package/styles/button/_button-ripple.scss +1 -1
- package/styles/button/_button-shared-theme.scss +1 -1
- package/styles/button/_button-text-theme.scss +1 -1
- package/styles/button/_button-text.scss +1 -1
- package/styles/button/_button.mixins.scss +1 -1
- package/styles/button/_mixins.scss +1 -1
- package/styles/button/forge-button.scss +1 -1
- package/styles/button-toggle/button-toggle/_mixins.scss +1 -1
- package/styles/button-toggle/button-toggle/button-toggle.scss +1 -1
- package/styles/button-toggle/button-toggle-group/_mixins.scss +1 -1
- package/styles/button-toggle/button-toggle-group/button-toggle-group.scss +1 -1
- package/styles/calendar/_mixins.scss +1 -1
- package/styles/calendar/_variables.scss +1 -1
- package/styles/calendar/calendar-menu/_mixins.scss +1 -1
- package/styles/calendar/calendar-menu/_variables.scss +1 -1
- package/styles/calendar/calendar-menu/calendar-menu.scss +1 -1
- package/styles/calendar/calendar.scss +1 -1
- package/styles/card/_mixins.scss +1 -1
- package/styles/card/_variables.scss +1 -1
- package/styles/card/card.scss +1 -1
- package/styles/checkbox/_checkbox-custom-properties.scss +1 -1
- package/styles/checkbox/_checkbox-theme.scss +1 -1
- package/styles/checkbox/_checkbox.mixins.scss +1 -1
- package/styles/checkbox/checkbox.scss +1 -1
- package/styles/chip-field/_base.scss +1 -1
- package/styles/chip-field/_core.scss +1 -1
- package/styles/chip-field/_mixins.scss +1 -1
- package/styles/chip-field/_selector.scss +1 -1
- package/styles/chip-field/_variables.scss +1 -1
- package/styles/chip-field/chip-field.scss +1 -1
- package/styles/chips/chip/_mixins.scss +1 -1
- package/styles/chips/chip/_variables.scss +1 -1
- package/styles/chips/chip/chip.scss +1 -1
- package/styles/chips/chip-set/_mixins.scss +1 -1
- package/styles/chips/chip-set/_variables.scss +1 -1
- package/styles/chips/chip-set/chip-set.scss +1 -1
- package/styles/circular-progress/_keyframes.scss +1 -1
- package/styles/circular-progress/_mixins.scss +1 -1
- package/styles/circular-progress/_variables.scss +1 -1
- package/styles/circular-progress/circular-progress.scss +1 -1
- package/styles/color-picker/_mixins.scss +1 -1
- package/styles/color-picker/_variables.scss +1 -1
- package/styles/color-picker/color-picker.scss +1 -1
- package/styles/date-picker/date-picker.scss +1 -1
- package/styles/date-range-picker/date-range-picker.scss +1 -1
- package/styles/dialog/_mixins.scss +1 -1
- package/styles/dialog/_variables.scss +1 -1
- package/styles/dialog/dialog.scss +1 -1
- package/styles/dialog/forge-dialog-utils.scss +1 -1
- package/styles/dialog/forge-dialog.scss +1 -1
- package/styles/divider/_mixins.scss +1 -1
- package/styles/divider/_variables.scss +1 -1
- package/styles/divider/divider.scss +1 -1
- package/styles/drawer/base/_mixins.scss +1 -1
- package/styles/drawer/base/_variables.scss +1 -1
- package/styles/drawer/drawer/_mixins.scss +1 -1
- package/styles/drawer/drawer/_variables.scss +1 -1
- package/styles/drawer/drawer/drawer.scss +1 -1
- package/styles/drawer/mini-drawer/_mixins.scss +1 -1
- package/styles/drawer/mini-drawer/_variables.scss +1 -1
- package/styles/drawer/mini-drawer/mini-drawer.scss +1 -1
- package/styles/drawer/modal-drawer/_mixins.scss +1 -1
- package/styles/drawer/modal-drawer/modal-drawer.scss +1 -1
- package/styles/expansion-panel/_mixins.scss +1 -1
- package/styles/expansion-panel/expansion-panel.scss +1 -1
- package/styles/expansion-panel/forge-expansion-panel.scss +1 -1
- package/styles/field/_base.scss +1 -1
- package/styles/field/_core.scss +1 -1
- package/styles/field/_selector.scss +1 -1
- package/styles/field/_utils.scss +1 -1
- package/styles/field/_variables.scss +1 -1
- package/styles/file-picker/_mixins.scss +1 -1
- package/styles/file-picker/_variables.scss +1 -1
- package/styles/file-picker/file-picker.scss +1 -1
- package/styles/floating-action-button/_extended-fab-theme.scss +1 -1
- package/styles/floating-action-button/_fab-custom-properties.scss +1 -1
- package/styles/floating-action-button/_fab-theme.scss +1 -1
- package/styles/floating-action-button/_fab.mixins.scss +1 -1
- package/styles/floating-action-button/forge-floating-action-button.scss +1 -1
- package/styles/floating-label/_mixins.scss +1 -1
- package/styles/floating-label/_variables.scss +1 -1
- package/styles/floating-label/forge-floating-label.scss +1 -1
- package/styles/forge-core.scss +1 -1
- package/styles/forge-dark.scss +1 -1
- package/styles/forge.scss +1 -1
- package/styles/form-field/_mixins.scss +1 -1
- package/styles/form-field/forge-form-field.scss +1 -1
- package/styles/icon/_mixins.scss +1 -1
- package/styles/icon/_variables.scss +1 -1
- package/styles/icon/icon.scss +1 -1
- package/styles/icon-button/_mixins.scss +1 -1
- package/styles/icon-button/_variables.scss +1 -1
- package/styles/icon-button/forge-icon-button.scss +1 -1
- package/styles/inline-message/_mixins.scss +1 -1
- package/styles/inline-message/_variables.scss +1 -1
- package/styles/inline-message/inline-message.scss +1 -1
- package/styles/label-value/_mixins.scss +1 -1
- package/styles/label-value/_variables.scss +1 -1
- package/styles/label-value/label-value.scss +1 -1
- package/styles/linear-progress/_mixins.scss +1 -1
- package/styles/linear-progress/_variables.scss +1 -1
- package/styles/linear-progress/linear-progress.scss +1 -1
- package/styles/list/list/_mixins.scss +1 -1
- package/styles/list/list/list.scss +1 -1
- package/styles/list/list-item/_mixins.scss +1 -1
- package/styles/list/list-item/_variables.scss +1 -1
- package/styles/list/list-item/list-item.scss +1 -1
- package/styles/menu/menu.scss +1 -1
- package/styles/open-icon/_mixins.scss +1 -1
- package/styles/open-icon/_variables.scss +1 -1
- package/styles/open-icon/open-icon.scss +1 -1
- package/styles/page-state/_mixins.scss +1 -1
- package/styles/page-state/_variables.scss +1 -1
- package/styles/page-state/page-state.scss +1 -1
- package/styles/paginator/_mixins.scss +1 -1
- package/styles/paginator/_variables.scss +1 -1
- package/styles/paginator/paginator.scss +1 -1
- package/styles/popup/_mixins.scss +1 -1
- package/styles/popup/_variables.scss +1 -1
- package/styles/popup/forge-popup.scss +1 -1
- package/styles/popup/popup.scss +1 -1
- package/styles/product-icon/_mixins.scss +1 -1
- package/styles/product-icon/_variables.scss +1 -1
- package/styles/product-icon/product-icon.scss +1 -1
- package/styles/profile-card/_mixins.scss +1 -1
- package/styles/profile-card/profile-card.scss +1 -1
- package/styles/quantity-field/_mixins.scss +1 -1
- package/styles/quantity-field/forge-quantity-field.scss +1 -1
- package/styles/quantity-field/quantity-field.scss +1 -1
- package/styles/radio/_mixins.scss +1 -1
- package/styles/radio/_radio-theme.scss +1 -1
- package/styles/radio/radio.scss +1 -1
- package/styles/ripple/forge-ripple.scss +1 -1
- package/styles/scaffold/_mixins.scss +1 -1
- package/styles/scaffold/forge-scaffold.scss +1 -1
- package/styles/scaffold/scaffold.scss +1 -1
- package/styles/select/select/_base.scss +1 -1
- package/styles/select/select/_core.scss +1 -1
- package/styles/select/select/_mixins.scss +1 -1
- package/styles/select/select/_selector.scss +1 -1
- package/styles/select/select/_variables.scss +1 -1
- package/styles/select/select/select.scss +1 -1
- package/styles/select/select-dropdown/select-dropdown.scss +1 -1
- package/styles/skeleton/_mixins.scss +1 -1
- package/styles/skeleton/_variables.scss +1 -1
- package/styles/skeleton/skeleton.scss +1 -1
- package/styles/slider/slider.scss +1 -1
- package/styles/split-view/split-view/_mixins.scss +1 -1
- package/styles/split-view/split-view/split-view.scss +1 -1
- package/styles/split-view/split-view-panel/_mixins.scss +1 -1
- package/styles/split-view/split-view-panel/_variables.scss +1 -1
- package/styles/split-view/split-view-panel/split-view-panel.scss +1 -1
- package/styles/stepper/step/_mixins.scss +1 -1
- package/styles/stepper/step/_variables.scss +1 -1
- package/styles/stepper/step/step.scss +1 -1
- package/styles/stepper/stepper/_mixins.scss +1 -1
- package/styles/stepper/stepper/stepper.scss +1 -1
- package/styles/switch/_switch-mixins.scss +1 -1
- package/styles/switch/_switch-theme.scss +1 -1
- package/styles/switch/switch.scss +1 -1
- package/styles/table/_mixins.scss +1 -1
- package/styles/table/_variables.scss +1 -1
- package/styles/table/forge-table.scss +1 -1
- package/styles/tabs/tab/_mixins.scss +1 -1
- package/styles/tabs/tab/_variables.scss +1 -1
- package/styles/tabs/tab/tab.scss +1 -1
- package/styles/tabs/tab-bar/_mixins.scss +1 -1
- package/styles/tabs/tab-bar/tab-bar.scss +1 -1
- package/styles/text-field/_base.scss +1 -1
- package/styles/text-field/_core.scss +1 -1
- package/styles/text-field/_mixins.scss +1 -1
- package/styles/text-field/_selector.scss +1 -1
- package/styles/text-field/_variables.scss +1 -1
- package/styles/text-field/text-field.scss +1 -1
- package/styles/theme/_custom-properties.scss +1 -1
- package/styles/theme/_icon-mixins.scss +1 -1
- package/styles/theme/_index.scss +1 -1
- package/styles/theme/_keys.scss +1 -1
- package/styles/theme/_theme-dark.scss +1 -1
- package/styles/theme/_theme-utils.scss +1 -1
- package/styles/theme/_theme-values.scss +1 -1
- package/styles/theme/_theme.scss +1 -1
- package/styles/theme/forge-material-icons.scss +1 -1
- package/styles/theme/forge-theme.scss +1 -1
- package/styles/time-picker/time-picker.scss +1 -1
- package/styles/toast/_mixins.scss +1 -1
- package/styles/toast/_variables.scss +1 -1
- package/styles/toast/toast.scss +1 -1
- package/styles/toolbar/_mixins.scss +1 -1
- package/styles/toolbar/_variables.scss +2 -2
- package/styles/toolbar/toolbar.scss +1 -1
- package/styles/tooltip/_mixins.scss +1 -1
- package/styles/tooltip/_variables.scss +1 -1
- package/styles/tooltip/forge-tooltip.scss +1 -1
- package/styles/typography/_index.scss +1 -1
- package/styles/typography/_mixins.scss +1 -1
- package/styles/typography/_variables.scss +1 -1
- package/styles/typography/forge-form.scss +1 -1
- package/styles/typography/forge-typography.scss +1 -1
- package/styles/utils/_functions-grid.scss +1 -1
- package/styles/utils/_mixins-animation.scss +1 -1
- package/styles/utils/_mixins-core.scss +1 -1
- package/styles/utils/_mixins-flex.scss +1 -1
- package/styles/utils/_mixins-grid.scss +1 -1
- package/styles/utils/_mixins-media.scss +1 -1
- package/styles/utils/_mixins.scss +1 -1
- package/styles/utils/_variables-flex.scss +1 -1
- package/styles/utils/_variables-grid.scss +1 -1
- package/styles/utils/_variables-media.scss +1 -1
- package/styles/utils/forge-flex.scss +1 -1
- package/styles/utils/forge-grid.scss +1 -1
- package/styles/utils/forge-utils.scss +1 -1
- package/styles/view-switcher/_mixins.scss +1 -1
- package/styles/view-switcher/_variables.scss +1 -1
- package/styles/view-switcher/view/view.scss +1 -1
- package/styles/view-switcher/view-switcher.scss +1 -1
- package/dist/esm/chunks/chunk.2SAHWDGJ.js +0 -7
- package/dist/esm/chunks/chunk.33Q5FK2H.js +0 -7
- package/dist/esm/chunks/chunk.35U4OX7S.js +0 -7
- package/dist/esm/chunks/chunk.3E5QKMHL.js +0 -7
- package/dist/esm/chunks/chunk.3E5QKMHL.js.map +0 -7
- package/dist/esm/chunks/chunk.3UMBCR4P.js +0 -7
- package/dist/esm/chunks/chunk.444GNOS4.js +0 -7
- package/dist/esm/chunks/chunk.4KBQ5AJJ.js +0 -7
- package/dist/esm/chunks/chunk.54QFNVMG.js +0 -7
- package/dist/esm/chunks/chunk.5K5SIZRX.js +0 -7
- package/dist/esm/chunks/chunk.5WMEFHVN.js +0 -7
- package/dist/esm/chunks/chunk.5XQVZQ4U.js +0 -7
- package/dist/esm/chunks/chunk.75KFBRF6.js.map +0 -7
- package/dist/esm/chunks/chunk.7NXPOEXV.js +0 -7
- package/dist/esm/chunks/chunk.7O7V3N4A.js +0 -7
- package/dist/esm/chunks/chunk.7ZS4N2FT.js +0 -8
- package/dist/esm/chunks/chunk.7ZS4N2FT.js.map +0 -7
- package/dist/esm/chunks/chunk.APGFXXJ7.js +0 -7
- package/dist/esm/chunks/chunk.B5ABD4CZ.js +0 -7
- package/dist/esm/chunks/chunk.BCUBTR5O.js +0 -7
- package/dist/esm/chunks/chunk.BFNAQQCU.js +0 -7
- package/dist/esm/chunks/chunk.BOENNFXE.js +0 -7
- package/dist/esm/chunks/chunk.BX7242PC.js +0 -7
- package/dist/esm/chunks/chunk.CV5E5W6I.js +0 -7
- package/dist/esm/chunks/chunk.DIYJJHWP.js +0 -7
- package/dist/esm/chunks/chunk.DQBSFX46.js +0 -7
- package/dist/esm/chunks/chunk.EJ4ASQET.js +0 -7
- package/dist/esm/chunks/chunk.FPV4XEUK.js +0 -7
- package/dist/esm/chunks/chunk.G77PXLAU.js +0 -7
- package/dist/esm/chunks/chunk.HN4PXH3D.js +0 -7
- package/dist/esm/chunks/chunk.HUWXZ4ZN.js +0 -29
- package/dist/esm/chunks/chunk.I2YRKTG7.js +0 -7
- package/dist/esm/chunks/chunk.IFZXG3LI.js +0 -7
- package/dist/esm/chunks/chunk.IJIKFXUT.js +0 -7
- package/dist/esm/chunks/chunk.IMK2LFWR.js.map +0 -7
- package/dist/esm/chunks/chunk.J2ODMCFS.js +0 -7
- package/dist/esm/chunks/chunk.J6CIWTDH.js +0 -7
- package/dist/esm/chunks/chunk.JNOCXQVB.js +0 -7
- package/dist/esm/chunks/chunk.K43ZNKT2.js +0 -7
- package/dist/esm/chunks/chunk.K753A3KI.js +0 -29
- package/dist/esm/chunks/chunk.KYCC3C3M.js +0 -7
- package/dist/esm/chunks/chunk.LLHA3SQR.js +0 -7
- package/dist/esm/chunks/chunk.LMOYZQZJ.js +0 -7
- package/dist/esm/chunks/chunk.LMOYZQZJ.js.map +0 -7
- package/dist/esm/chunks/chunk.MGTNCCW3.js +0 -7
- package/dist/esm/chunks/chunk.MNBJMPJ6.js +0 -7
- package/dist/esm/chunks/chunk.NGIBMR3Q.js +0 -7
- package/dist/esm/chunks/chunk.NNGE722W.js +0 -7
- package/dist/esm/chunks/chunk.NNGE722W.js.map +0 -7
- package/dist/esm/chunks/chunk.O2XO3IRX.js +0 -7
- package/dist/esm/chunks/chunk.O2XO3IRX.js.map +0 -7
- package/dist/esm/chunks/chunk.O3G6ZLJN.js +0 -7
- package/dist/esm/chunks/chunk.OAKTW64X.js +0 -7
- package/dist/esm/chunks/chunk.OAKTW64X.js.map +0 -7
- package/dist/esm/chunks/chunk.OG2BI3UW.js +0 -7
- package/dist/esm/chunks/chunk.ON3JVSSR.js +0 -12
- package/dist/esm/chunks/chunk.OOBE3XRM.js +0 -29
- package/dist/esm/chunks/chunk.OUEF6VQ6.js +0 -7
- package/dist/esm/chunks/chunk.P6B3UWJ5.js +0 -7
- package/dist/esm/chunks/chunk.PFD2SVJ4.js +0 -7
- package/dist/esm/chunks/chunk.Q6L7T6OJ.js +0 -7
- package/dist/esm/chunks/chunk.QJPH24V4.js +0 -7
- package/dist/esm/chunks/chunk.QXLPBYMX.js +0 -7
- package/dist/esm/chunks/chunk.QXLPBYMX.js.map +0 -7
- package/dist/esm/chunks/chunk.RGWUF3J2.js +0 -7
- package/dist/esm/chunks/chunk.RKKJB3EE.js +0 -7
- package/dist/esm/chunks/chunk.RKKJB3EE.js.map +0 -7
- package/dist/esm/chunks/chunk.RPPBBBYG.js +0 -7
- package/dist/esm/chunks/chunk.RST65QIB.js +0 -7
- package/dist/esm/chunks/chunk.SJSLC6XF.js +0 -7
- package/dist/esm/chunks/chunk.SJSLC6XF.js.map +0 -7
- package/dist/esm/chunks/chunk.T7ZJDAXV.js +0 -29
- package/dist/esm/chunks/chunk.TLHI6K2R.js +0 -7
- package/dist/esm/chunks/chunk.TR64DV3G.js +0 -7
- package/dist/esm/chunks/chunk.TR64DV3G.js.map +0 -7
- package/dist/esm/chunks/chunk.VMWS5OOZ.js +0 -7
- package/dist/esm/chunks/chunk.WNOSTPQQ.js +0 -7
- package/dist/esm/chunks/chunk.WV45FGTW.js +0 -7
- package/dist/esm/chunks/chunk.X77WVI2H.js +0 -7
- package/dist/esm/chunks/chunk.X77WVI2H.js.map +0 -7
- package/dist/esm/chunks/chunk.XXA6KNXT.js +0 -7
- package/dist/esm/chunks/chunk.XYBFFTXS.js +0 -29
- package/dist/esm/chunks/chunk.Y6MPWPZU.js +0 -7
- package/dist/esm/chunks/chunk.Y7Q6QI5V.js +0 -7
- package/dist/esm/chunks/chunk.YAJT3P6V.js +0 -7
- package/dist/esm/chunks/chunk.YHHIPP2F.js +0 -7
- package/dist/esm/chunks/chunk.YPUWII7L.js.map +0 -7
- package/dist/esm/chunks/chunk.YWKKZLZ2.js +0 -29
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/list-dropdown/list-dropdown-constants.ts", "../../../../../../node_modules/@tylertech/forge-core/esm/events/event-aware.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-types.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-axis-observer.js", "../../src/list-dropdown/list-dropdown-utils.ts", "../../src/list-dropdown/list-dropdown-foundation.ts", "../../src/list-dropdown/list-dropdown-adapter.ts", "../../src/list-dropdown/list-dropdown.ts", "../../src/list-dropdown/list-dropdown-aware-foundation.ts", "../../src/list-dropdown/cascading-list-dropdown-aware-foundation.ts"],
|
|
4
|
-
"sourcesContent": ["import { IPopupPosition, PopupPlacement } from '../popup';\n\nconst attributes = {\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n\n // Internal\n CHECKBOX_ELEMENT: 'data-list-dropdown-checkbox',\n DATA_ALLOW_FOCUS: 'data-list-dropdown-allow-focus'\n};\n\nconst classes = {\n GROUP_WRAPPER: 'forge-list-dropdown__group-wrapper'\n};\n\nexport const LIST_DROPDOWN_CONSTANTS = {\n attributes,\n classes\n};\n\nexport type ListDropdownOptionBuilder<T = HTMLElement> = (option: IListDropdownOption, parentElement: T) => HTMLElement | string | void;\nexport type ListDropdownHeaderBuilder = () => HTMLElement;\nexport type ListDropdownFooterBuilder = () => HTMLElement;\nexport type ListDropdownOptionGroupBuilder = (option: IListDropdownOptionGroup) => HTMLElement;\nexport type ListDropdownTransformCallback = (label: string) => string | HTMLElement;\nexport type ListDropdownIconType = 'font' | 'component';\n\nexport interface IBaseListDropdownOption<T = any> {\n value: T;\n label: string;\n disabled?: boolean;\n divider?: boolean;\n optionClass?: string | string[];\n leadingIcon?: string;\n leadingIconClass?: string;\n leadingIconType?: ListDropdownIconType;\n trailingIcon?: string;\n trailingIconClass?: string;\n trailingIconType?: ListDropdownIconType;\n leadingBuilder?: () => HTMLElement;\n trailingBuilder?: () => HTMLElement;\n}\n\nexport interface IListDropdownOption<T = any> extends IBaseListDropdownOption<T> {\n options?: Array<IListDropdownOption | IListDropdownOptionGroup>;\n elementAttributes?: Map<string, string>;\n}\n\nexport interface IListDropdownOptionGroup {\n options: IListDropdownOption[];\n text?: string;\n builder?: ListDropdownOptionGroupBuilder;\n}\n\nexport interface IListDropdownSelectEventData {\n value: IListDropdownOption | IListDropdownOption[];\n}\n\nexport interface IListDropdownConfig<T = any> {\n id: string;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n selectCallback: (value: T) => void;\n \n // Optional values\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n syncWidth?: boolean;\n selectedValues?: T[];\n multiple?: boolean;\n activeStartIndex?: number;\n transform?: ListDropdownTransformCallback;\n allowBusy?: boolean;\n asyncStyle?: ListDropdownAsyncStyle;\n iconClass?: string;\n dense?: boolean;\n type?: ListDropdownType;\n popupClasses?: string | string[];\n popupOffset?: IPopupPosition;\n popupStatic?: boolean;\n popupPlacement?: PopupPlacement;\n optionLimit?: number;\n optionBuilder?: ListDropdownOptionBuilder;\n observeScroll?: boolean;\n observeScrollThreshold?: number;\n targetWidthCallback?: () => number;\n scrollEndListener?: () => void;\n headerBuilder?: ListDropdownHeaderBuilder;\n footerBuilder?: ListDropdownFooterBuilder;\n cascade?: boolean;\n cascadingElementFactory?: (config: IListDropdownCascadingElementFactoryConfig) => HTMLElement;\n}\n\nexport interface IListDropdownCascadingElementFactoryConfig {\n index: number;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n parentValue: any;\n}\n\nexport const DEFAULT_LIST_DROPDOWN_CONFIG: Partial<IListDropdownConfig> = {\n options: [],\n syncWidth: false,\n selectedValues: [],\n multiple: false\n};\n\nexport interface IListDropdownOpenConfig extends IListDropdownConfig {}\n\nexport enum ListDropdownType {\n None = 'none',\n Standard = 'standard',\n Menu = 'menu'\n}\n\nexport enum ListDropdownAsyncStyle {\n Spinner = 'spinner',\n Skeleton = 'skeleton'\n}\n", "export class EventAware {\n constructor() {\n this._listenerMap = new Map();\n }\n _emit(type, data) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length) {\n listeners.forEach(cb => cb({ type, data }));\n }\n }\n hasListeners(type) {\n return type ? this._listenerMap.has(type) : this._listenerMap.size > 0;\n }\n addListener(type, listener) {\n if (!this._listenerMap.has(type)) {\n this._listenerMap.set(type, [listener]);\n }\n else {\n const listeners = this._listenerMap.get(type);\n if (listeners) {\n listeners.push(listener);\n }\n }\n }\n removeListener(type, listener) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length && listeners.includes(listener)) {\n listeners.splice(listeners.indexOf(listener), 1);\n if (!listeners.length) {\n this._listenerMap.delete(type);\n }\n }\n }\n}\n", "export var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[\"Up\"] = \"up\";\n ScrollDirection[\"Down\"] = \"down\";\n ScrollDirection[\"Left\"] = \"left\";\n ScrollDirection[\"Right\"] = \"right\";\n})(ScrollDirection || (ScrollDirection = {}));\nexport var ScrollEvents;\n(function (ScrollEvents) {\n ScrollEvents[\"Scroll\"] = \"scroll\";\n ScrollEvents[\"Scrolled\"] = \"scrolled\";\n ScrollEvents[\"ScrolledStart\"] = \"scrolled-start\";\n ScrollEvents[\"ScrolledEnd\"] = \"scrolled-end\";\n})(ScrollEvents || (ScrollEvents = {}));\n", "import { EventAware } from '../events/event-aware';\nimport { ScrollEvents, ScrollDirection } from './scroll-types';\nimport { isDefined, throttle, isNumber } from '../utils';\nconst DEFAULT_SCROLL_THROTTLE = 100;\n/**\n * Provides facilties for observing and reacting to scroll events and information on a given element.\n */\nexport class ScrollAxisObserver extends EventAware {\n constructor(_element, _config = {}) {\n super();\n this._element = _element;\n this._config = _config;\n this._axis = 'vertical';\n this._scrollThreshold = 0;\n this._lastScrollPosition = 0;\n this._lastScrollTop = 0;\n this._lastScrollLeft = 0;\n this._isListening = false;\n this._initialize();\n }\n destroy() {\n this.stop();\n }\n start() {\n if (!this._isListening) {\n this._element.addEventListener('scroll', this._scrollListener);\n this._isListening = true;\n }\n }\n stop() {\n this._element.removeEventListener('scroll', this._scrollListener);\n this._isListening = false;\n }\n _initialize() {\n if (this._config.throttle) {\n const wait = this._config.throttleTime || DEFAULT_SCROLL_THROTTLE;\n this._scrollListener = throttle(() => this._onScroll(), wait);\n }\n else {\n this._scrollListener = () => this._onScroll();\n }\n if (!isDefined(this._config.paused) || !this._config.paused) {\n this.start();\n }\n if (isDefined(this._config.axis)) {\n this._axis = this._config.axis;\n }\n if (isDefined(this._config.scrollThreshold) && isNumber(this._config.scrollThreshold)) {\n this._scrollThreshold = this._config.scrollThreshold;\n }\n }\n _isScrollAxis() {\n const isVertical = this._lastScrollTop !== this._element.scrollTop;\n const isHorizontal = this._lastScrollLeft !== this._element.scrollLeft;\n return (this._axis === 'vertical' && isVertical) || (this._axis === 'horizontal' && isHorizontal);\n }\n _onScroll() {\n if (!this._isScrollAxis()) {\n return;\n }\n const position = this.scrollPosition;\n const direction = this._lastScrollPosition - position < 0 ? this._axis === 'vertical' ? ScrollDirection.Down : ScrollDirection.Right : this._axis === 'vertical' ? ScrollDirection.Up : ScrollDirection.Left;\n this._emit(ScrollEvents.Scroll, { direction, position });\n if (this._lastScrollPosition <= this._scrollThreshold && position > this._scrollThreshold) {\n this._emit(ScrollEvents.Scrolled, true);\n }\n else if (this._lastScrollPosition >= this._scrollThreshold && (this._scrollThreshold > 0 ? position < this._scrollThreshold : position === 0)) {\n this._emit(ScrollEvents.Scrolled, false);\n }\n const scrollStart = Math.round(position - this._scrollThreshold);\n const scrollEnd = Math.round(this.scrollSize - position);\n if (this._lastScrollPosition >= this._scrollThreshold && scrollStart <= 0) {\n this._emit(ScrollEvents.ScrolledStart);\n }\n else if (this._lastScrollPosition <= (this.scrollSize - this._scrollThreshold) && scrollEnd <= this._scrollThreshold) {\n this._emit(ScrollEvents.ScrolledEnd);\n }\n this._lastScrollPosition = position || 0;\n this._lastScrollTop = this._element.scrollTop || 0;\n this._lastScrollLeft = this._element.scrollLeft || 0;\n }\n get scrollPosition() {\n return this._axis === 'vertical' ? this._element.scrollTop : this._element.scrollLeft;\n }\n get isScrolled() {\n return this.scrollPosition > this._scrollThreshold;\n }\n get isScrolledStart() {\n return this.scrollPosition === 0;\n }\n get isScrolledEnd() {\n return this.scrollPosition === this._element.scrollWidth;\n }\n get isScrollable() {\n if (this._axis === 'vertical') {\n return this._element.scrollHeight > this._element.clientHeight;\n }\n return this._element.scrollWidth > this._element.clientWidth;\n }\n get scrollSize() {\n return (this._axis === 'vertical' ? this._element.scrollHeight : this._element.scrollWidth) - this.elementSize;\n }\n get elementSize() {\n return this._axis === 'vertical' ? this._element.clientHeight : this._element.clientWidth;\n }\n setScrollPosition(position) {\n if (this._axis === 'vertical') {\n this._element.scrollTop = position;\n }\n else {\n this._element.scrollLeft = position;\n }\n }\n}\n", "import { addClass, getEventPath, isDefined, isObject, isDeepEqual } from '@tylertech/forge-core';\nimport { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { ILinearProgressComponent, LINEAR_PROGRESS_CONSTANTS } from '../linear-progress';\nimport { IListComponent, LIST_CONSTANTS } from '../list/list';\nimport { IListItemComponent, LIST_ITEM_CONSTANTS } from '../list/list-item';\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../popup';\nimport { ISkeletonComponent, SKELETON_CONSTANTS } from '../skeleton';\nimport { IListDropdownCascadingElementFactoryConfig, IListDropdownOpenConfig, IListDropdownOption, IListDropdownOptionGroup, ListDropdownAsyncStyle, ListDropdownIconType, ListDropdownType, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\n\nexport enum ListDropdownOptionType { Option, Group }\n\n/**\n * Creates the floating dropdown element container.\n * @param config \n * @param targetElement \n */\nexport function createDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const dropdownElement = createPopupDropdown(config, targetElement);\n const dropdownId = `list-dropdown-popup-${config.id}`;\n\n // Prevent mousedown events from changing focus. We keep focus in the target element at all times while open.\n dropdownElement.addEventListener('mousedown', evt => {\n const composedPath = getEventPath(evt);\n\n // We allow for custom header and footer templates and these elements could be focusable so we need to allow access into them\n const isFromCustomTemplate = composedPath.find(el => el.nodeType === 1 && el.hasAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS));\n if (isFromCustomTemplate) {\n return;\n }\n\n const isWithinDropdownElement = composedPath.find(el => el.id === dropdownId || el.id === config.id);\n if (isWithinDropdownElement) {\n evt.preventDefault();\n }\n });\n\n // Set roles and other attributes based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n dropdownElement.setAttribute('role', 'menu');\n dropdownElement.setAttribute('aria-orientation', 'vertical');\n break;\n default:\n dropdownElement.setAttribute('role', 'listbox');\n }\n\n if (config.id) {\n dropdownElement.id = dropdownId;\n }\n if (config.popupClasses) {\n addClass(config.popupClasses, dropdownElement);\n }\n\n return dropdownElement;\n}\n\nexport function createPopupDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const popupElement = document.createElement(POPUP_CONSTANTS.elementName) as IPopupComponent;\n popupElement.targetElement = targetElement;\n popupElement.placement = config.popupPlacement || 'bottom-start';\n popupElement.manageFocus = false;\n popupElement.static = !!config.popupStatic;\n\n if (config.popupOffset) {\n popupElement.offset = config.popupOffset;\n }\n\n // Set the animations based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n popupElement.animationType = PopupAnimationType.Menu;\n break;\n case ListDropdownType.None:\n popupElement.animationType = PopupAnimationType.None;\n break;\n default:\n popupElement.animationType = PopupAnimationType.Dropdown;\n }\n return popupElement;\n}\n\nexport function createList(config: IListDropdownOpenConfig): IListComponent {\n const listElement = document.createElement(LIST_CONSTANTS.elementName) as IListComponent;\n listElement.id = `list-dropdown-list-${config.id}`;\n listElement.propagateClick = false;\n return listElement;\n}\n\n/**\n * Creates the list to place inside of the dropdown.\n * @param config \n */\nexport function createListItems(config: IListDropdownOpenConfig, listElement: IListComponent, options?: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n // Ensure the options are provided in the form a group (if no groups provided, then we have one anonymous group of options)\n const groups = getOptionsByGroup(options || config.options);\n\n const limitOptions = config.optionLimit ? true : false;\n let optionLimit = config.optionLimit || 0;\n let optionIndex = 0;\n\n // Iterate over our groups and render the optional headers and options for that group\n for (const group of groups) {\n let optionParent: IListComponent | HTMLElement = listElement;\n\n // Check for a group header builder callback\n if (group.builder && typeof group.builder === 'function') {\n const headerElement = group.builder(group);\n if (headerElement) {\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n optionParent = groupWrapper;\n groupWrapper.appendChild(headerElement);\n listElement.appendChild(groupWrapper);\n }\n } else if (group.text) {\n // We are rendering just text as a group header so create the group header element with predefined styles\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n\n const listHeaderElement = document.createElement('div');\n listHeaderElement.textContent = group.text;\n listHeaderElement.classList.add('forge-typography--overline');\n listHeaderElement.style.fontFamily = 'Roboto,sans-serif';\n listHeaderElement.style.fontSize = '0.75rem';\n listHeaderElement.style.lineHeight = '2rem';\n listHeaderElement.style.letterSpacing = '0.16667em';\n listHeaderElement.style.fontWeight = '500';\n listHeaderElement.style.margin = '4px 8px';\n\n optionParent = groupWrapper;\n groupWrapper.appendChild(listHeaderElement);\n listElement.appendChild(groupWrapper);\n }\n\n // Loop over the options for this group\n for (const option of group.options) {\n // First we check if this option is just a divider\n if (option.divider) {\n const dividerElement = createDivider();\n listElement.appendChild(dividerElement);\n continue;\n }\n\n // Check if an option limit has been provided to reduce amount of options that need to be rendered\n if (limitOptions && --optionLimit < 0) {\n break;\n }\n\n optionIndex++;\n \n // Create and configure the list element\n const isSelected = config.selectedValues ? config.selectedValues.some(v => isDeepEqual(v, option.value)) : false;\n let listItemElement = document.createElement(LIST_ITEM_CONSTANTS.elementName) as IListItemComponent;\n listItemElement.value = option.value;\n listItemElement.id = `list-dropdown-option-${config.id}-${optionIndex}`;\n listItemElement.style.cursor = 'pointer';\n\n // Add any CSS classes to the option list-item\n if (option.optionClass && (typeof option.optionClass === 'string' || Array.isArray(option.optionClass) && option.optionClass.length)) {\n addClass(option.optionClass, listItemElement);\n }\n\n // Set role based on type\n switch (config.type) {\n case ListDropdownType.Menu:\n listItemElement.setAttribute('role', 'menuitem');\n break;\n case ListDropdownType.None:\n break;\n default:\n listItemElement.setAttribute('role', 'option');\n }\n\n if (config.dense) {\n listItemElement.dense = true;\n }\n\n // Check for a custom option template builder\n if (config.optionBuilder && typeof config.optionBuilder === 'function') {\n const element = config.optionBuilder(option, listItemElement);\n if (element) {\n if (typeof element === 'string') {\n listItemElement.innerHTML = element;\n } else {\n listItemElement.appendChild(element);\n }\n }\n } else {\n if (typeof config.transform !== 'function') {\n listItemElement.textContent = option.label || '';\n } else {\n const result = config.transform(option.label);\n if (typeof result === 'string') {\n listItemElement.textContent = result;\n } else if (typeof result === 'object' && (result as HTMLElement).nodeType !== undefined) {\n listItemElement.appendChild(result);\n }\n }\n }\n\n // Leading element/icon\n if (option.leadingBuilder) {\n const element = option.leadingBuilder();\n if (isObject(element)) {\n element.slot = 'leading';\n listItemElement.appendChild(element);\n }\n } else if (option.leadingIcon) {\n const leadingIconElement = createIconElement(option.leadingIconType, option.leadingIcon, option.leadingIconClass || config.iconClass);\n leadingIconElement.slot = 'leading';\n listItemElement.appendChild(leadingIconElement);\n }\n\n // Trailing element/icon\n if (option.trailingBuilder) {\n const element = option.trailingBuilder();\n if (isObject(element)) {\n element.slot = 'trailing';\n listItemElement.appendChild(element);\n }\n } else if (option.trailingIcon) {\n const trailingIconElement = createIconElement(option.trailingIconType, option.trailingIcon, option.trailingIconClass || config.iconClass);\n trailingIconElement.slot = 'trailing';\n listItemElement.appendChild(trailingIconElement);\n }\n\n // Update the disabled state\n if (option.disabled) {\n listItemElement.disabled = option.disabled;\n listItemElement.setAttribute('aria-disabled', 'true');\n } else {\n listItemElement.style.cursor = 'pointer';\n listItemElement.setAttribute('aria-disabled', 'false');\n }\n\n // Update the selected state\n if (isSelected) {\n listItemElement.selected = true;\n }\n listItemElement.setAttribute('aria-selected', isSelected ? 'true' : 'false');\n\n // If multiple selections are enabled then we need to create and append a leading checkbox element\n if (config.multiple) {\n const checkboxElement = createCheckboxElement(isSelected);\n listItemElement.appendChild(checkboxElement);\n listItemElement.setAttribute('aria-selected', `${isSelected}`);\n listItemElement.setAttribute('aria-checked', `${isSelected}`);\n }\n\n if (option.elementAttributes) {\n option.elementAttributes.forEach((value: string, key: string) => {\n listItemElement.setAttribute(key, value);\n });\n }\n\n // If we have any child options, we need to render a child menu for this list item\n if (!option.disabled && typeof config.cascadingElementFactory === 'function' && Array.isArray(option.options) && option.options.length) {\n // Create the trailing indicator icon to show that a child menu exists for this option. \n const optionIconElement = document.createElement('forge-icon');\n optionIconElement.name = 'arrow_right';\n optionIconElement.slot = 'trailing';\n listItemElement.appendChild(optionIconElement);\n\n const nonDividerOptions = group.options.filter(o => !o.divider);\n\n // Create the nested cascading element wrapper\n const factoryConfig: IListDropdownCascadingElementFactoryConfig = {\n index: nonDividerOptions.indexOf(option),\n options: option.options,\n parentValue: option.value\n };\n const cascadingElement = config.cascadingElementFactory.call(null, factoryConfig);\n cascadingElement.appendChild(listItemElement);\n listItemElement = cascadingElement;\n }\n\n optionParent.appendChild(listItemElement);\n }\n }\n}\n\nexport function createCheckboxElement(selected: boolean): HTMLElement {\n const checkboxElement = document.createElement('forge-icon');\n checkboxElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT, '');\n checkboxElement.name = selected ? tylIconCheckBox.name : tylIconCheckBoxOutlineBlank.name;\n checkboxElement.slot = 'leading';\n checkboxElement.style.marginRight = '16px';\n checkboxElement.style.verticalAlign = 'middle';\n return checkboxElement;\n}\n\nfunction createDivider(): HTMLElement {\n const divider = document.createElement('forge-divider');\n divider.setAttribute('aria-hidden', 'true');\n return divider;\n}\n\nfunction createIconElement(type: ListDropdownIconType = 'font', iconName: string, iconClass?: string): HTMLElement {\n if (type === 'component') {\n const icon = document.createElement('forge-icon');\n if (iconClass) {\n icon.classList.add(iconClass);\n }\n icon.setAttribute('aria-hidden', 'true');\n icon.name = iconName;\n return icon;\n }\n\n const iconElement = document.createElement('i');\n iconElement.classList.add(iconClass || ICON_CLASS_NAME);\n iconElement.setAttribute('aria-hidden', 'true');\n iconElement.textContent = iconName;\n return iconElement;\n}\n\nexport function createAsyncElement(asyncStyle?: ListDropdownAsyncStyle): HTMLElement {\n switch (asyncStyle) {\n case ListDropdownAsyncStyle.Skeleton:\n return createSkeletonElement();\n default:\n return createSpinnerElement();\n }\n}\n\nfunction createSpinnerElement(): HTMLElement {\n const div = document.createElement('div');\n div.style.display = 'flex';\n div.style.justifyContent = 'center';\n div.style.alignItems = 'center';\n div.style.padding = '8px';\n div.style.boxSizing = 'border-box';\n\n const spinner = document.createElement('forge-circular-progress');\n spinner.style.setProperty('--forge-circular-progress-size', '24px');\n div.appendChild(spinner);\n\n return div;\n}\n\nfunction createSkeletonElement(): HTMLElement {\n const list = document.createElement('forge-list');\n const div = document.createElement('div');\n div.style.minWidth = '192px';\n for (let i = 0; i < 3; i++) {\n const listItemSkeleton = document.createElement(SKELETON_CONSTANTS.elementName) as ISkeletonComponent;\n listItemSkeleton.setAttribute('list-item', '');\n div.appendChild(listItemSkeleton);\n }\n list.appendChild(div);\n return list;\n}\n\nexport function createBusyElement(): ILinearProgressComponent {\n const linearProgress = document.createElement(LINEAR_PROGRESS_CONSTANTS.elementName) as ILinearProgressComponent;\n linearProgress.determinate = false;\n linearProgress.style.position = 'absolute';\n linearProgress.style.top = '0';\n linearProgress.style.left = '0';\n linearProgress.style.right = '0';\n linearProgress.style.width = '100%';\n return linearProgress;\n}\n\nfunction getOptionsByGroup(options: Array<IListDropdownOption | IListDropdownOptionGroup>): IListDropdownOptionGroup[] {\n return isListDropdownOptionType(options, ListDropdownOptionType.Group) ? (options as IListDropdownOptionGroup[]) : [{ text: '', options }] as IListDropdownOptionGroup[];\n}\n\n/**\n * Determines if the provided options are of the specified type.\n * @param options The options either grouped or individual.\n * @param type The type of option to detect.\n */\nexport function isListDropdownOptionType(options: Array<IListDropdownOption | IListDropdownOptionGroup>, type: ListDropdownOptionType): type is ListDropdownOptionType {\n const isOptionGroups = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('options') && (o.hasOwnProperty('text') || o.hasOwnProperty('builder')));\n const isOptionTypes = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value'));\n return (isOptionGroups && type === ListDropdownOptionType.Group) || (isOptionTypes && type === ListDropdownOptionType.Option);\n}\n", "import { IListDropdownAdapter } from './list-dropdown-adapter';\nimport { DEFAULT_LIST_DROPDOWN_CONFIG, IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { isListDropdownOptionType, ListDropdownOptionType } from './list-dropdown-utils';\n\nexport interface IListDropdownFoundation {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n setSelectedValues(values: any): void;\n clearActiveOption(): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdownFoundation implements IListDropdownFoundation {\n private _config: IListDropdownConfig;\n private _open = false;\n private _selectListener: (value: any, id: string) => void;\n private _closeListener: () => void;\n private _scrollEndListener: () => void;\n\n constructor(private _adapter: IListDropdownAdapter, config: IListDropdownConfig) {\n this._config = Object.assign({ ...DEFAULT_LIST_DROPDOWN_CONFIG }, { ...config });\n this._selectListener = (value, id) => this._onSelect(value, id);\n this._closeListener = () => {\n if (typeof this._config.closeCallback === 'function') {\n this._config.closeCallback();\n }\n };\n this._scrollEndListener = () => {\n if (this._config.observeScroll && typeof this._config.scrollEndListener === 'function') {\n this._config.scrollEndListener();\n }\n };\n }\n\n public destroy(): void {\n if (this._open) {\n this.close();\n }\n }\n\n public open(): void {\n if (!this._open) {\n this._open = true;\n this._adapter.open(this._config, this._selectListener, this._closeListener);\n window.requestAnimationFrame(() => {\n if (this._open) {\n this.activateInitialOption();\n }\n });\n\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n }\n }\n\n public close(): void {\n if (this._open) {\n this._open = false;\n this._adapter.close();\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n }\n }\n\n private _onSelect(value: any, id: string): void {\n if (typeof this._config.activeChangeCallback === 'function') {\n this._config.activeChangeCallback(id);\n }\n\n if (typeof this._config.selectCallback === 'function') {\n this._config.selectCallback(value);\n }\n\n if (this._open) {\n const sync = this._config.syncWidth === undefined ? true : false;\n // Keep the popup width at least the same as the target if the target size has now changed\n this._adapter.syncWidth(sync);\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._adapter.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n const index = this.getActiveOptionIndex();\n return index >= 0 ? this._nonDividerOptions[index] : undefined;\n }\n \n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._adapter.toggleOptionMultiple(index, isSelected);\n }\n\n public activateSelectedOption(): void {\n this._adapter.activateSelectedOption(this._config);\n }\n\n public activateFirstOption(): number {\n const index = this._nonDividerOptions.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateLastOption(): number {\n const options = this._nonDividerOptions;\n const index = (options.length - 1) - options.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateOption(index: number, animate?: boolean): void {\n return this._adapter.activateOption(index, this._config.activeChangeCallback, animate);\n }\n\n public activateInitialOption(): void {\n if (typeof this._config.activeStartIndex === 'number' && this._nonDividerOptions[this._config.activeStartIndex]) {\n this.activateOption(this._config.activeStartIndex, false);\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (this._config.selectedValues && this._config.selectedValues.length) {\n this._adapter.scrollSelectedOptionIntoView(false);\n }\n }\n\n public setSelectedValues(values: any[]): void {\n if (!Array.isArray(values)) {\n values = [values];\n }\n if (!this._config.multiple && values.length > 1) {\n values = [values[0]];\n }\n this._config.selectedValues = values;\n this._adapter.setSelectedValues(values, this._config.multiple);\n }\n\n public clearActiveOption(): void {\n this._adapter.clearActiveOption();\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = options;\n if (!this._open) {\n return;\n }\n this._adapter.setOptions(this._config);\n this.activateInitialOption();\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = [...this._config.options, ...options] as Array<IListDropdownOption | IListDropdownOptionGroup>;\n if (!this._open) {\n return;\n }\n this._adapter.appendOptions(options, this._config);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._adapter.dropdownElement;\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n this._adapter.scrollSelectedOptionIntoView(animate);\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._config.scrollEndListener = listener;\n this._config.observeScroll = true;\n this._config.observeScrollThreshold = threshold;\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n\n public removeScrollBottomListener(): void {\n this._config.scrollEndListener = undefined;\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._config.allowBusy) {\n return;\n }\n this._adapter.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n switch (key) {\n case 'Enter':\n const activeOptionIndex = this.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeOptionIndex];\n if (this._canSelectOption(activeOption)) {\n const id = this._adapter.getActiveOptionIdByIndex(activeOptionIndex);\n if (id) {\n this._onSelect(activeOption.value, id);\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n case 'Down':\n case 'ArrowDown':\n const options = this._nonDividerOptions;\n if (options.length && options.every(o => !this._canSelectOption(o))) {\n return;\n }\n const index = this._getNextActiveOptionIndex(key);\n this.activateOption(index);\n break;\n case 'Home':\n this.activateFirstOption();\n break;\n case 'End':\n this.activateLastOption();\n break;\n }\n }\n\n private _canSelectOption(option: IListDropdownOption): boolean {\n return option && !option.disabled && !option.divider;\n }\n\n private _getNextActiveOptionIndex(key: string): number {\n let index = this._adapter.getActiveOptionIndex();\n if (index === -1) {\n index = this._adapter.getSelectedOptionIndex();\n }\n if (key === 'ArrowUp' || key === 'Up') {\n return this._getPreviousHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n return this._getNextHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n\n private _getPreviousHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex <= 0 ? options.length - 1 : startIndex - 1;\n if (options[index].disabled) {\n return this._getPreviousHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _getNextHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex === options.length - 1 ? 0 : startIndex + 1;\n if (options[index].disabled) {\n return this._getNextHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private get _flatOptions(): IListDropdownOption[] {\n if (isListDropdownOptionType(this._config.options, ListDropdownOptionType.Group)) {\n const groups = this._config.options as IListDropdownOptionGroup[];\n return groups.reduce((flatOpts, group) => flatOpts.concat(group.options), [] as IListDropdownOption[]);\n }\n return [...this._config.options as IListDropdownOption[]];\n }\n\n private get _nonDividerOptions(): IListDropdownOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n}\n", "import { IListDropdownOption, IListDropdownOpenConfig, IListDropdownOptionGroup, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\nimport { createDropdown, createList, createListItems, createAsyncElement, createBusyElement, createCheckboxElement } from './list-dropdown-utils';\nimport { IPopupComponent, POPUP_CONSTANTS } from '../popup';\nimport { IListComponent } from '../list/list';\nimport { LIST_ITEM_CONSTANTS, IListItemComponent, IListItemSelectEventData } from '../list/list-item';\nimport { ScrollEvents, getShadowElement, IScrollObserverConfiguration, ScrollAxisObserver, removeAllChildren, isFunction, removeElement, replaceElement, createVisuallyHiddenElement, isDeepEqual, tryScrollIntoView } from '@tylertech/forge-core';\nimport { ILinearProgressComponent } from '../linear-progress';\nimport { ICON_CONSTANTS, IIconComponent } from '../icon';\n\nexport interface IListDropdownAdapter {\n dropdownElement: HTMLElement | undefined;\n open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void;\n close(): void;\n setScrollBottomListener(listener: () => void, scrollThreshold: number): void;\n removeScrollBottomListener(listener: () => void): void;\n getActiveOptionIndex(): number;\n getSelectedOptionIndex(): number;\n getActiveOptionIdByIndex(index: number): string | null;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n activateSelectedOption(config: IListDropdownOpenConfig): void;\n activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate?: boolean): void;\n setSelectedValues(values: any[], multiple?: boolean): void;\n clearActiveOption(): void;\n syncWidth(sync: boolean, targetWidthCallback?: () => number): void;\n setOptions(config: IListDropdownOpenConfig): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void;\n setBusyVisibility(isVisible: boolean): void;\n getScreenWidth(): number;\n}\n\nexport class ListDropdownAdapter implements IListDropdownAdapter {\n private _dropdownElement: IPopupComponent | undefined;\n private _listElement: IListComponent | undefined;\n private _announcerElement: HTMLElement | undefined;\n private _scrollObserver: ScrollAxisObserver | undefined;\n private _asyncElement: HTMLElement | undefined;\n private _busyElement: ILinearProgressComponent;\n private _headerElement: HTMLElement;\n private _footerElement: HTMLElement;\n\n constructor(private _targetElement: HTMLElement) {}\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._dropdownElement;\n }\n\n public open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void {\n // Now lets create the popup and append the children\n this._dropdownElement = createDropdown(config, this._targetElement);\n this.syncWidth(!!config.syncWidth, config.targetWidthCallback);\n\n // If we are configured to show a busy indicator (linear progress bar across the top), then create and append it first\n if (config.allowBusy) {\n this._busyElement = createBusyElement();\n this._busyElement.style.display = 'none';\n this._dropdownElement.appendChild(this._busyElement);\n }\n\n // Create the header element if a builder exists\n if (config.headerBuilder) {\n this._headerElement = config.headerBuilder();\n if (this._headerElement) {\n this._headerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n \n // Create the footer element if a builder exists\n if (config.footerBuilder) {\n this._footerElement = config.footerBuilder();\n if (this._footerElement) {\n this._footerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n\n // Create the list from our config\n this._listElement = createList(config);\n\n // Add the listener for when list items are selected from the dropdown\n this._listElement.addEventListener(LIST_ITEM_CONSTANTS.events.SELECT, (evt: CustomEvent<IListItemSelectEventData>) => {\n evt.detail.listItem.setAttribute('aria-selected', 'true');\n selectCallback(evt.detail.value, evt.detail.listItem.id);\n });\n\n // Determine if we need to show the list or the async element first\n if (config.options.length) {\n // Now we can create an append the list items\n createListItems(config, this._listElement);\n this._dropdownElement.appendChild(this._listElement);\n\n // Always append the optional header element **first**\n if (this._headerElement) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n\n // Always append the optional footer element **last**\n if (this._footerElement) {\n this._dropdownElement.appendChild(this._footerElement);\n }\n } else if (config.allowBusy) {\n this._asyncElement = createAsyncElement(config.asyncStyle);\n this._dropdownElement.appendChild(this._asyncElement);\n }\n\n // Create the announcer element for a11y\n this._announcerElement = createVisuallyHiddenElement();\n this._announcerElement.id = `${config.id}-activedescendant`;\n this._dropdownElement.appendChild(this._announcerElement);\n\n // Open the popup\n this._dropdownElement.open = true;\n }\n\n public close(): void {\n if (!this._dropdownElement) {\n return;\n }\n this._dropdownElement.open = false;\n this._dropdownElement = undefined;\n this._listElement = undefined;\n this._announcerElement = undefined;\n }\n\n public setScrollBottomListener(listener: () => void, scrollThreshold: number): void {\n if (this._dropdownElement) {\n if (!this._scrollObserver) {\n const scrollTarget = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n const scrollConfig: IScrollObserverConfiguration = { scrollThreshold };\n this._scrollObserver = new ScrollAxisObserver(scrollTarget, scrollConfig);\n this._scrollObserver.addListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n }\n\n public removeScrollBottomListener(listener: () => void): void {\n if (this._scrollObserver) {\n this._scrollObserver.removeListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n\n public getActiveOptionIndex(): number {\n if (!this._dropdownElement) {\n return -1;\n }\n const listItems = this._getListItemElements();\n const activeListItem = [...listItems].reverse().find(li => li.active);\n return activeListItem ? listItems.indexOf(activeListItem) : -1;\n }\n\n public getSelectedOptionIndex(): number {\n const listItems = this._getListItemElements();\n return listItems.findIndex(li => li.selected);\n }\n\n public getActiveOptionIdByIndex(index: number): string | null {\n if (!this._dropdownElement) {\n return null;\n }\n const listItems = this._getListItemElements();\n const item = listItems[index];\n return item ? item.id : null;\n }\n\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n const listItems = this._getListItemElements();\n if (listItems.length && listItems[index]) {\n this._toggleSelectedOption(listItems[index], isSelected);\n }\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n const listItem = this._getSelectedListItem();\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n\n public activateSelectedOption(config: IListDropdownOpenConfig): void {\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n }\n \n const listItem = this._getSelectedListItem();\n if (listItem) {\n this._activateListOption(listItem, config.activeChangeCallback);\n }\n }\n\n public activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate = true): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n this._activateListOption(listItems[index], activeChangeCallback);\n this._scrollListItemIntoView(listItems[index], animate ? 'smooth' : 'auto');\n }\n }\n\n public setSelectedValues(values: any[], multiple = false): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n for (const listItem of listItems) {\n const isSelected = values.some(v => isDeepEqual(v, listItem.value));\n listItem.selected = isSelected;\n\n if (multiple) {\n const checkboxElement = listItem.querySelector(`[${LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT}]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n }\n }\n\n public clearActiveOption(): void {\n const listItems = this._getListItemElements();\n listItems.forEach(li => li.active = false);\n }\n\n public syncWidth(sync: boolean, targetWidthCallback?: () => number): void {\n if (this._dropdownElement) {\n this._dropdownElement.style[sync ? 'width' : 'minWidth'] = `${this._getTargetElementWidth(targetWidthCallback)}px`;\n }\n }\n\n public setOptions(config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n if (this._asyncElement && this._asyncElement.isConnected) {\n removeElement(this._asyncElement);\n }\n if (this._busyElement) {\n this._busyElement.close();\n }\n if (!this._listElement.isConnected) {\n this._dropdownElement.appendChild(this._listElement);\n }\n \n removeAllChildren(this._listElement);\n createListItems(config, this._listElement);\n\n if (this._headerElement && !this._headerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n if (this._footerElement && !this._footerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('beforeend', this._footerElement);\n }\n if ('position' in this._dropdownElement && typeof this._dropdownElement.position === 'function') {\n this._dropdownElement.position();\n }\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n createListItems(config, this._listElement, options);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n if (isVisible) {\n this._busyElement.style.removeProperty('display');\n this._busyElement.open();\n } else {\n this._busyElement.close();\n }\n }\n\n public getScreenWidth(): number {\n return window.innerWidth;\n }\n\n private _getListItemElements(): IListItemComponent[] {\n return this._dropdownElement ? Array.from(this._dropdownElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[] : [];\n }\n\n private _toggleSelectedOption(listItem: IListItemComponent, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n // First we need to remove the active state from any other list items\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeItems = listItems.filter(li => li !== listItem && li.active);\n if (activeItems.length) {\n activeItems.forEach(ai => ai.active = false);\n }\n }\n\n // Now we can toggle the selected state and sync the active state\n listItem.selected = isSelected;\n listItem.setAttribute('aria-selected', `${isSelected}`);\n listItem.setAttribute('aria-checked', `${isSelected}`);\n\n if (isSelected) {\n listItem.active = true;\n }\n\n // Toggle the checkbox icon based on the selected state\n const checkboxElement = listItem.querySelector(`${ICON_CONSTANTS.elementName}[slot=leading]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n\n private _getTargetElementWidth(cb?: () => number): number {\n if (cb && isFunction(cb)) {\n return cb();\n }\n return this._targetElement.getBoundingClientRect().width;\n }\n\n private _activateListOption(listItem: IListItemComponent | undefined, activeChangeCallback?: (id: string) => void): void {\n if (listItem && !listItem.disabled) {\n listItem.active = true;\n if (activeChangeCallback && isFunction(activeChangeCallback)) {\n activeChangeCallback(listItem.id);\n }\n }\n }\n\n private _scrollListItemIntoView(listItem: HTMLElement | undefined, behavior: 'auto' | 'smooth' = 'auto', block: 'nearest' | 'center' = 'nearest'): void {\n if (listItem && this._dropdownElement && this._dropdownElement.isConnected) {\n const scrollContainer = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n if (scrollContainer) {\n tryScrollIntoView(scrollContainer, listItem, behavior, block);\n }\n }\n }\n\n private _getSelectedListItem(): IListItemComponent | undefined {\n const listItems = this._getListItemElements();\n return listItems.find(li => li.selected);\n }\n}\n", "import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\n\nimport { IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { ListDropdownFoundation } from './list-dropdown-foundation';\nimport { ListDropdownAdapter } from './list-dropdown-adapter';\nimport { IconRegistry } from '../icon';\n\nexport interface IListDropdown {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n destroy(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n activateInitialOption(): void;\n clearActiveOption(): void;\n setSelectedValues(values: any[]): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdown implements IListDropdown {\n private _foundation: ListDropdownFoundation;\n\n constructor(private _targetElement: HTMLElement, config: IListDropdownConfig) {\n IconRegistry.define([tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n this._foundation = new ListDropdownFoundation(new ListDropdownAdapter(this._targetElement), config);\n }\n\n public destroy(): void {\n this._foundation.destroy();\n }\n\n /** Opens the dropdown. */\n public open(): void {\n this._foundation.open();\n }\n\n /** Closes the dropdown. */\n public close(): void {\n this._foundation.close();\n }\n\n /** Gets the currently highlighted option index in the dropdown. */\n public getActiveOptionIndex(): number {\n return this._foundation.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n return this._foundation.getActiveOption();\n }\n \n /** Toggles the selected option by index. Only applies when in multiselect mode. */\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._foundation.toggleOptionMultiple(index, isSelected);\n }\n \n /** Activates the first selected option. */\n public activateSelectedOption(): void {\n this._foundation.activateSelectedOption();\n }\n\n /** Activates the first non-disabled option. */\n public activateFirstOption(): number {\n return this._foundation.activateFirstOption();\n }\n\n /** Activates (highlights) an option by index. */\n public activateOption(index: number): void {\n return this._foundation.activateOption(index);\n }\n\n /** Activates the first activatable option. */\n public activateInitialOption(): void {\n return this._foundation.activateInitialOption();\n }\n\n /** Clears the active option from the dropdown */\n public clearActiveOption(): void {\n this._foundation.clearActiveOption();\n }\n\n /** Sets the selected values. Only applies when in multiselect mode. */\n public setSelectedValues(values: any[]): void {\n return this._foundation.setSelectedValues(values);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._foundation.dropdownElement;\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.setOptions(options);\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.appendOptions(options);\n }\n\n public scrollSelectedOptionIntoView(animate?: boolean): void {\n this._foundation.scrollSelectedOptionIntoView();\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._foundation.setScrollBottomListener(listener, threshold);\n }\n\n public removeScrollBottomListener(): void {\n this._foundation.removeScrollBottomListener();\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n this._foundation.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n this._foundation.handleKey(key);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';\n\nexport interface IListDropdownAwareFoundation extends ICustomElementFoundation {\n popupClasses: string | string[];\n popupHeaderBuilder: ListDropdownHeaderBuilder;\n popupFooterBuilder: ListDropdownHeaderBuilder;\n syncPopupWidth: boolean;\n optionLimit: number;\n observeScroll: boolean;\n observeScrollThreshold: number;\n}\n\nexport abstract class ListDropdownAwareFoundation implements IListDropdownAwareFoundation {\n protected _popupClasses: string | string[] = [];\n protected _popupHeaderBuilder: ListDropdownHeaderBuilder;\n protected _popupFooterBuilder: ListDropdownFooterBuilder;\n protected _syncPopupWidth = false;\n protected _optionLimit = 0;\n protected _observeScroll = false;\n protected _observeScrollThreshold = 0;\n\n public get syncPopupWidth(): boolean {\n return this._syncPopupWidth;\n }\n public set syncPopupWidth(value: boolean) {\n this._syncPopupWidth = value;\n }\n\n public get popupClasses(): string | string[] {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n if (typeof value === 'string') {\n value = [value];\n }\n if (Array.isArray(value)) {\n this._popupClasses = value;\n }\n }\n\n public get observeScroll(): boolean {\n return this._observeScroll;\n }\n public set observeScroll(value: boolean) {\n this._observeScroll = value;\n }\n\n public get observeScrollThreshold(): number {\n return this._observeScrollThreshold;\n }\n public set observeScrollThreshold(value: number) {\n this._observeScrollThreshold = value;\n }\n\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n this._optionLimit = value;\n }\n\n public get popupHeaderBuilder(): ListDropdownHeaderBuilder {\n return this._popupHeaderBuilder;\n }\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n public get popupFooterBuilder(): ListDropdownFooterBuilder {\n return this._popupFooterBuilder;\n }\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n protected _applySelection(): void {}\n}\n", "import { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from './list-dropdown-aware-foundation';\n\nexport interface ICascadingListDropdownAwareFoundation extends IListDropdownAwareFoundation {}\n\nexport interface ICascadingListDropdownAwareFoundationConfiguration {\n popupTimeout: number;\n targetTimeout: number;\n}\n\nexport abstract class CascadingListDropdownAwareFoundation<T> extends ListDropdownAwareFoundation implements ICascadingListDropdownAwareFoundation {\n protected _open = false;\n protected _options: T[] = [];\n protected _childOpen = false;\n protected _popupHasMouse = false; // Used to determine if the popup element is under the users mouse\n protected _mouseCoords: { x: number; y: number };\n protected _activeMouseLeaveTimeout: number;\n protected _targetMouseEnterListener: (evt: MouseEvent) => void;\n protected _targetMouseLeaveListener: (evt: MouseEvent) => void;\n protected _childPopupMouseEnterListener: (evt: MouseEvent) => void;\n protected _childPopupMouseLeaveListener: (evt: MouseEvent) => void;\n protected _documentMouseMoveListener: (evt: MouseEvent) => void;\n \n protected abstract _attachCascadingListeners(): void;\n protected abstract _detachCascadingListeners(): void;\n protected abstract _onCascadingOptionSelected(data: any): void;\n protected abstract _onCascadingChildOpen(index: number): void;\n protected abstract _onCascadingChildClose(): void;\n protected abstract _closeDropdown(): void;\n protected abstract _openDropdown(): void;\n protected abstract _isOwnElement(element: Element): boolean;\n\n constructor(private _config: ICascadingListDropdownAwareFoundationConfiguration) {\n super();\n this._targetMouseEnterListener = evt => this._onTargetMouseEnter(evt);\n this._targetMouseLeaveListener = evt => this._onTargetMouseLeave(evt);\n this._childPopupMouseEnterListener = () => this._onChildPopupMouseEnter();\n this._childPopupMouseLeaveListener = () => this._onChildPopupMouseLeave();\n this._documentMouseMoveListener = evt => this._mouseCoords = { x: evt.pageX, y: evt.pageY };\n }\n\n private _onChildPopupMouseEnter(): void {\n this._popupHasMouse = true;\n }\n\n private _onChildPopupMouseLeave(): void {\n this._popupHasMouse = false;\n setTimeout(() => {\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (!this._popupHasMouse && !this._childOpen && (!mouseElement || !this._isOwnElement(mouseElement))) {\n this._closeDropdown();\n }\n }, this._config.popupTimeout);\n }\n\n private _onTargetMouseEnter(evt: MouseEvent): void {\n if (!this._options.length) {\n return;\n }\n this._openDropdown();\n }\n\n private _onTargetMouseLeave(evt: MouseEvent): void {\n // We wrap this in a timeout to allow for the user to take an indirect path toward an open child menu. This\n // allows for the popup to stay open while the user is moving their mouse to it (makes the transition easier and more smooth)\n this._activeMouseLeaveTimeout = window.setTimeout(() => {\n // Ignore this if our open state has changed, or if we have a child popup open now\n if (!this._open || this._childOpen) {\n return;\n }\n if (this._mouseCoords) {\n // We ignore this event if the mouse moved to an element within our own popup\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (mouseElement && this._isOwnElement(mouseElement)) {\n return;\n }\n }\n this._closeDropdown();\n }, this._config.targetTimeout);\n }\n\n protected _clearMouseLeaveTimeout(): void {\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { IPopupPosition, PopupPlacement } from '../popup';\n\nconst attributes = {\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n\n // Internal\n CHECKBOX_ELEMENT: 'data-list-dropdown-checkbox',\n DATA_ALLOW_FOCUS: 'data-list-dropdown-allow-focus'\n};\n\nconst classes = {\n GROUP_WRAPPER: 'forge-list-dropdown__group-wrapper'\n};\n\nexport const LIST_DROPDOWN_CONSTANTS = {\n attributes,\n classes\n};\n\nexport type ListDropdownOptionBuilder<T = HTMLElement> = (option: IListDropdownOption, parentElement: T) => HTMLElement | string | void;\nexport type ListDropdownHeaderBuilder = () => HTMLElement;\nexport type ListDropdownFooterBuilder = () => HTMLElement;\nexport type ListDropdownOptionGroupBuilder = (option: IListDropdownOptionGroup) => HTMLElement;\nexport type ListDropdownTransformCallback = (label: string) => string | HTMLElement;\nexport type ListDropdownIconType = 'font' | 'component';\n\nexport interface IBaseListDropdownOption<T = any> {\n value: T;\n label: string;\n disabled?: boolean;\n divider?: boolean;\n optionClass?: string | string[];\n leadingIcon?: string;\n leadingIconClass?: string;\n leadingIconType?: ListDropdownIconType;\n trailingIcon?: string;\n trailingIconClass?: string;\n trailingIconType?: ListDropdownIconType;\n leadingBuilder?: () => HTMLElement;\n trailingBuilder?: () => HTMLElement;\n}\n\nexport interface IListDropdownOption<T = any> extends IBaseListDropdownOption<T> {\n options?: Array<IListDropdownOption | IListDropdownOptionGroup>;\n elementAttributes?: Map<string, string>;\n}\n\nexport interface IListDropdownOptionGroup {\n options: IListDropdownOption[];\n text?: string;\n builder?: ListDropdownOptionGroupBuilder;\n}\n\nexport interface IListDropdownSelectEventData {\n value: IListDropdownOption | IListDropdownOption[];\n}\n\nexport interface IListDropdownConfig<T = any> {\n id: string;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n selectCallback: (value: T) => void;\n \n // Optional values\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n syncWidth?: boolean;\n selectedValues?: T[];\n multiple?: boolean;\n activeStartIndex?: number;\n transform?: ListDropdownTransformCallback;\n allowBusy?: boolean;\n asyncStyle?: ListDropdownAsyncStyle;\n iconClass?: string;\n dense?: boolean;\n type?: ListDropdownType;\n popupClasses?: string | string[];\n popupOffset?: IPopupPosition;\n popupStatic?: boolean;\n popupPlacement?: PopupPlacement;\n optionLimit?: number;\n optionBuilder?: ListDropdownOptionBuilder;\n observeScroll?: boolean;\n observeScrollThreshold?: number;\n targetWidthCallback?: () => number;\n scrollEndListener?: () => void;\n headerBuilder?: ListDropdownHeaderBuilder;\n footerBuilder?: ListDropdownFooterBuilder;\n cascade?: boolean;\n cascadingElementFactory?: (config: IListDropdownCascadingElementFactoryConfig) => HTMLElement;\n}\n\nexport interface IListDropdownCascadingElementFactoryConfig {\n index: number;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n parentValue: any;\n}\n\nexport const DEFAULT_LIST_DROPDOWN_CONFIG: Partial<IListDropdownConfig> = {\n options: [],\n syncWidth: false,\n selectedValues: [],\n multiple: false\n};\n\nexport interface IListDropdownOpenConfig extends IListDropdownConfig {}\n\nexport enum ListDropdownType {\n None = 'none',\n Standard = 'standard',\n Menu = 'menu'\n}\n\nexport enum ListDropdownAsyncStyle {\n Spinner = 'spinner',\n Skeleton = 'skeleton'\n}\n", "export class EventAware {\n constructor() {\n this._listenerMap = new Map();\n }\n _emit(type, data) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length) {\n listeners.forEach(cb => cb({ type, data }));\n }\n }\n hasListeners(type) {\n return type ? this._listenerMap.has(type) : this._listenerMap.size > 0;\n }\n addListener(type, listener) {\n if (!this._listenerMap.has(type)) {\n this._listenerMap.set(type, [listener]);\n }\n else {\n const listeners = this._listenerMap.get(type);\n if (listeners) {\n listeners.push(listener);\n }\n }\n }\n removeListener(type, listener) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length && listeners.includes(listener)) {\n listeners.splice(listeners.indexOf(listener), 1);\n if (!listeners.length) {\n this._listenerMap.delete(type);\n }\n }\n }\n}\n", "export var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[\"Up\"] = \"up\";\n ScrollDirection[\"Down\"] = \"down\";\n ScrollDirection[\"Left\"] = \"left\";\n ScrollDirection[\"Right\"] = \"right\";\n})(ScrollDirection || (ScrollDirection = {}));\nexport var ScrollEvents;\n(function (ScrollEvents) {\n ScrollEvents[\"Scroll\"] = \"scroll\";\n ScrollEvents[\"Scrolled\"] = \"scrolled\";\n ScrollEvents[\"ScrolledStart\"] = \"scrolled-start\";\n ScrollEvents[\"ScrolledEnd\"] = \"scrolled-end\";\n})(ScrollEvents || (ScrollEvents = {}));\n", "import { EventAware } from '../events/event-aware';\nimport { ScrollEvents, ScrollDirection } from './scroll-types';\nimport { isDefined, throttle, isNumber } from '../utils';\nconst DEFAULT_SCROLL_THROTTLE = 100;\n/**\n * Provides facilties for observing and reacting to scroll events and information on a given element.\n */\nexport class ScrollAxisObserver extends EventAware {\n constructor(_element, _config = {}) {\n super();\n this._element = _element;\n this._config = _config;\n this._axis = 'vertical';\n this._scrollThreshold = 0;\n this._lastScrollPosition = 0;\n this._lastScrollTop = 0;\n this._lastScrollLeft = 0;\n this._isListening = false;\n this._initialize();\n }\n destroy() {\n this.stop();\n }\n start() {\n if (!this._isListening) {\n this._element.addEventListener('scroll', this._scrollListener);\n this._isListening = true;\n }\n }\n stop() {\n this._element.removeEventListener('scroll', this._scrollListener);\n this._isListening = false;\n }\n _initialize() {\n if (this._config.throttle) {\n const wait = this._config.throttleTime || DEFAULT_SCROLL_THROTTLE;\n this._scrollListener = throttle(() => this._onScroll(), wait);\n }\n else {\n this._scrollListener = () => this._onScroll();\n }\n if (!isDefined(this._config.paused) || !this._config.paused) {\n this.start();\n }\n if (isDefined(this._config.axis)) {\n this._axis = this._config.axis;\n }\n if (isDefined(this._config.scrollThreshold) && isNumber(this._config.scrollThreshold)) {\n this._scrollThreshold = this._config.scrollThreshold;\n }\n }\n _isScrollAxis() {\n const isVertical = this._lastScrollTop !== this._element.scrollTop;\n const isHorizontal = this._lastScrollLeft !== this._element.scrollLeft;\n return (this._axis === 'vertical' && isVertical) || (this._axis === 'horizontal' && isHorizontal);\n }\n _onScroll() {\n if (!this._isScrollAxis()) {\n return;\n }\n const position = this.scrollPosition;\n const direction = this._lastScrollPosition - position < 0 ? this._axis === 'vertical' ? ScrollDirection.Down : ScrollDirection.Right : this._axis === 'vertical' ? ScrollDirection.Up : ScrollDirection.Left;\n this._emit(ScrollEvents.Scroll, { direction, position });\n if (this._lastScrollPosition <= this._scrollThreshold && position > this._scrollThreshold) {\n this._emit(ScrollEvents.Scrolled, true);\n }\n else if (this._lastScrollPosition >= this._scrollThreshold && (this._scrollThreshold > 0 ? position < this._scrollThreshold : position === 0)) {\n this._emit(ScrollEvents.Scrolled, false);\n }\n const scrollStart = Math.round(position - this._scrollThreshold);\n const scrollEnd = Math.round(this.scrollSize - position);\n if (this._lastScrollPosition >= this._scrollThreshold && scrollStart <= 0) {\n this._emit(ScrollEvents.ScrolledStart);\n }\n else if (this._lastScrollPosition <= (this.scrollSize - this._scrollThreshold) && scrollEnd <= this._scrollThreshold) {\n this._emit(ScrollEvents.ScrolledEnd);\n }\n this._lastScrollPosition = position || 0;\n this._lastScrollTop = this._element.scrollTop || 0;\n this._lastScrollLeft = this._element.scrollLeft || 0;\n }\n get scrollPosition() {\n return this._axis === 'vertical' ? this._element.scrollTop : this._element.scrollLeft;\n }\n get isScrolled() {\n return this.scrollPosition > this._scrollThreshold;\n }\n get isScrolledStart() {\n return this.scrollPosition === 0;\n }\n get isScrolledEnd() {\n return this.scrollPosition === this._element.scrollWidth;\n }\n get isScrollable() {\n if (this._axis === 'vertical') {\n return this._element.scrollHeight > this._element.clientHeight;\n }\n return this._element.scrollWidth > this._element.clientWidth;\n }\n get scrollSize() {\n return (this._axis === 'vertical' ? this._element.scrollHeight : this._element.scrollWidth) - this.elementSize;\n }\n get elementSize() {\n return this._axis === 'vertical' ? this._element.clientHeight : this._element.clientWidth;\n }\n setScrollPosition(position) {\n if (this._axis === 'vertical') {\n this._element.scrollTop = position;\n }\n else {\n this._element.scrollLeft = position;\n }\n }\n}\n", "import { addClass, getEventPath, isDefined, isObject, isDeepEqual } from '@tylertech/forge-core';\nimport { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { ILinearProgressComponent, LINEAR_PROGRESS_CONSTANTS } from '../linear-progress';\nimport { IListComponent, LIST_CONSTANTS } from '../list/list';\nimport { IListItemComponent, LIST_ITEM_CONSTANTS } from '../list/list-item';\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../popup';\nimport { ISkeletonComponent, SKELETON_CONSTANTS } from '../skeleton';\nimport { IListDropdownCascadingElementFactoryConfig, IListDropdownOpenConfig, IListDropdownOption, IListDropdownOptionGroup, ListDropdownAsyncStyle, ListDropdownIconType, ListDropdownType, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\n\nexport enum ListDropdownOptionType { Option, Group }\n\n/**\n * Creates the floating dropdown element container.\n * @param config \n * @param targetElement \n */\nexport function createDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const dropdownElement = createPopupDropdown(config, targetElement);\n const dropdownId = `list-dropdown-popup-${config.id}`;\n\n // Prevent mousedown events from changing focus. We keep focus in the target element at all times while open.\n dropdownElement.addEventListener('mousedown', evt => {\n const composedPath = getEventPath(evt);\n\n // We allow for custom header and footer templates and these elements could be focusable so we need to allow access into them\n const isFromCustomTemplate = composedPath.find(el => el.nodeType === 1 && el.hasAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS));\n if (isFromCustomTemplate) {\n return;\n }\n\n const isWithinDropdownElement = composedPath.find(el => el.id === dropdownId || el.id === config.id);\n if (isWithinDropdownElement) {\n evt.preventDefault();\n }\n });\n\n // Set roles and other attributes based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n dropdownElement.setAttribute('role', 'menu');\n dropdownElement.setAttribute('aria-orientation', 'vertical');\n break;\n default:\n dropdownElement.setAttribute('role', 'listbox');\n }\n\n if (config.id) {\n dropdownElement.id = dropdownId;\n }\n if (config.popupClasses) {\n addClass(config.popupClasses, dropdownElement);\n }\n\n return dropdownElement;\n}\n\nexport function createPopupDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const popupElement = document.createElement(POPUP_CONSTANTS.elementName) as IPopupComponent;\n popupElement.targetElement = targetElement;\n popupElement.placement = config.popupPlacement || 'bottom-start';\n popupElement.manageFocus = false;\n popupElement.static = !!config.popupStatic;\n\n if (config.popupOffset) {\n popupElement.offset = config.popupOffset;\n }\n\n // Set the animations based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n popupElement.animationType = PopupAnimationType.Menu;\n break;\n case ListDropdownType.None:\n popupElement.animationType = PopupAnimationType.None;\n break;\n default:\n popupElement.animationType = PopupAnimationType.Dropdown;\n }\n return popupElement;\n}\n\nexport function createList(config: IListDropdownOpenConfig): IListComponent {\n const listElement = document.createElement(LIST_CONSTANTS.elementName) as IListComponent;\n listElement.id = `list-dropdown-list-${config.id}`;\n listElement.propagateClick = false;\n return listElement;\n}\n\n/**\n * Creates the list to place inside of the dropdown.\n * @param config \n */\nexport function createListItems(config: IListDropdownOpenConfig, listElement: IListComponent, options?: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n // Ensure the options are provided in the form a group (if no groups provided, then we have one anonymous group of options)\n const groups = getOptionsByGroup(options || config.options);\n\n const limitOptions = config.optionLimit ? true : false;\n let optionLimit = config.optionLimit || 0;\n let optionIndex = 0;\n\n // Iterate over our groups and render the optional headers and options for that group\n for (const group of groups) {\n let optionParent: IListComponent | HTMLElement = listElement;\n\n // Check for a group header builder callback\n if (group.builder && typeof group.builder === 'function') {\n const headerElement = group.builder(group);\n if (headerElement) {\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n optionParent = groupWrapper;\n groupWrapper.appendChild(headerElement);\n listElement.appendChild(groupWrapper);\n }\n } else if (group.text) {\n // We are rendering just text as a group header so create the group header element with predefined styles\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n\n const listHeaderElement = document.createElement('div');\n listHeaderElement.textContent = group.text;\n listHeaderElement.classList.add('forge-typography--overline');\n listHeaderElement.style.fontFamily = 'Roboto,sans-serif';\n listHeaderElement.style.fontSize = '0.75rem';\n listHeaderElement.style.lineHeight = '2rem';\n listHeaderElement.style.letterSpacing = '0.16667em';\n listHeaderElement.style.fontWeight = '500';\n listHeaderElement.style.margin = '4px 8px';\n\n optionParent = groupWrapper;\n groupWrapper.appendChild(listHeaderElement);\n listElement.appendChild(groupWrapper);\n }\n\n // Loop over the options for this group\n for (const option of group.options) {\n // First we check if this option is just a divider\n if (option.divider) {\n const dividerElement = createDivider();\n listElement.appendChild(dividerElement);\n continue;\n }\n\n // Check if an option limit has been provided to reduce amount of options that need to be rendered\n if (limitOptions && --optionLimit < 0) {\n break;\n }\n\n optionIndex++;\n \n // Create and configure the list element\n const isSelected = config.selectedValues ? config.selectedValues.some(v => isDeepEqual(v, option.value)) : false;\n let listItemElement = document.createElement(LIST_ITEM_CONSTANTS.elementName) as IListItemComponent;\n listItemElement.value = option.value;\n listItemElement.id = `list-dropdown-option-${config.id}-${optionIndex}`;\n listItemElement.style.cursor = 'pointer';\n\n // Add any CSS classes to the option list-item\n if (option.optionClass && (typeof option.optionClass === 'string' || Array.isArray(option.optionClass) && option.optionClass.length)) {\n addClass(option.optionClass, listItemElement);\n }\n\n // Set role based on type\n switch (config.type) {\n case ListDropdownType.Menu:\n listItemElement.setAttribute('role', 'menuitem');\n break;\n case ListDropdownType.None:\n break;\n default:\n listItemElement.setAttribute('role', 'option');\n }\n\n if (config.dense) {\n listItemElement.dense = true;\n }\n\n // Check for a custom option template builder\n if (config.optionBuilder && typeof config.optionBuilder === 'function') {\n const element = config.optionBuilder(option, listItemElement);\n if (element) {\n if (typeof element === 'string') {\n listItemElement.innerHTML = element;\n } else {\n listItemElement.appendChild(element);\n }\n }\n } else {\n if (typeof config.transform !== 'function') {\n listItemElement.textContent = option.label || '';\n } else {\n const result = config.transform(option.label);\n if (typeof result === 'string') {\n listItemElement.textContent = result;\n } else if (typeof result === 'object' && (result as HTMLElement).nodeType !== undefined) {\n listItemElement.appendChild(result);\n }\n }\n }\n\n // Leading element/icon\n if (option.leadingBuilder) {\n const element = option.leadingBuilder();\n if (isObject(element)) {\n element.slot = 'leading';\n listItemElement.appendChild(element);\n }\n } else if (option.leadingIcon) {\n const leadingIconElement = createIconElement(option.leadingIconType, option.leadingIcon, option.leadingIconClass || config.iconClass);\n leadingIconElement.slot = 'leading';\n listItemElement.appendChild(leadingIconElement);\n }\n\n // Trailing element/icon\n if (option.trailingBuilder) {\n const element = option.trailingBuilder();\n if (isObject(element)) {\n element.slot = 'trailing';\n listItemElement.appendChild(element);\n }\n } else if (option.trailingIcon) {\n const trailingIconElement = createIconElement(option.trailingIconType, option.trailingIcon, option.trailingIconClass || config.iconClass);\n trailingIconElement.slot = 'trailing';\n listItemElement.appendChild(trailingIconElement);\n }\n\n // Update the disabled state\n if (option.disabled) {\n listItemElement.disabled = option.disabled;\n listItemElement.setAttribute('aria-disabled', 'true');\n } else {\n listItemElement.style.cursor = 'pointer';\n listItemElement.setAttribute('aria-disabled', 'false');\n }\n\n // Update the selected state\n if (isSelected) {\n listItemElement.selected = true;\n }\n listItemElement.setAttribute('aria-selected', isSelected ? 'true' : 'false');\n\n // If multiple selections are enabled then we need to create and append a leading checkbox element\n if (config.multiple) {\n const checkboxElement = createCheckboxElement(isSelected);\n listItemElement.appendChild(checkboxElement);\n listItemElement.setAttribute('aria-selected', `${isSelected}`);\n listItemElement.setAttribute('aria-checked', `${isSelected}`);\n }\n\n if (option.elementAttributes) {\n option.elementAttributes.forEach((value: string, key: string) => {\n listItemElement.setAttribute(key, value);\n });\n }\n\n // If we have any child options, we need to render a child menu for this list item\n if (!option.disabled && typeof config.cascadingElementFactory === 'function' && Array.isArray(option.options) && option.options.length) {\n // Create the trailing indicator icon to show that a child menu exists for this option. \n const optionIconElement = document.createElement('forge-icon');\n optionIconElement.name = 'arrow_right';\n optionIconElement.slot = 'trailing';\n listItemElement.appendChild(optionIconElement);\n\n const nonDividerOptions = group.options.filter(o => !o.divider);\n\n // Create the nested cascading element wrapper\n const factoryConfig: IListDropdownCascadingElementFactoryConfig = {\n index: nonDividerOptions.indexOf(option),\n options: option.options,\n parentValue: option.value\n };\n const cascadingElement = config.cascadingElementFactory.call(null, factoryConfig);\n cascadingElement.appendChild(listItemElement);\n listItemElement = cascadingElement;\n }\n\n optionParent.appendChild(listItemElement);\n }\n }\n}\n\nexport function createCheckboxElement(selected: boolean): HTMLElement {\n const checkboxElement = document.createElement('forge-icon');\n checkboxElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT, '');\n checkboxElement.name = selected ? tylIconCheckBox.name : tylIconCheckBoxOutlineBlank.name;\n checkboxElement.slot = 'leading';\n checkboxElement.style.marginRight = '16px';\n checkboxElement.style.verticalAlign = 'middle';\n return checkboxElement;\n}\n\nfunction createDivider(): HTMLElement {\n const divider = document.createElement('forge-divider');\n divider.setAttribute('aria-hidden', 'true');\n return divider;\n}\n\nfunction createIconElement(type: ListDropdownIconType = 'font', iconName: string, iconClass?: string): HTMLElement {\n if (type === 'component') {\n const icon = document.createElement('forge-icon');\n if (iconClass) {\n icon.classList.add(iconClass);\n }\n icon.setAttribute('aria-hidden', 'true');\n icon.name = iconName;\n return icon;\n }\n\n const iconElement = document.createElement('i');\n iconElement.classList.add(iconClass || ICON_CLASS_NAME);\n iconElement.setAttribute('aria-hidden', 'true');\n iconElement.textContent = iconName;\n return iconElement;\n}\n\nexport function createAsyncElement(asyncStyle?: ListDropdownAsyncStyle): HTMLElement {\n switch (asyncStyle) {\n case ListDropdownAsyncStyle.Skeleton:\n return createSkeletonElement();\n default:\n return createSpinnerElement();\n }\n}\n\nfunction createSpinnerElement(): HTMLElement {\n const div = document.createElement('div');\n div.style.display = 'flex';\n div.style.justifyContent = 'center';\n div.style.alignItems = 'center';\n div.style.padding = '8px';\n div.style.boxSizing = 'border-box';\n\n const spinner = document.createElement('forge-circular-progress');\n spinner.style.setProperty('--forge-circular-progress-size', '24px');\n div.appendChild(spinner);\n\n return div;\n}\n\nfunction createSkeletonElement(): HTMLElement {\n const list = document.createElement('forge-list');\n const div = document.createElement('div');\n div.style.minWidth = '192px';\n for (let i = 0; i < 3; i++) {\n const listItemSkeleton = document.createElement(SKELETON_CONSTANTS.elementName) as ISkeletonComponent;\n listItemSkeleton.setAttribute('list-item', '');\n div.appendChild(listItemSkeleton);\n }\n list.appendChild(div);\n return list;\n}\n\nexport function createBusyElement(): ILinearProgressComponent {\n const linearProgress = document.createElement(LINEAR_PROGRESS_CONSTANTS.elementName) as ILinearProgressComponent;\n linearProgress.determinate = false;\n linearProgress.style.position = 'absolute';\n linearProgress.style.top = '0';\n linearProgress.style.left = '0';\n linearProgress.style.right = '0';\n linearProgress.style.width = '100%';\n return linearProgress;\n}\n\nfunction getOptionsByGroup(options: Array<IListDropdownOption | IListDropdownOptionGroup>): IListDropdownOptionGroup[] {\n return isListDropdownOptionType(options, ListDropdownOptionType.Group) ? (options as IListDropdownOptionGroup[]) : [{ text: '', options }] as IListDropdownOptionGroup[];\n}\n\n/**\n * Determines if the provided options are of the specified type.\n * @param options The options either grouped or individual.\n * @param type The type of option to detect.\n */\nexport function isListDropdownOptionType(options: Array<IListDropdownOption | IListDropdownOptionGroup>, type: ListDropdownOptionType): type is ListDropdownOptionType {\n const isOptionGroups = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('options') && (o.hasOwnProperty('text') || o.hasOwnProperty('builder')));\n const isOptionTypes = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value'));\n return (isOptionGroups && type === ListDropdownOptionType.Group) || (isOptionTypes && type === ListDropdownOptionType.Option);\n}\n", "import { IListDropdownAdapter } from './list-dropdown-adapter';\nimport { DEFAULT_LIST_DROPDOWN_CONFIG, IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { isListDropdownOptionType, ListDropdownOptionType } from './list-dropdown-utils';\n\nexport interface IListDropdownFoundation {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n setSelectedValues(values: any): void;\n clearActiveOption(): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdownFoundation implements IListDropdownFoundation {\n private _config: IListDropdownConfig;\n private _open = false;\n private _selectListener: (value: any, id: string) => void;\n private _closeListener: () => void;\n private _scrollEndListener: () => void;\n\n constructor(private _adapter: IListDropdownAdapter, config: IListDropdownConfig) {\n this._config = Object.assign({ ...DEFAULT_LIST_DROPDOWN_CONFIG }, { ...config });\n this._selectListener = (value, id) => this._onSelect(value, id);\n this._closeListener = () => {\n if (typeof this._config.closeCallback === 'function') {\n this._config.closeCallback();\n }\n };\n this._scrollEndListener = () => {\n if (this._config.observeScroll && typeof this._config.scrollEndListener === 'function') {\n this._config.scrollEndListener();\n }\n };\n }\n\n public destroy(): void {\n if (this._open) {\n this.close();\n }\n }\n\n public open(): void {\n if (!this._open) {\n this._open = true;\n this._adapter.open(this._config, this._selectListener, this._closeListener);\n window.requestAnimationFrame(() => {\n if (this._open) {\n this.activateInitialOption();\n }\n });\n\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n }\n }\n\n public close(): void {\n if (this._open) {\n this._open = false;\n this._adapter.close();\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n }\n }\n\n private _onSelect(value: any, id: string): void {\n if (typeof this._config.activeChangeCallback === 'function') {\n this._config.activeChangeCallback(id);\n }\n\n if (typeof this._config.selectCallback === 'function') {\n this._config.selectCallback(value);\n }\n\n if (this._open) {\n const sync = this._config.syncWidth === undefined ? true : false;\n // Keep the popup width at least the same as the target if the target size has now changed\n this._adapter.syncWidth(sync);\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._adapter.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n const index = this.getActiveOptionIndex();\n return index >= 0 ? this._nonDividerOptions[index] : undefined;\n }\n \n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._adapter.toggleOptionMultiple(index, isSelected);\n }\n\n public activateSelectedOption(): void {\n this._adapter.activateSelectedOption(this._config);\n }\n\n public activateFirstOption(): number {\n const index = this._nonDividerOptions.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateLastOption(): number {\n const options = this._nonDividerOptions;\n const index = (options.length - 1) - options.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateOption(index: number, animate?: boolean): void {\n return this._adapter.activateOption(index, this._config.activeChangeCallback, animate);\n }\n\n public activateInitialOption(): void {\n if (typeof this._config.activeStartIndex === 'number' && this._nonDividerOptions[this._config.activeStartIndex]) {\n this.activateOption(this._config.activeStartIndex, false);\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (this._config.selectedValues && this._config.selectedValues.length) {\n this._adapter.scrollSelectedOptionIntoView(false);\n }\n }\n\n public setSelectedValues(values: any[]): void {\n if (!Array.isArray(values)) {\n values = [values];\n }\n if (!this._config.multiple && values.length > 1) {\n values = [values[0]];\n }\n this._config.selectedValues = values;\n this._adapter.setSelectedValues(values, this._config.multiple);\n }\n\n public clearActiveOption(): void {\n this._adapter.clearActiveOption();\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = options;\n if (!this._open) {\n return;\n }\n this._adapter.setOptions(this._config);\n this.activateInitialOption();\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = [...this._config.options, ...options] as Array<IListDropdownOption | IListDropdownOptionGroup>;\n if (!this._open) {\n return;\n }\n this._adapter.appendOptions(options, this._config);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._adapter.dropdownElement;\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n this._adapter.scrollSelectedOptionIntoView(animate);\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._config.scrollEndListener = listener;\n this._config.observeScroll = true;\n this._config.observeScrollThreshold = threshold;\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n\n public removeScrollBottomListener(): void {\n this._config.scrollEndListener = undefined;\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._config.allowBusy) {\n return;\n }\n this._adapter.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n switch (key) {\n case 'Enter':\n case 'NumpadEnter':\n const activeOptionIndex = this.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeOptionIndex];\n if (this._canSelectOption(activeOption)) {\n const id = this._adapter.getActiveOptionIdByIndex(activeOptionIndex);\n if (id) {\n this._onSelect(activeOption.value, id);\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n case 'Down':\n case 'ArrowDown':\n const options = this._nonDividerOptions;\n if (options.length && options.every(o => !this._canSelectOption(o))) {\n return;\n }\n const index = this._getNextActiveOptionIndex(key);\n this.activateOption(index);\n break;\n case 'Home':\n this.activateFirstOption();\n break;\n case 'End':\n this.activateLastOption();\n break;\n }\n }\n\n private _canSelectOption(option: IListDropdownOption): boolean {\n return option && !option.disabled && !option.divider;\n }\n\n private _getNextActiveOptionIndex(key: string): number {\n let index = this._adapter.getActiveOptionIndex();\n if (index === -1) {\n index = this._adapter.getSelectedOptionIndex();\n }\n if (key === 'ArrowUp' || key === 'Up') {\n return this._getPreviousHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n return this._getNextHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n\n private _getPreviousHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex <= 0 ? options.length - 1 : startIndex - 1;\n if (options[index].disabled) {\n return this._getPreviousHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _getNextHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex === options.length - 1 ? 0 : startIndex + 1;\n if (options[index].disabled) {\n return this._getNextHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private get _flatOptions(): IListDropdownOption[] {\n if (isListDropdownOptionType(this._config.options, ListDropdownOptionType.Group)) {\n const groups = this._config.options as IListDropdownOptionGroup[];\n return groups.reduce((flatOpts, group) => flatOpts.concat(group.options), [] as IListDropdownOption[]);\n }\n return [...this._config.options as IListDropdownOption[]];\n }\n\n private get _nonDividerOptions(): IListDropdownOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n}\n", "import { IListDropdownOption, IListDropdownOpenConfig, IListDropdownOptionGroup, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\nimport { createDropdown, createList, createListItems, createAsyncElement, createBusyElement, createCheckboxElement } from './list-dropdown-utils';\nimport { IPopupComponent, POPUP_CONSTANTS } from '../popup';\nimport { IListComponent } from '../list/list';\nimport { LIST_ITEM_CONSTANTS, IListItemComponent, IListItemSelectEventData } from '../list/list-item';\nimport { ScrollEvents, getShadowElement, IScrollObserverConfiguration, ScrollAxisObserver, removeAllChildren, isFunction, removeElement, replaceElement, createVisuallyHiddenElement, isDeepEqual, tryScrollIntoView } from '@tylertech/forge-core';\nimport { ILinearProgressComponent } from '../linear-progress';\nimport { ICON_CONSTANTS, IIconComponent } from '../icon';\n\nexport interface IListDropdownAdapter {\n dropdownElement: HTMLElement | undefined;\n open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void;\n close(): void;\n setScrollBottomListener(listener: () => void, scrollThreshold: number): void;\n removeScrollBottomListener(listener: () => void): void;\n getActiveOptionIndex(): number;\n getSelectedOptionIndex(): number;\n getActiveOptionIdByIndex(index: number): string | null;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n activateSelectedOption(config: IListDropdownOpenConfig): void;\n activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate?: boolean): void;\n setSelectedValues(values: any[], multiple?: boolean): void;\n clearActiveOption(): void;\n syncWidth(sync: boolean, targetWidthCallback?: () => number): void;\n setOptions(config: IListDropdownOpenConfig): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void;\n setBusyVisibility(isVisible: boolean): void;\n getScreenWidth(): number;\n}\n\nexport class ListDropdownAdapter implements IListDropdownAdapter {\n private _dropdownElement: IPopupComponent | undefined;\n private _listElement: IListComponent | undefined;\n private _announcerElement: HTMLElement | undefined;\n private _scrollObserver: ScrollAxisObserver | undefined;\n private _asyncElement: HTMLElement | undefined;\n private _busyElement: ILinearProgressComponent;\n private _headerElement: HTMLElement;\n private _footerElement: HTMLElement;\n\n constructor(private _targetElement: HTMLElement) {}\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._dropdownElement;\n }\n\n public open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void {\n // Now lets create the popup and append the children\n this._dropdownElement = createDropdown(config, this._targetElement);\n this.syncWidth(!!config.syncWidth, config.targetWidthCallback);\n\n // If we are configured to show a busy indicator (linear progress bar across the top), then create and append it first\n if (config.allowBusy) {\n this._busyElement = createBusyElement();\n this._busyElement.style.display = 'none';\n this._dropdownElement.appendChild(this._busyElement);\n }\n\n // Create the header element if a builder exists\n if (config.headerBuilder) {\n this._headerElement = config.headerBuilder();\n if (this._headerElement) {\n this._headerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n \n // Create the footer element if a builder exists\n if (config.footerBuilder) {\n this._footerElement = config.footerBuilder();\n if (this._footerElement) {\n this._footerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n\n // Create the list from our config\n this._listElement = createList(config);\n\n // Add the listener for when list items are selected from the dropdown\n this._listElement.addEventListener(LIST_ITEM_CONSTANTS.events.SELECT, (evt: CustomEvent<IListItemSelectEventData>) => {\n evt.detail.listItem.setAttribute('aria-selected', 'true');\n selectCallback(evt.detail.value, evt.detail.listItem.id);\n });\n\n // Determine if we need to show the list or the async element first\n if (config.options.length) {\n // Now we can create an append the list items\n createListItems(config, this._listElement);\n this._dropdownElement.appendChild(this._listElement);\n\n // Always append the optional header element **first**\n if (this._headerElement) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n\n // Always append the optional footer element **last**\n if (this._footerElement) {\n this._dropdownElement.appendChild(this._footerElement);\n }\n } else if (config.allowBusy) {\n this._asyncElement = createAsyncElement(config.asyncStyle);\n this._dropdownElement.appendChild(this._asyncElement);\n }\n\n // Create the announcer element for a11y\n this._announcerElement = createVisuallyHiddenElement();\n this._announcerElement.id = `${config.id}-activedescendant`;\n this._dropdownElement.appendChild(this._announcerElement);\n\n // Open the popup\n this._dropdownElement.open = true;\n }\n\n public close(): void {\n if (!this._dropdownElement) {\n return;\n }\n this._dropdownElement.open = false;\n this._dropdownElement = undefined;\n this._listElement = undefined;\n this._announcerElement = undefined;\n }\n\n public setScrollBottomListener(listener: () => void, scrollThreshold: number): void {\n if (this._dropdownElement) {\n if (!this._scrollObserver) {\n const scrollTarget = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n const scrollConfig: IScrollObserverConfiguration = { scrollThreshold };\n this._scrollObserver = new ScrollAxisObserver(scrollTarget, scrollConfig);\n this._scrollObserver.addListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n }\n\n public removeScrollBottomListener(listener: () => void): void {\n if (this._scrollObserver) {\n this._scrollObserver.removeListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n\n public getActiveOptionIndex(): number {\n if (!this._dropdownElement) {\n return -1;\n }\n const listItems = this._getListItemElements();\n const activeListItem = [...listItems].reverse().find(li => li.active);\n return activeListItem ? listItems.indexOf(activeListItem) : -1;\n }\n\n public getSelectedOptionIndex(): number {\n const listItems = this._getListItemElements();\n return listItems.findIndex(li => li.selected);\n }\n\n public getActiveOptionIdByIndex(index: number): string | null {\n if (!this._dropdownElement) {\n return null;\n }\n const listItems = this._getListItemElements();\n const item = listItems[index];\n return item ? item.id : null;\n }\n\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n const listItems = this._getListItemElements();\n if (listItems.length && listItems[index]) {\n this._toggleSelectedOption(listItems[index], isSelected);\n }\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n const listItem = this._getSelectedListItem();\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n\n public activateSelectedOption(config: IListDropdownOpenConfig): void {\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n }\n \n const listItem = this._getSelectedListItem();\n if (listItem) {\n this._activateListOption(listItem, config.activeChangeCallback);\n }\n }\n\n public activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate = true): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n this._activateListOption(listItems[index], activeChangeCallback);\n this._scrollListItemIntoView(listItems[index], animate ? 'smooth' : 'auto');\n }\n }\n\n public setSelectedValues(values: any[], multiple = false): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n for (const listItem of listItems) {\n const isSelected = values.some(v => isDeepEqual(v, listItem.value));\n listItem.selected = isSelected;\n\n if (multiple) {\n const checkboxElement = listItem.querySelector(`[${LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT}]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n }\n }\n\n public clearActiveOption(): void {\n const listItems = this._getListItemElements();\n listItems.forEach(li => li.active = false);\n }\n\n public syncWidth(sync: boolean, targetWidthCallback?: () => number): void {\n if (this._dropdownElement) {\n this._dropdownElement.style[sync ? 'width' : 'minWidth'] = `${this._getTargetElementWidth(targetWidthCallback)}px`;\n }\n }\n\n public setOptions(config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n if (this._asyncElement && this._asyncElement.isConnected) {\n removeElement(this._asyncElement);\n }\n if (this._busyElement) {\n this._busyElement.close();\n }\n if (!this._listElement.isConnected) {\n this._dropdownElement.appendChild(this._listElement);\n }\n \n removeAllChildren(this._listElement);\n createListItems(config, this._listElement);\n\n if (this._headerElement && !this._headerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n if (this._footerElement && !this._footerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('beforeend', this._footerElement);\n }\n if ('position' in this._dropdownElement && typeof this._dropdownElement.position === 'function') {\n this._dropdownElement.position();\n }\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n createListItems(config, this._listElement, options);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n if (isVisible) {\n this._busyElement.style.removeProperty('display');\n this._busyElement.open();\n } else {\n this._busyElement.close();\n }\n }\n\n public getScreenWidth(): number {\n return window.innerWidth;\n }\n\n private _getListItemElements(): IListItemComponent[] {\n return this._dropdownElement ? Array.from(this._dropdownElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[] : [];\n }\n\n private _toggleSelectedOption(listItem: IListItemComponent, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n // First we need to remove the active state from any other list items\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeItems = listItems.filter(li => li !== listItem && li.active);\n if (activeItems.length) {\n activeItems.forEach(ai => ai.active = false);\n }\n }\n\n // Now we can toggle the selected state and sync the active state\n listItem.selected = isSelected;\n listItem.setAttribute('aria-selected', `${isSelected}`);\n listItem.setAttribute('aria-checked', `${isSelected}`);\n\n if (isSelected) {\n listItem.active = true;\n }\n\n // Toggle the checkbox icon based on the selected state\n const checkboxElement = listItem.querySelector(`${ICON_CONSTANTS.elementName}[slot=leading]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n\n private _getTargetElementWidth(cb?: () => number): number {\n if (cb && isFunction(cb)) {\n return cb();\n }\n return this._targetElement.getBoundingClientRect().width;\n }\n\n private _activateListOption(listItem: IListItemComponent | undefined, activeChangeCallback?: (id: string) => void): void {\n if (listItem && !listItem.disabled) {\n listItem.active = true;\n if (activeChangeCallback && isFunction(activeChangeCallback)) {\n activeChangeCallback(listItem.id);\n }\n }\n }\n\n private _scrollListItemIntoView(listItem: HTMLElement | undefined, behavior: 'auto' | 'smooth' = 'auto', block: 'nearest' | 'center' = 'nearest'): void {\n if (listItem && this._dropdownElement && this._dropdownElement.isConnected) {\n const scrollContainer = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n if (scrollContainer) {\n tryScrollIntoView(scrollContainer, listItem, behavior, block);\n }\n }\n }\n\n private _getSelectedListItem(): IListItemComponent | undefined {\n const listItems = this._getListItemElements();\n return listItems.find(li => li.selected);\n }\n}\n", "import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\n\nimport { IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { ListDropdownFoundation } from './list-dropdown-foundation';\nimport { ListDropdownAdapter } from './list-dropdown-adapter';\nimport { IconRegistry } from '../icon';\n\nexport interface IListDropdown {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n destroy(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n activateInitialOption(): void;\n clearActiveOption(): void;\n setSelectedValues(values: any[]): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdown implements IListDropdown {\n private _foundation: ListDropdownFoundation;\n\n constructor(private _targetElement: HTMLElement, config: IListDropdownConfig) {\n IconRegistry.define([tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n this._foundation = new ListDropdownFoundation(new ListDropdownAdapter(this._targetElement), config);\n }\n\n public destroy(): void {\n this._foundation.destroy();\n }\n\n /** Opens the dropdown. */\n public open(): void {\n this._foundation.open();\n }\n\n /** Closes the dropdown. */\n public close(): void {\n this._foundation.close();\n }\n\n /** Gets the currently highlighted option index in the dropdown. */\n public getActiveOptionIndex(): number {\n return this._foundation.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n return this._foundation.getActiveOption();\n }\n \n /** Toggles the selected option by index. Only applies when in multiselect mode. */\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._foundation.toggleOptionMultiple(index, isSelected);\n }\n \n /** Activates the first selected option. */\n public activateSelectedOption(): void {\n this._foundation.activateSelectedOption();\n }\n\n /** Activates the first non-disabled option. */\n public activateFirstOption(): number {\n return this._foundation.activateFirstOption();\n }\n\n /** Activates (highlights) an option by index. */\n public activateOption(index: number): void {\n return this._foundation.activateOption(index);\n }\n\n /** Activates the first activatable option. */\n public activateInitialOption(): void {\n return this._foundation.activateInitialOption();\n }\n\n /** Clears the active option from the dropdown */\n public clearActiveOption(): void {\n this._foundation.clearActiveOption();\n }\n\n /** Sets the selected values. Only applies when in multiselect mode. */\n public setSelectedValues(values: any[]): void {\n return this._foundation.setSelectedValues(values);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._foundation.dropdownElement;\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.setOptions(options);\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.appendOptions(options);\n }\n\n public scrollSelectedOptionIntoView(animate?: boolean): void {\n this._foundation.scrollSelectedOptionIntoView();\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._foundation.setScrollBottomListener(listener, threshold);\n }\n\n public removeScrollBottomListener(): void {\n this._foundation.removeScrollBottomListener();\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n this._foundation.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n this._foundation.handleKey(key);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';\n\nexport interface IListDropdownAwareFoundation extends ICustomElementFoundation {\n popupClasses: string | string[];\n popupHeaderBuilder: ListDropdownHeaderBuilder;\n popupFooterBuilder: ListDropdownHeaderBuilder;\n syncPopupWidth: boolean;\n optionLimit: number;\n observeScroll: boolean;\n observeScrollThreshold: number;\n}\n\nexport abstract class ListDropdownAwareFoundation implements IListDropdownAwareFoundation {\n protected _popupClasses: string | string[] = [];\n protected _popupHeaderBuilder: ListDropdownHeaderBuilder;\n protected _popupFooterBuilder: ListDropdownFooterBuilder;\n protected _syncPopupWidth = false;\n protected _optionLimit = 0;\n protected _observeScroll = false;\n protected _observeScrollThreshold = 0;\n\n public get syncPopupWidth(): boolean {\n return this._syncPopupWidth;\n }\n public set syncPopupWidth(value: boolean) {\n this._syncPopupWidth = value;\n }\n\n public get popupClasses(): string | string[] {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n if (typeof value === 'string') {\n value = [value];\n }\n if (Array.isArray(value)) {\n this._popupClasses = value;\n }\n }\n\n public get observeScroll(): boolean {\n return this._observeScroll;\n }\n public set observeScroll(value: boolean) {\n this._observeScroll = value;\n }\n\n public get observeScrollThreshold(): number {\n return this._observeScrollThreshold;\n }\n public set observeScrollThreshold(value: number) {\n this._observeScrollThreshold = value;\n }\n\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n this._optionLimit = value;\n }\n\n public get popupHeaderBuilder(): ListDropdownHeaderBuilder {\n return this._popupHeaderBuilder;\n }\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n public get popupFooterBuilder(): ListDropdownFooterBuilder {\n return this._popupFooterBuilder;\n }\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n protected _applySelection(): void {}\n}\n", "import { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from './list-dropdown-aware-foundation';\n\nexport interface ICascadingListDropdownAwareFoundation extends IListDropdownAwareFoundation {}\n\nexport interface ICascadingListDropdownAwareFoundationConfiguration {\n popupTimeout: number;\n targetTimeout: number;\n}\n\nexport abstract class CascadingListDropdownAwareFoundation<T> extends ListDropdownAwareFoundation implements ICascadingListDropdownAwareFoundation {\n protected _open = false;\n protected _options: T[] = [];\n protected _childOpen = false;\n protected _popupHasMouse = false; // Used to determine if the popup element is under the users mouse\n protected _mouseCoords: { x: number; y: number };\n protected _activeMouseLeaveTimeout: number;\n protected _targetMouseEnterListener: (evt: MouseEvent) => void;\n protected _targetMouseLeaveListener: (evt: MouseEvent) => void;\n protected _childPopupMouseEnterListener: (evt: MouseEvent) => void;\n protected _childPopupMouseLeaveListener: (evt: MouseEvent) => void;\n protected _documentMouseMoveListener: (evt: MouseEvent) => void;\n \n protected abstract _attachCascadingListeners(): void;\n protected abstract _detachCascadingListeners(): void;\n protected abstract _onCascadingOptionSelected(data: any): void;\n protected abstract _onCascadingChildOpen(index: number): void;\n protected abstract _onCascadingChildClose(): void;\n protected abstract _closeDropdown(): void;\n protected abstract _openDropdown(): void;\n protected abstract _isOwnElement(element: Element): boolean;\n\n constructor(private _config: ICascadingListDropdownAwareFoundationConfiguration) {\n super();\n this._targetMouseEnterListener = evt => this._onTargetMouseEnter(evt);\n this._targetMouseLeaveListener = evt => this._onTargetMouseLeave(evt);\n this._childPopupMouseEnterListener = () => this._onChildPopupMouseEnter();\n this._childPopupMouseLeaveListener = () => this._onChildPopupMouseLeave();\n this._documentMouseMoveListener = evt => this._mouseCoords = { x: evt.pageX, y: evt.pageY };\n }\n\n private _onChildPopupMouseEnter(): void {\n this._popupHasMouse = true;\n }\n\n private _onChildPopupMouseLeave(): void {\n this._popupHasMouse = false;\n setTimeout(() => {\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (!this._popupHasMouse && !this._childOpen && (!mouseElement || !this._isOwnElement(mouseElement))) {\n this._closeDropdown();\n }\n }, this._config.popupTimeout);\n }\n\n private _onTargetMouseEnter(evt: MouseEvent): void {\n if (!this._options.length) {\n return;\n }\n this._openDropdown();\n }\n\n private _onTargetMouseLeave(evt: MouseEvent): void {\n // We wrap this in a timeout to allow for the user to take an indirect path toward an open child menu. This\n // allows for the popup to stay open while the user is moving their mouse to it (makes the transition easier and more smooth)\n this._activeMouseLeaveTimeout = window.setTimeout(() => {\n // Ignore this if our open state has changed, or if we have a child popup open now\n if (!this._open || this._childOpen) {\n return;\n }\n if (this._mouseCoords) {\n // We ignore this event if the mouse moved to an element within our own popup\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (mouseElement && this._isOwnElement(mouseElement)) {\n return;\n }\n }\n this._closeDropdown();\n }, this._config.targetTimeout);\n }\n\n protected _clearMouseLeaveTimeout(): void {\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
var n=Object.create;var g=Object.defineProperty,o=Object.defineProperties,l=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyDescriptors,q=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,r=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var k=(b,a,c)=>a in b?g(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c,t=(b,a)=>{for(var c in a||(a={}))j.call(a,c)&&k(b,c,a[c]);if(f)for(var c of f(a))m.call(a,c)&&k(b,c,a[c]);return b},u=(b,a)=>o(b,p(a));var v=(b,a)=>{var c={};for(var d in b)j.call(b,d)&&a.indexOf(d)<0&&(c[d]=b[d]);if(b!=null&&f)for(var d of f(b))a.indexOf(d)<0&&m.call(b,d)&&(c[d]=b[d]);return c};var w=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var s=(b,a,c,d)=>{if(a&&typeof a=="object"||typeof a=="function")for(let e of q(a))!j.call(b,e)&&e!==c&&g(b,e,{get:()=>a[e],enumerable:!(d=l(a,e))||d.enumerable});return b};var x=(b,a,c)=>(c=b!=null?n(r(b)):{},s(a||!b||!b.__esModule?g(c,"default",{value:b,enumerable:!0}):c,b));var y=(b,a,c,d)=>{for(var e=d>1?void 0:d?l(a,c):a,h=b.length-1,i;h>=0;h--)(i=b[h])&&(e=(d?i(a,c,e):i(e))||e);return d&&e&&g(a,c,e),e};export{t as a,u as b,v as c,w as d,x as e,y as f};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import{d as s,i as o}from"./chunk.R4NDFXVA.js";var r=class{constructor(e={}){this._config=e;this._initialize()}get element(){return this._element}destroy(){this.disconnect()}disconnect(){!this._element.isConnected||o(this._element)}_initialize(){var e,i,n,t;if(this._element=this._build(),!this._element)throw new Error(`Invalid component instance: ${this._element}`);this._applyProps(),this._applyStyle(),this._applyAttrs(),(i=(e=this._config.options)==null?void 0:e.parent)==null||i.append(this._element),(n=this._config.options)!=null&&n.children&&this._applyChildren(),(t=this._configure)==null||t.call(this)}_applyProps(){this._config.props&&Object.assign(this._element,this._config.props)}_applyStyle(){var e,i;if((e=this._config.options)!=null&&e.style){let n=Object.keys(this._config.options.style);for(let t of n)(i=this._element)==null||i.style.setProperty(t,this._config.options.style[t])}}_applyAttrs(){var e,i;if((e=this._config.options)!=null&&e.attributes)if(this._config.options.attributes instanceof Map)for(let[n,t]of Array.from(this._config.options.attributes))this._element.setAttribute(n,t);else{let n=Object.keys(this._config.options.attributes);for(let t of n)(i=this._element)==null||i.setAttribute(t,this._config.options.attributes[t])}}_applyChildren(){var e;this._element.hasChildNodes()&&s(this._element),(e=this._config.options)!=null&&e.children&&(typeof this._config.options.children=="string"?this._element.innerHTML=this._config.options.children:this._element.appendChild(this._config.options.children))}};export{r as a};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{d as l,e as s}from"./chunk.R4NDFXVA.js";import{i as a}from"./chunk.G76HB2FK.js";function p(e){h(e._customElementName,e),a(e._customElementDependencies)&&w(e._customElementDependencies)}function w(e){e.forEach(p)}function h(e,t,n){var o;!((o=window==null?void 0:window.customElements)===null||o===void 0)&&o.get(e)||window.customElements.define(e,t,n)}function C(e,t){let n=e;for(;n.parentNode&&(n=n.parentNode,!!n.tagName);)if(!n.tagName||n.tagName.toLowerCase()===t.toLowerCase())return n;return null}function c(e){return new DOMParser().parseFromString(e,"text/html").querySelector("template")}function R(e,t){e.appendChild(c(t).content.cloneNode(!0))}function v(e,t,n,o=!1){let i=m(t,n);e.attachShadow({mode:"open",delegatesFocus:o}),f(e,i)}function S(e,t,n){if(!e.shadowRoot)throw new Error("This element does not contain a shadow root. Did you mean to call `attachShadowTemplate`?");let o=m(t,n);e.shadowRoot.children.length&&l(e.shadowRoot),f(e,o)}function m(e,t){let n=c(e);if(t){t=t instanceof Array?t:[t];let o=document.createElement("style");o.type="text/css",o.textContent=t.join(" "),n.content.appendChild(o)}return n}function f(e,t){e.shadowRoot.appendChild(t.content.cloneNode(!0))}function E(e,t){return e.shadowRoot.querySelector(t)}function T(e,t){return e.querySelector(t)}function N(e,t,n,o=!0,i=!1){let r;return typeof CustomEvent=="function"?r=new CustomEvent(t,{detail:n,bubbles:o,cancelable:i}):(r=document.createEvent("CustomEvent"),r.initCustomEvent(t,o,i,n)),e.dispatchEvent(r)}function D(e,t,n,o,i,r){let u=!!E(e,o);return r||(r=document.createComment(`(${n}) ${o}`)),t&&!u?s(i,r):!t&&u&&s(r,i),r}function P(e,t){function n(o){return!o||o===document||o===window?null:(o.assignedSlot&&(o=o.assignedSlot),o.closest(e)||n(o.getRootNode().host))}return n(t)}var d=class extends HTMLElement{};export{p as a,w as b,C as c,R as d,v as e,S as f,E as g,T as h,N as i,D as j,P as k,d as l};
|
|
7
|
+
//# sourceMappingURL=chunk.MMVZJLXE.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../node_modules/@tylertech/forge-core/esm/custom-elements/component-utils.js"],
|
|
4
|
-
"sourcesContent": ["import { replaceElement, isArray, removeAllChildren, walkUpUntil } from '../utils';\n/**\n * Recursively defines a component as a custom elements and all of its dependencies.\n * @param component The component to import.\n */\nexport function defineCustomElement(component) {\n tryDefine(component._customElementName, component);\n if (isArray(component._customElementDependencies)) {\n defineCustomElements(component._customElementDependencies);\n }\n}\n/**\n * Defines the specified custom element components.\n * @param {any[]} components The components to register.\n */\nexport function defineCustomElements(components) {\n components.forEach(defineCustomElement);\n}\n/**\n * Attempts to define the provided custom element name/constructor if not already defined.\n * @param name The name of the custom element to define.\n * @param ctor The custom element constructor.\n */\nexport function tryDefine(name, ctor, options) {\n var _a;\n if ((_a = window === null || window === void 0 ? void 0 : window.customElements) === null || _a === void 0 ? void 0 : _a.get(name)) {\n return;\n }\n window.customElements.define(name, ctor, options);\n}\n/**\n * Useful when capturing the value of a unupgraded component during the `connectedCallback` upon upgrade.\n *\n * More information here:\n * https://developers.google.com/web/fundamentals/architecture/building-components/best-practices#lazy-properties\n *\n * @param property\n */\nexport function upgradeProperty(instance, property) {\n if (instance.hasOwnProperty(property)) {\n const value = instance[property];\n delete instance[property];\n instance[property] = value;\n }\n}\n/**\n * Traverses up the DOM tree starting from the provided component element to find the specified parent.\n * @param {HTMLElement} component The starting HTMLElement.\n * @param {string} parentTagName The parent tag name we are searching for.\n */\nexport function requireParent(component, parentTagName) {\n let el = component;\n while (el.parentNode) {\n el = el.parentNode;\n if (!el.tagName) {\n break;\n }\n if (!el.tagName || el.tagName.toLowerCase() === parentTagName.toLowerCase()) {\n return el;\n }\n }\n return null;\n}\n/**\n * Creates a template element from a string.\n * @param template The template HTML string.\n */\nexport function parseTemplateString(template) {\n const templateDocument = new DOMParser().parseFromString(template, 'text/html');\n return templateDocument.querySelector('template');\n}\n/**\n * Attaches a template to the given web component instance light DOM.\n * @param {T} componentInstance A component instance.\n * @param {string} template The template HTML string.\n */\nexport function attachLightTemplate(componentInstance, template) {\n componentInstance.appendChild(parseTemplateString(template).content.cloneNode(true));\n}\n/**\n * Attaches a shadow root to the given web component instance.\n * @param {T} componentInstance A component instance.\n * @param {string} elementName The name of the element the shadow root is to be attached to.\n * @param {string} template The shadow root template HTML string.\n * @param {string | string[]} styles The shadow root styles string to be encapsulated by this shadow root.\n * @param {boolean} [delegatesFocus=false] Should the component delagate focus.\n */\nexport function attachShadowTemplate(componentInstance, template, styles, delegatesFocus = false) {\n const templateElement = prepareShadowTemplate(template, styles);\n componentInstance.attachShadow({ mode: 'open', delegatesFocus });\n setShadowTemplate(componentInstance, templateElement);\n}\n/**\n * Replaces the template of an existing shadow root with the provided template.\n * @param {T} componentInstance A component instance.\n * @param {string} elementName The name of the element the shadow root is to be attached to.\n * @param {string} template The shadow root template HTML string.\n * @param {string | string[]} styles The shadow root styles string to be encapsulated by this shadow root.\n */\nexport function replaceShadowTemplate(componentInstance, template, styles) {\n if (!componentInstance.shadowRoot) {\n throw new Error('This element does not contain a shadow root. Did you mean to call `attachShadowTemplate`?');\n }\n const templateElement = prepareShadowTemplate(template, styles);\n if (componentInstance.shadowRoot.children.length) {\n removeAllChildren(componentInstance.shadowRoot);\n }\n setShadowTemplate(componentInstance, templateElement);\n}\n/**\n * Creates and prepares an HTML template element for rendering within a shadow root.\n * @param {string} elementName The name of the element the shadow root is to be attached to.\n * @param {string} template The shadow root template HTML string.\n * @param {string | string[]} styles The shadow root styles string to be encapsulated by this shadow root.\n */\nexport function prepareShadowTemplate(template, styles) {\n const templateElement = parseTemplateString(template);\n if (styles) {\n styles = styles instanceof Array ? styles : [styles];\n const styleElement = document.createElement('style');\n styleElement.type = 'text/css';\n styleElement.textContent = styles.join(' ');\n templateElement.content.appendChild(styleElement);\n }\n return templateElement;\n}\n/**\n * Appends a template to the provided components shadow root.\n * @param {T} componentInstance A component instance.\n * @param {HTMLTemplateElement} templateElement A template element to be cloned.\n */\nexport function setShadowTemplate(componentInstance, templateElement) {\n componentInstance.shadowRoot.appendChild(templateElement.content.cloneNode(true));\n}\n/**\n * Copies style rules from the provided document stylesheets collection to the provided shadow root stylesheet.\n * @param {Document} fromDocument The document to find the style sheets in.\n * @param {ShadowRoot} shadowRoot The shadow root that contains the stylesheet to copy the rules to.\n * @param {IStyleSheetDescriptor[]} styleSheetDescriptors A collection of style sheet predicates.\n * @param {CSSStyleSheet} shadowStyleSheet The shadow root stylesheet to copy the style rules to.\n */\nexport function provideDocumentStyles(fromDocument, shadowRoot, documentStyleSheets, shadowStyleSheet) {\n if (!shadowStyleSheet) {\n return;\n }\n const documentSheets = [];\n documentStyleSheets.forEach(sheet => {\n const sheetName = typeof sheet === 'string' ? sheet : sheet.name;\n const sheetFilter = sheet.selectorFilter;\n const matchingStyleSheet = _findMatchingStyleSheet(fromDocument.styleSheets, sheetName);\n if (!matchingStyleSheet) {\n throw new Error(`Could not find stylesheet: ${sheetName}`);\n }\n let startIndex = shadowStyleSheet.cssRules.length;\n for (const rule in matchingStyleSheet.cssRules) {\n if (matchingStyleSheet.cssRules.hasOwnProperty(rule) && matchingStyleSheet.cssRules[rule].cssText && (!sheetFilter || new RegExp(sheetFilter).test(matchingStyleSheet.cssRules[rule].selectorText))) {\n shadowStyleSheet.insertRule(matchingStyleSheet.cssRules[rule].cssText, startIndex++);\n }\n }\n });\n}\n/**\n * Finds a stylesheet by name in the provided stylesheet list.\n * @param styleSheetList The stylesheet list to search.\n * @param sheetName The stylesheet name to find.\n * @returns {CSSStyleSheet | undefined}\n */\nfunction _findMatchingStyleSheet(styleSheetList, sheetName) {\n for (const prop in styleSheetList) {\n if (styleSheetList.hasOwnProperty(prop) && styleSheetList[prop].href) {\n if (new RegExp(sheetName).test(styleSheetList[prop].href)) {\n return styleSheetList[prop];\n }\n }\n }\n return undefined;\n}\n/**\n * Gets an HTML element using a query selector from the provided components` shadow root.\n * @param {HTMLElement} componentInstance The component instance that contains a shadow root.\n * @param {string} selector The selector to be passed to `querySelector`.\n */\nexport function getShadowElement(componentInstance, selector) {\n return componentInstance.shadowRoot.querySelector(selector);\n}\n/**\n * Gets an HTML element using a query selector from the provided components` light DOM.\n * @param {HTMLElement} componentInstance The component instance.\n * @param {string} selector The selector to be passed to `querySelector`.\n */\nexport function getLightElement(componentInstance, selector) {\n return componentInstance.querySelector(selector);\n}\n/**\n * Creates and dispatches a cross-browser `CustomEvent` with the provided type and data.\n * @param {string} type\n * @param {any} data\n * @param {boolean=} bubble\n */\nexport function emitEvent(component, type, data, bubble = true, cancelable = false) {\n let evt;\n if (typeof CustomEvent === 'function') {\n evt = new CustomEvent(type, {\n detail: data,\n bubbles: bubble,\n cancelable\n });\n }\n else {\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(type, bubble, cancelable, data);\n }\n return component.dispatchEvent(evt);\n}\n/**\n * Replaces the provided element with a placeholder comment and vice versa.\n * Useful for hiding and showing elements while retaining their location in the DOM.\n * @param {boolean} isVisible Whether the element is visible or not.\n * @param {string} elementName The element tag name.\n * @param {string} selector The selector used to find the element\n * @param {Node} element The element\n * @param {Comment} placeholder The existing placeholder\n */\nexport function toggleElementPlaceholder(component, isVisible, elementName, selector, element, placeholder) {\n const exists = !!getShadowElement(component, selector);\n if (!placeholder) {\n placeholder = document.createComment(`(${elementName}) ${selector}`);\n }\n if (isVisible && !exists) {\n replaceElement(element, placeholder);\n }\n else if (!isVisible && exists) {\n replaceElement(placeholder, element);\n }\n return placeholder;\n}\n/**\n * Walks up the tree starting a specific node and stops when it finds a shadow root.\n * @param {Node} node The node to start searching from.\n * @returns {ShadowRoot | null} The closest shadow root ancestor, or null if not inside a shadow root.\n */\nexport function getClosestShadowRoot(node) {\n return walkUpUntil(node, current => current.toString() === '[object ShadowRoot]');\n}\n/**\n * Finds the closest element up the tree from a starting element across shadow boundaries.\n * @param selector The CSS selector for the element to find.\n * @param startElement The element to start finding from.\n */\nexport function closestElement(selector, startElement) {\n function __closestFrom(el) {\n if (!el || el === document || el === window) {\n return null;\n }\n if (el.assignedSlot) {\n el = el.assignedSlot;\n }\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(startElement);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
3
|
+
"sources": ["../../../../../../node_modules/@tylertech/forge-core/esm/custom-elements/component-utils.js", "../../src/core/base/base-component.ts"],
|
|
4
|
+
"sourcesContent": ["import { replaceElement, isArray, removeAllChildren, walkUpUntil } from '../utils';\n/**\n * Recursively defines a component as a custom elements and all of its dependencies.\n * @param component The component to import.\n */\nexport function defineCustomElement(component) {\n tryDefine(component._customElementName, component);\n if (isArray(component._customElementDependencies)) {\n defineCustomElements(component._customElementDependencies);\n }\n}\n/**\n * Defines the specified custom element components.\n * @param {any[]} components The components to register.\n */\nexport function defineCustomElements(components) {\n components.forEach(defineCustomElement);\n}\n/**\n * Attempts to define the provided custom element name/constructor if not already defined.\n * @param name The name of the custom element to define.\n * @param ctor The custom element constructor.\n */\nexport function tryDefine(name, ctor, options) {\n var _a;\n if ((_a = window === null || window === void 0 ? void 0 : window.customElements) === null || _a === void 0 ? void 0 : _a.get(name)) {\n return;\n }\n window.customElements.define(name, ctor, options);\n}\n/**\n * Useful when capturing the value of a unupgraded component during the `connectedCallback` upon upgrade.\n *\n * More information here:\n * https://developers.google.com/web/fundamentals/architecture/building-components/best-practices#lazy-properties\n *\n * @param property\n */\nexport function upgradeProperty(instance, property) {\n if (instance.hasOwnProperty(property)) {\n const value = instance[property];\n delete instance[property];\n instance[property] = value;\n }\n}\n/**\n * Traverses up the DOM tree starting from the provided component element to find the specified parent.\n * @param {HTMLElement} component The starting HTMLElement.\n * @param {string} parentTagName The parent tag name we are searching for.\n */\nexport function requireParent(component, parentTagName) {\n let el = component;\n while (el.parentNode) {\n el = el.parentNode;\n if (!el.tagName) {\n break;\n }\n if (!el.tagName || el.tagName.toLowerCase() === parentTagName.toLowerCase()) {\n return el;\n }\n }\n return null;\n}\n/**\n * Creates a template element from a string.\n * @param template The template HTML string.\n */\nexport function parseTemplateString(template) {\n const templateDocument = new DOMParser().parseFromString(template, 'text/html');\n return templateDocument.querySelector('template');\n}\n/**\n * Attaches a template to the given web component instance light DOM.\n * @param {T} componentInstance A component instance.\n * @param {string} template The template HTML string.\n */\nexport function attachLightTemplate(componentInstance, template) {\n componentInstance.appendChild(parseTemplateString(template).content.cloneNode(true));\n}\n/**\n * Attaches a shadow root to the given web component instance.\n * @param {T} componentInstance A component instance.\n * @param {string} elementName The name of the element the shadow root is to be attached to.\n * @param {string} template The shadow root template HTML string.\n * @param {string | string[]} styles The shadow root styles string to be encapsulated by this shadow root.\n * @param {boolean} [delegatesFocus=false] Should the component delagate focus.\n */\nexport function attachShadowTemplate(componentInstance, template, styles, delegatesFocus = false) {\n const templateElement = prepareShadowTemplate(template, styles);\n componentInstance.attachShadow({ mode: 'open', delegatesFocus });\n setShadowTemplate(componentInstance, templateElement);\n}\n/**\n * Replaces the template of an existing shadow root with the provided template.\n * @param {T} componentInstance A component instance.\n * @param {string} elementName The name of the element the shadow root is to be attached to.\n * @param {string} template The shadow root template HTML string.\n * @param {string | string[]} styles The shadow root styles string to be encapsulated by this shadow root.\n */\nexport function replaceShadowTemplate(componentInstance, template, styles) {\n if (!componentInstance.shadowRoot) {\n throw new Error('This element does not contain a shadow root. Did you mean to call `attachShadowTemplate`?');\n }\n const templateElement = prepareShadowTemplate(template, styles);\n if (componentInstance.shadowRoot.children.length) {\n removeAllChildren(componentInstance.shadowRoot);\n }\n setShadowTemplate(componentInstance, templateElement);\n}\n/**\n * Creates and prepares an HTML template element for rendering within a shadow root.\n * @param {string} elementName The name of the element the shadow root is to be attached to.\n * @param {string} template The shadow root template HTML string.\n * @param {string | string[]} styles The shadow root styles string to be encapsulated by this shadow root.\n */\nexport function prepareShadowTemplate(template, styles) {\n const templateElement = parseTemplateString(template);\n if (styles) {\n styles = styles instanceof Array ? styles : [styles];\n const styleElement = document.createElement('style');\n styleElement.type = 'text/css';\n styleElement.textContent = styles.join(' ');\n templateElement.content.appendChild(styleElement);\n }\n return templateElement;\n}\n/**\n * Appends a template to the provided components shadow root.\n * @param {T} componentInstance A component instance.\n * @param {HTMLTemplateElement} templateElement A template element to be cloned.\n */\nexport function setShadowTemplate(componentInstance, templateElement) {\n componentInstance.shadowRoot.appendChild(templateElement.content.cloneNode(true));\n}\n/**\n * Copies style rules from the provided document stylesheets collection to the provided shadow root stylesheet.\n * @param {Document} fromDocument The document to find the style sheets in.\n * @param {ShadowRoot} shadowRoot The shadow root that contains the stylesheet to copy the rules to.\n * @param {IStyleSheetDescriptor[]} styleSheetDescriptors A collection of style sheet predicates.\n * @param {CSSStyleSheet} shadowStyleSheet The shadow root stylesheet to copy the style rules to.\n */\nexport function provideDocumentStyles(fromDocument, shadowRoot, documentStyleSheets, shadowStyleSheet) {\n if (!shadowStyleSheet) {\n return;\n }\n const documentSheets = [];\n documentStyleSheets.forEach(sheet => {\n const sheetName = typeof sheet === 'string' ? sheet : sheet.name;\n const sheetFilter = sheet.selectorFilter;\n const matchingStyleSheet = _findMatchingStyleSheet(fromDocument.styleSheets, sheetName);\n if (!matchingStyleSheet) {\n throw new Error(`Could not find stylesheet: ${sheetName}`);\n }\n let startIndex = shadowStyleSheet.cssRules.length;\n for (const rule in matchingStyleSheet.cssRules) {\n if (matchingStyleSheet.cssRules.hasOwnProperty(rule) && matchingStyleSheet.cssRules[rule].cssText && (!sheetFilter || new RegExp(sheetFilter).test(matchingStyleSheet.cssRules[rule].selectorText))) {\n shadowStyleSheet.insertRule(matchingStyleSheet.cssRules[rule].cssText, startIndex++);\n }\n }\n });\n}\n/**\n * Finds a stylesheet by name in the provided stylesheet list.\n * @param styleSheetList The stylesheet list to search.\n * @param sheetName The stylesheet name to find.\n * @returns {CSSStyleSheet | undefined}\n */\nfunction _findMatchingStyleSheet(styleSheetList, sheetName) {\n for (const prop in styleSheetList) {\n if (styleSheetList.hasOwnProperty(prop) && styleSheetList[prop].href) {\n if (new RegExp(sheetName).test(styleSheetList[prop].href)) {\n return styleSheetList[prop];\n }\n }\n }\n return undefined;\n}\n/**\n * Gets an HTML element using a query selector from the provided components` shadow root.\n * @param {HTMLElement} componentInstance The component instance that contains a shadow root.\n * @param {string} selector The selector to be passed to `querySelector`.\n */\nexport function getShadowElement(componentInstance, selector) {\n return componentInstance.shadowRoot.querySelector(selector);\n}\n/**\n * Gets an HTML element using a query selector from the provided components` light DOM.\n * @param {HTMLElement} componentInstance The component instance.\n * @param {string} selector The selector to be passed to `querySelector`.\n */\nexport function getLightElement(componentInstance, selector) {\n return componentInstance.querySelector(selector);\n}\n/**\n * Creates and dispatches a cross-browser `CustomEvent` with the provided type and data.\n * @param {string} type\n * @param {any} data\n * @param {boolean=} bubble\n */\nexport function emitEvent(component, type, data, bubble = true, cancelable = false) {\n let evt;\n if (typeof CustomEvent === 'function') {\n evt = new CustomEvent(type, {\n detail: data,\n bubbles: bubble,\n cancelable\n });\n }\n else {\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(type, bubble, cancelable, data);\n }\n return component.dispatchEvent(evt);\n}\n/**\n * Replaces the provided element with a placeholder comment and vice versa.\n * Useful for hiding and showing elements while retaining their location in the DOM.\n * @param {boolean} isVisible Whether the element is visible or not.\n * @param {string} elementName The element tag name.\n * @param {string} selector The selector used to find the element\n * @param {Node} element The element\n * @param {Comment} placeholder The existing placeholder\n */\nexport function toggleElementPlaceholder(component, isVisible, elementName, selector, element, placeholder) {\n const exists = !!getShadowElement(component, selector);\n if (!placeholder) {\n placeholder = document.createComment(`(${elementName}) ${selector}`);\n }\n if (isVisible && !exists) {\n replaceElement(element, placeholder);\n }\n else if (!isVisible && exists) {\n replaceElement(placeholder, element);\n }\n return placeholder;\n}\n/**\n * Walks up the tree starting a specific node and stops when it finds a shadow root.\n * @param {Node} node The node to start searching from.\n * @returns {ShadowRoot | null} The closest shadow root ancestor, or null if not inside a shadow root.\n */\nexport function getClosestShadowRoot(node) {\n return walkUpUntil(node, current => current.toString() === '[object ShadowRoot]');\n}\n/**\n * Finds the closest element up the tree from a starting element across shadow boundaries.\n * @param selector The CSS selector for the element to find.\n * @param startElement The element to start finding from.\n */\nexport function closestElement(selector, startElement) {\n function __closestFrom(el) {\n if (!el || el === document || el === window) {\n return null;\n }\n if (el.assignedSlot) {\n el = el.assignedSlot;\n }\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(startElement);\n}\n", "import { ICustomElement } from '@tylertech/forge-core';\n\nexport interface IBaseComponent extends ICustomElement {}\n\n/** Any Custom HTML element. Some elements directly implement this interface, while others implement it via an interface that inherits it. */\nexport abstract class BaseComponent extends HTMLElement implements IBaseComponent {}\n"],
|
|
5
|
+
"mappings": "uFAKO,WAA6B,EAAW,CAC3C,EAAU,EAAU,mBAAoB,CAAS,EAC7C,EAAQ,EAAU,0BAA0B,GAC5C,EAAqB,EAAU,0BAA0B,CAEjE,CAKO,WAA8B,EAAY,CAC7C,EAAW,QAAQ,CAAmB,CAC1C,CAMO,WAAmB,EAAM,EAAM,EAAS,CAC3C,GAAI,GACJ,AAAK,KAAK,QAAW,KAA4B,OAAS,OAAO,kBAAoB,MAAQ,IAAO,SAAkB,EAAG,IAAI,CAAI,GAGjI,OAAO,eAAe,OAAO,EAAM,EAAM,CAAO,CACpD,CAqBO,WAAuB,EAAW,EAAe,CACpD,GAAI,GAAK,EACT,KAAO,EAAG,YACN,GAAK,EAAG,WACJ,EAAC,EAAG,UAGR,GAAI,CAAC,EAAG,SAAW,EAAG,QAAQ,YAAY,IAAM,EAAc,YAAY,EACtE,MAAO,GAGf,MAAO,KACX,CAKO,WAA6B,EAAU,CAE1C,MAAO,AADkB,IAAI,WAAU,EAAE,gBAAgB,EAAU,WAAW,EACtD,cAAc,UAAU,CACpD,CAMO,WAA6B,EAAmB,EAAU,CAC7D,EAAkB,YAAY,EAAoB,CAAQ,EAAE,QAAQ,UAAU,EAAI,CAAC,CACvF,CASO,WAA8B,EAAmB,EAAU,EAAQ,EAAiB,GAAO,CAC9F,GAAM,GAAkB,EAAsB,EAAU,CAAM,EAC9D,EAAkB,aAAa,CAAE,KAAM,OAAQ,gBAAe,CAAC,EAC/D,EAAkB,EAAmB,CAAe,CACxD,CAQO,WAA+B,EAAmB,EAAU,EAAQ,CACvE,GAAI,CAAC,EAAkB,WACnB,KAAM,IAAI,OAAM,2FAA2F,EAE/G,GAAM,GAAkB,EAAsB,EAAU,CAAM,EAC9D,AAAI,EAAkB,WAAW,SAAS,QACtC,EAAkB,EAAkB,UAAU,EAElD,EAAkB,EAAmB,CAAe,CACxD,CAOO,WAA+B,EAAU,EAAQ,CACpD,GAAM,GAAkB,EAAoB,CAAQ,EACpD,GAAI,EAAQ,CACR,EAAS,YAAkB,OAAQ,EAAS,CAAC,CAAM,EACnD,GAAM,GAAe,SAAS,cAAc,OAAO,EACnD,EAAa,KAAO,WACpB,EAAa,YAAc,EAAO,KAAK,GAAG,EAC1C,EAAgB,QAAQ,YAAY,CAAY,CACpD,CACA,MAAO,EACX,CAMO,WAA2B,EAAmB,EAAiB,CAClE,EAAkB,WAAW,YAAY,EAAgB,QAAQ,UAAU,EAAI,CAAC,CACpF,CAiDO,WAA0B,EAAmB,EAAU,CAC1D,MAAO,GAAkB,WAAW,cAAc,CAAQ,CAC9D,CAMO,WAAyB,EAAmB,EAAU,CACzD,MAAO,GAAkB,cAAc,CAAQ,CACnD,CAOO,WAAmB,EAAW,EAAM,EAAM,EAAS,GAAM,EAAa,GAAO,CAChF,GAAI,GACJ,MAAI,OAAO,cAAgB,WACvB,EAAM,GAAI,aAAY,EAAM,CACxB,OAAQ,EACR,QAAS,EACT,YACJ,CAAC,EAGD,GAAM,SAAS,YAAY,aAAa,EACxC,EAAI,gBAAgB,EAAM,EAAQ,EAAY,CAAI,GAE/C,EAAU,cAAc,CAAG,CACtC,CAUO,WAAkC,EAAW,EAAW,EAAa,EAAU,EAAS,EAAa,CACxG,GAAM,GAAS,CAAC,CAAC,EAAiB,EAAW,CAAQ,EACrD,MAAK,IACD,GAAc,SAAS,cAAc,IAAI,MAAgB,GAAU,GAEvE,AAAI,GAAa,CAAC,EACd,EAAe,EAAS,CAAW,EAE9B,CAAC,GAAa,GACnB,EAAe,EAAa,CAAO,EAEhC,CACX,CAcO,WAAwB,EAAU,EAAc,CACnD,WAAuB,EAAI,CACvB,MAAI,CAAC,GAAM,IAAO,UAAY,IAAO,OAC1B,KAEP,GAAG,cACH,GAAK,EAAG,cAGL,AADO,EAAG,QAAQ,CAAQ,GACjB,EAAc,EAAG,YAAY,EAAE,IAAI,EACvD,CACA,MAAO,GAAc,CAAY,CACrC,CChQO,GAAe,GAAf,aAAqC,YAAsC,CAAC",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import{b as t}from"./chunk.
|
|
7
|
-
//# sourceMappingURL=chunk.
|
|
6
|
+
import{b as t}from"./chunk.OOW3UKT4.js";var T=`${t}tooltip`,o={TEXT:"text",TARGET:"target",DELAY:"delay",POSITION:"position",HOST:"forge-tooltip-host"},e={TOOLTIP:"forge-tooltip",TOOLTIP_OPEN:"forge-tooltip--open",TOOLTIP_TOP:"forge-tooltip--top",TOOLTIP_RIGHT:"forge-tooltip--right",TOOLTIP_BOTTOM:"forge-tooltip--bottom",TOOLTIP_LEFT:"forge-tooltip--left"},O={HOST:`[${o.HOST}]`},r={DEFAULT_DELAY:500,LONGPRESS_THRESHOLD:750,LONGPRESS_VISIBILITY_DURATION:3e3},p={DEFAULT_POSITION:"right"},l={elementName:T,attributes:o,classes:e,selectors:O,numbers:r,strings:p};export{l as a};
|
|
7
|
+
//# sourceMappingURL=chunk.MNPORZ4F.js.map
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{a as _}from"./chunk.5PXABBKU.js";import{a as s}from"./chunk.B3IJU6XJ.js";import{a as h,b as u}from"./chunk.OOW3UKT4.js";import{a as f,e as g,g as i,l as x}from"./chunk.MMVZJLXE.js";import{t as n}from"./chunk.R4NDFXVA.js";import{k as b}from"./chunk.G76HB2FK.js";import{f as a}from"./chunk.MCIQXNKY.js";var v=`${u}app-bar`,m={DENSE:"forge-app-bar--dense",FIXED:"forge-app-bar--fixed",RAISED:"forge-app-bar--raised",ROW:"forge-app-bar__row",TITLE_INTERACTABLE:"forge-app-bar__title--interactable",NO_CENTER:"forge-app-bar--no-center"},E={ROOT:".forge-app-bar",TITLE:".forge-app-bar__title",BOTTOM:".forge-app-bar__bottom",BOTTOM_SLOT:"slot[name=bottom]",CENTER_SLOT:"slot[name=center]",CENTER_SECTION:"#center-section",FIXED:`.${m.FIXED}`,RAISED:`.${m.RAISED}`},T={TITLE_TEXT:"title-text",FIXED:"fixed",RAISED:"raised",THEME:"theme"},t={elementName:v,selectors:E,attributes:T,classes:m};var l=class extends _{constructor(e){super(e);this._rootElement=i(e,t.selectors.ROOT),this._titleElement=i(e,t.selectors.TITLE),this._bottomElement=i(e,t.selectors.BOTTOM),this._bottomSlotElement=i(e,t.selectors.BOTTOM_SLOT),this._centerSlotElement=i(e,t.selectors.CENTER_SLOT),this._centerSectionElement=i(e,t.selectors.CENTER_SECTION)}setTitleText(e){this._titleElement.textContent=e}setDense(e){n(this._rootElement,e,t.classes.DENSE)}setRaised(e){n(this._rootElement,e,t.classes.RAISED)}setFixed(e){n(this._rootElement,e,t.classes.FIXED)}addBottomClass(e){this._bottomElement.classList.add(e)}removeBottomClass(e){this._bottomElement.classList.remove(e)}addBottomSlotListener(e){this._bottomSlotElement.addEventListener("slotchange",e)}addCenterSlotListener(e){this._centerSlotElement.addEventListener("slotchange",e)}setCenterSlotVisibility(){this._centerSlotElement.assignedNodes().length?(this._centerSectionElement.style.removeProperty("display"),this._rootElement.classList.remove(t.classes.NO_CENTER)):(this._centerSectionElement.style.display="none",this._rootElement.classList.add(t.classes.NO_CENTER))}};var p=class{constructor(o){this._adapter=o;this._fixed=!1;this._raised=!0;this._bottomSlotListener=e=>this._onBottomSlotChanged(e),this._centerSlotListener=e=>this._onCenterSlotChanged(e)}initialize(){this._adapter.setTitleText(this._titleText),this._adapter.addBottomSlotListener(this._bottomSlotListener),this._adapter.addCenterSlotListener(this._centerSlotListener),this._adapter.setCenterSlotVisibility(),this._adapter.setRaised(this._raised),this._adapter.setFixed(this._fixed)}_onBottomSlotChanged(o){o.target.assignedNodes().length?this._adapter.addBottomClass(t.classes.ROW):this._adapter.removeBottomClass(t.classes.ROW)}_onCenterSlotChanged(o){this._adapter.setCenterSlotVisibility()}get titleText(){return this._titleText}set titleText(o){this._titleText!==o&&(this._titleText=o,this._adapter.setTitleText(this._titleText),this._adapter.setHostAttribute(t.attributes.TITLE_TEXT,o))}get fixed(){return this._fixed}set fixed(o){this._fixed!==o&&(this._fixed=o,this._adapter.setFixed(this._fixed),this._adapter.setHostAttribute(t.attributes.FIXED,this._fixed.toString()))}get raised(){return this._raised}set raised(o){this._raised!==o&&(this._raised=o,this._adapter.setRaised(o),this._adapter.setHostAttribute(t.attributes.RAISED,this._raised.toString()))}};var y='<template><header class="forge-app-bar" part="root"><div class="forge-app-bar__row" part="row"><section class="forge-app-bar__section forge-app-bar__section--align-start" part="section-start"><slot name="start"></slot><slot name="logo"></slot><slot name="title"><h1 class="forge-app-bar__title" part="title"></h1></slot></section><section id="center-section" class="forge-app-bar__section forge-app-bar__section--align-center" part="section-center"><slot name="center"></slot></section><section class="forge-app-bar__section forge-app-bar__section--align-end" part="section-end"><slot name="end"></slot></section></div><div class="forge-app-bar__bottom" part="bottom"><slot name="bottom"></slot></div></header></template>',w=".forge-app-bar{color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);background-color:#283593;background-color:var(--forge-app-bar-theme-background,#283593);z-index:4;z-index:var(--forge-z-index-header,4);background-size:cover;background-position:center;display:grid;grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;-webkit-transition:-webkit-box-shadow .2s linear;transition:-webkit-box-shadow .2s linear;transition:box-shadow .2s linear;transition:box-shadow .2s linear,-webkit-box-shadow .2s linear}.forge-app-bar__row{display:grid;grid-template-columns:1fr 1fr 1fr;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:56px}.forge-app-bar--no-center .forge-app-bar__row{grid-template-columns:1fr auto}.forge-app-bar__section{display:-webkit-inline-box;display:inline-flex;-webkit-box-flex:1;flex:1 1 auto;-webkit-box-align:center;align-items:center;min-width:0;padding:0 4px;height:56px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-app-bar__section--align-start{-webkit-box-pack:start;justify-content:flex-start;-webkit-box-ordinal-group:0;order:-1;grid-column:1}.forge-app-bar__section--align-center{grid-column:2;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}.forge-app-bar__section--align-end{-webkit-box-pack:end;justify-content:flex-end;-webkit-box-ordinal-group:2;order:1;grid-column:3}.forge-app-bar--no-center .forge-app-bar__section--align-end{grid-column:2}.forge-app-bar ::slotted([slot=logo]){color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;margin:0 8px;font-size:3rem;overflow:visible}.forge-app-bar ::slotted([slot=profile]){margin-left:4px}.forge-app-bar ::slotted([slot=title]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-headline5-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1.5rem;font-size:var(--mdc-typography-headline5-font-size, 1.5rem);line-height:2rem;line-height:var(--mdc-typography-headline5-line-height, 2rem);font-weight:400;font-weight:var(--mdc-typography-headline5-font-weight,400);letter-spacing:normal;letter-spacing:var(--mdc-typography-headline5-letter-spacing, normal);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-headline5-text-transform,inherit);color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:8px;padding-right:8px}.forge-app-bar slot[name=user-action]{display:-webkit-inline-box;display:inline-flex;margin-right:24px}.forge-app-bar__title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-headline5-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1.5rem;font-size:var(--mdc-typography-headline5-font-size, 1.5rem);line-height:2rem;line-height:var(--mdc-typography-headline5-line-height, 2rem);font-weight:400;font-weight:var(--mdc-typography-headline5-font-weight,400);letter-spacing:normal;letter-spacing:var(--mdc-typography-headline5-letter-spacing, normal);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-decoration:var(--mdc-typography-headline5-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-headline5-text-transform,inherit);color:#fff;color:var(--forge-app-bar-theme-on-background,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:8px;padding-right:8px}.forge-app-bar__title--interactable:hover{background-color:rgba(255,255,255,.12);border-radius:4px;cursor:pointer}.forge-app-bar__title--interactable:active{background-color:rgba(255,255,255,.24)}.forge-app-bar__bottom{padding:0 4px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;height:auto!important;overflow:hidden;grid-row:2}.forge-app-bar--fixed{-webkit-transition:-webkit-box-shadow .2s linear;transition:-webkit-box-shadow .2s linear;transition:box-shadow .2s linear;transition:box-shadow .2s linear,-webkit-box-shadow .2s linear}.forge-app-bar--raised{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}:host{z-index:4;z-index:var(--forge-z-index-header,4);position:relative;display:block;contain:layout style;--mdc-theme-text-secondary-on-background:var(--forge-app-bar-theme-secondary-on-background, rgba(255, 255, 255, 0.54));--mdc-theme-text-secondary-on-light:var(--forge-app-bar-theme-secondary-on-background, rgba(255, 255, 255, 0.54));--mdc-theme-text-disabled-on-background:var(--forge-app-bar-theme-disabled-on-background, rgba(255, 255, 255, 0.38));--mdc-theme-text-disabled-on-light:var(--forge-app-bar-theme-disabled-on-light, rgba(255, 255, 255, 0.12))}:host ::slotted(:not(forge-button)){--mdc-theme-on-primary:var(--forge-app-bar-theme-on-background, #ffffff);--mdc-theme-on-surface:var(--forge-app-bar-theme-on-background, #ffffff)}:host ::slotted(forge-tab-bar){--mdc-theme-primary:var(--forge-app-bar-theme-on-background, #ffffff)}:host ::slotted(forge-button:not([type])),:host ::slotted(forge-button[type=outlined]){--mdc-theme-primary:var(--forge-app-bar-theme-on-background, rgba(255, 255, 255, 0.87))}:host([hidden]){display:none}:host([theme=white]){--forge-app-bar-theme-background:#ffffff;--forge-app-bar-theme-on-background:rgba(0, 0, 0, 0.87);--forge-app-bar-theme-secondary-on-background:rgba(0, 0, 0, 0.54);--forge-app-bar-theme-disabled-on-background:rgba(0, 0, 0, 0.38);--forge-app-bar-theme-disabled-on-light:rgba(0, 0, 0, 0.12)}",r=class extends x{constructor(){super();g(this,y,w),this._foundation=new p(new l(this))}static get observedAttributes(){return[t.attributes.TITLE_TEXT,t.attributes.FIXED,t.attributes.RAISED]}initializedCallback(){this._foundation.initialize()}attributeChangedCallback(e,k,d){switch(e){case t.attributes.TITLE_TEXT:this.titleText=d;break;case t.attributes.FIXED:this.fixed=b(d);break;case t.attributes.RAISED:this.raised=b(d);break}}get theme(){return this.getAttribute(t.attributes.THEME)||null}set theme(e){e?this.setAttribute(t.attributes.THEME,e):this.removeAttribute(t.attributes.THEME)}};a([s()],r.prototype,"titleText",2),a([s()],r.prototype,"fixed",2),a([s()],r.prototype,"raised",2),r=a([h({name:t.elementName})],r);function W(){f(r)}export{v as a,t as b,l as c,p as d,r as e,W as f};
|
|
7
|
+
//# sourceMappingURL=chunk.MWD47ZZU.js.map
|