@tylertech/forge 3.0.0-next.1 → 3.0.0-next.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +18061 -12338
- package/dist/button/forge-button.css +1 -1
- package/dist/esm/accordion/index.js +1 -1
- package/dist/esm/app-bar/help-button/index.js +1 -1
- package/dist/esm/app-bar/index.js +1 -1
- package/dist/esm/app-bar/menu-button/index.js +1 -1
- package/dist/esm/app-bar/notification-button/index.js +1 -1
- package/dist/esm/app-bar/profile-button/index.js +1 -1
- package/dist/esm/app-bar/search/index.js +1 -1
- package/dist/esm/autocomplete/index.js +1 -1
- package/dist/esm/avatar/index.js +1 -1
- package/dist/esm/backdrop/index.js +1 -1
- package/dist/esm/badge/index.js +1 -1
- package/dist/esm/banner/index.js +1 -1
- package/dist/esm/bottom-sheet/index.js +1 -1
- package/dist/esm/busy-indicator/index.js +1 -1
- package/dist/esm/button/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/dist/esm/button-toggle/index.js +1 -1
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
- package/dist/esm/calendar/calendar-menu/index.js +1 -1
- package/dist/esm/calendar/core/index.js +1 -1
- package/dist/esm/calendar/index.js +1 -1
- package/dist/esm/card/index.js +1 -1
- package/dist/esm/checkbox/index.js +1 -1
- package/dist/esm/chip-field/index.js +1 -1
- package/dist/esm/chips/chip/index.js +1 -1
- package/dist/esm/chips/chip-set/index.js +1 -1
- package/dist/esm/chips/index.js +1 -1
- package/dist/esm/chunks/chunk.2AJ7FFI6.js +7 -0
- package/dist/esm/chunks/chunk.2AJ7FFI6.js.map +7 -0
- package/dist/esm/chunks/{chunk.SSRQFKNH.js → chunk.2EWV2XBP.js} +2 -2
- package/dist/esm/chunks/{chunk.SSRQFKNH.js.map → chunk.2EWV2XBP.js.map} +1 -1
- package/dist/esm/chunks/chunk.2QHD3DCR.js +7 -0
- package/dist/esm/chunks/chunk.2QHD3DCR.js.map +7 -0
- package/dist/esm/chunks/{chunk.BJZ7RB5F.js → chunk.3CTKWBV2.js} +1 -1
- package/dist/esm/chunks/{chunk.BJZ7RB5F.js.map → chunk.3CTKWBV2.js.map} +1 -1
- package/dist/esm/chunks/chunk.3HB22HCX.js +7 -0
- package/dist/esm/chunks/chunk.44IUAOBP.js +7 -0
- package/dist/esm/chunks/{chunk.YPZNIYQL.js.map → chunk.44IUAOBP.js.map} +2 -2
- package/dist/esm/chunks/chunk.4C6KHYUO.js +7 -0
- package/dist/esm/chunks/{chunk.SXTTEIIH.js → chunk.4YFVG4KP.js} +2 -2
- package/dist/esm/chunks/{chunk.SXTTEIIH.js.map → chunk.4YFVG4KP.js.map} +1 -1
- package/dist/esm/chunks/chunk.4ZKX3SO5.js +7 -0
- package/dist/esm/chunks/{chunk.5WNKQTXX.js.map → chunk.4ZKX3SO5.js.map} +2 -2
- package/dist/esm/chunks/chunk.54OOOQ4R.js +7 -0
- package/dist/esm/chunks/chunk.54OOOQ4R.js.map +7 -0
- package/dist/esm/chunks/chunk.5565ZSTH.js +7 -0
- package/dist/esm/chunks/chunk.5565ZSTH.js.map +7 -0
- package/dist/esm/chunks/chunk.5MZ5SGMO.js +7 -0
- package/dist/esm/chunks/chunk.5MZ5SGMO.js.map +7 -0
- package/dist/esm/chunks/{chunk.7UKA4E5A.js → chunk.624UKZFU.js} +2 -2
- package/dist/esm/chunks/{chunk.7UKA4E5A.js.map → chunk.624UKZFU.js.map} +1 -1
- package/dist/esm/chunks/chunk.6GC5AJPE.js +7 -0
- package/dist/esm/chunks/chunk.6GC5AJPE.js.map +7 -0
- package/dist/esm/chunks/{chunk.CLM6MNKC.js → chunk.6OUJSOJY.js} +2 -2
- package/dist/esm/chunks/{chunk.CLM6MNKC.js.map → chunk.6OUJSOJY.js.map} +1 -1
- package/dist/esm/chunks/{chunk.TR5YMNJJ.js → chunk.6OW6Q3EW.js} +2 -2
- package/dist/esm/chunks/{chunk.TR5YMNJJ.js.map → chunk.6OW6Q3EW.js.map} +1 -1
- package/dist/esm/chunks/chunk.7CGKFRBK.js +7 -0
- package/dist/esm/chunks/chunk.7CGKFRBK.js.map +7 -0
- package/dist/esm/chunks/chunk.7DB3XVPI.js +7 -0
- package/dist/esm/chunks/chunk.7DB3XVPI.js.map +7 -0
- package/dist/esm/chunks/chunk.7TMLILLW.js +7 -0
- package/dist/esm/chunks/{chunk.ZFHPUAYX.js.map → chunk.7TMLILLW.js.map} +2 -2
- package/dist/esm/chunks/{chunk.KU5CXXGS.js → chunk.A62DE5PD.js} +2 -2
- package/dist/esm/chunks/chunk.AEKOP3XT.js +7 -0
- package/dist/esm/chunks/chunk.AEKOP3XT.js.map +7 -0
- package/dist/esm/chunks/chunk.ALIYGJXA.js +129 -0
- package/dist/esm/chunks/chunk.ALIYGJXA.js.map +7 -0
- package/dist/esm/chunks/chunk.B4T3R53C.js +7 -0
- package/dist/esm/chunks/{chunk.6OKJPSUE.js.map → chunk.B4T3R53C.js.map} +2 -2
- package/dist/esm/chunks/chunk.BH2TUG2V.js +7 -0
- package/dist/esm/chunks/chunk.BH2TUG2V.js.map +7 -0
- package/dist/esm/chunks/chunk.BKL2BAYW.js +7 -0
- package/dist/esm/chunks/{chunk.G5MGGEFP.js.map → chunk.BKL2BAYW.js.map} +1 -1
- package/dist/esm/chunks/chunk.BY25RT52.js +7 -0
- package/dist/esm/chunks/chunk.BY25RT52.js.map +7 -0
- package/dist/esm/chunks/chunk.CDGZYUQS.js +7 -0
- package/dist/esm/chunks/{chunk.RB5BTA5N.js.map → chunk.CDGZYUQS.js.map} +2 -2
- package/dist/esm/chunks/chunk.CKW7KKDW.js +7 -0
- package/dist/esm/chunks/{chunk.4NI63FGK.js.map → chunk.CKW7KKDW.js.map} +2 -2
- package/dist/esm/chunks/{chunk.RYMPSU4J.js → chunk.COVTBIQQ.js} +2 -2
- package/dist/esm/chunks/{chunk.RYMPSU4J.js.map → chunk.COVTBIQQ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.G45OZEIS.js → chunk.CWTV3TB3.js} +2 -2
- package/dist/esm/chunks/chunk.CXY6K7EI.js +7 -0
- package/dist/esm/chunks/{chunk.ROR6JMAE.js.map → chunk.CXY6K7EI.js.map} +1 -1
- package/dist/esm/chunks/chunk.D5TAI6Q7.js +7 -0
- package/dist/esm/chunks/{chunk.BTBHIIGI.js.map → chunk.D5TAI6Q7.js.map} +1 -1
- package/dist/esm/chunks/chunk.DBNJHUYY.js +7 -0
- package/dist/esm/chunks/chunk.DBNJHUYY.js.map +7 -0
- package/dist/esm/chunks/{chunk.WP4QOOIS.js → chunk.DG4ZM3AW.js} +2 -2
- package/dist/esm/chunks/{chunk.U6WGJELL.js → chunk.DMCBAYQX.js} +1 -1
- package/dist/esm/chunks/{chunk.U6WGJELL.js.map → chunk.DMCBAYQX.js.map} +1 -1
- package/dist/esm/chunks/{chunk.BE7PZANN.js → chunk.DXN7ZOH3.js} +2 -2
- package/dist/esm/chunks/{chunk.BE7PZANN.js.map → chunk.DXN7ZOH3.js.map} +1 -1
- package/dist/esm/chunks/chunk.EK24Y56W.js +7 -0
- package/dist/esm/chunks/chunk.F4VXEE76.js +7 -0
- package/dist/esm/chunks/chunk.F4VXEE76.js.map +7 -0
- package/dist/esm/chunks/chunk.F5SY2D4B.js +7 -0
- package/dist/esm/chunks/{chunk.DT7MZR5Y.js.map → chunk.F5SY2D4B.js.map} +3 -3
- package/dist/esm/chunks/chunk.F74YURLV.js +7 -0
- package/dist/esm/chunks/chunk.F74YURLV.js.map +7 -0
- package/dist/esm/chunks/chunk.FCATJM34.js +7 -0
- package/dist/esm/chunks/chunk.FCATJM34.js.map +7 -0
- package/dist/esm/chunks/{chunk.3KQL7VAZ.js → chunk.FDZSLGIW.js} +2 -2
- package/dist/esm/chunks/{chunk.3KQL7VAZ.js.map → chunk.FDZSLGIW.js.map} +1 -1
- package/dist/esm/chunks/chunk.FG2GNAM2.js +7 -0
- package/dist/esm/chunks/chunk.FG2GNAM2.js.map +7 -0
- package/dist/esm/chunks/{chunk.UT7QUGAO.js → chunk.FWFOOQMA.js} +2 -2
- package/dist/esm/chunks/{chunk.MZLPUI6R.js → chunk.FYWPZFLJ.js} +2 -2
- package/dist/esm/chunks/{chunk.MZLPUI6R.js.map → chunk.FYWPZFLJ.js.map} +2 -2
- package/dist/esm/chunks/chunk.GNG64TXK.js +7 -0
- package/dist/esm/chunks/chunk.GNG64TXK.js.map +7 -0
- package/dist/esm/chunks/chunk.HHCO64F3.js +7 -0
- package/dist/esm/chunks/chunk.HHCO64F3.js.map +7 -0
- package/dist/esm/chunks/chunk.HRGTAVNA.js +7 -0
- package/dist/esm/chunks/{chunk.J6WCFQSS.js.map → chunk.HRGTAVNA.js.map} +2 -2
- package/dist/esm/chunks/chunk.ISC7SZSP.js +7 -0
- package/dist/esm/chunks/chunk.ISC7SZSP.js.map +7 -0
- package/dist/esm/chunks/{chunk.ZUNZKRRK.js → chunk.IX25DYIM.js} +2 -2
- package/dist/esm/chunks/chunk.JIKSKUDW.js +7 -0
- package/dist/esm/chunks/chunk.JIKSKUDW.js.map +7 -0
- package/dist/esm/chunks/{chunk.F2B24WLK.js → chunk.JLLHDJSO.js} +2 -2
- package/dist/esm/chunks/{chunk.F2B24WLK.js.map → chunk.JLLHDJSO.js.map} +1 -1
- package/dist/esm/chunks/chunk.JUJGROHA.js +7 -0
- package/dist/esm/chunks/{chunk.YBEBD4CN.js.map → chunk.JUJGROHA.js.map} +1 -1
- package/dist/esm/chunks/{chunk.UBD2DPQN.js → chunk.K3KAM2PL.js} +2 -2
- package/dist/esm/chunks/{chunk.UBD2DPQN.js.map → chunk.K3KAM2PL.js.map} +1 -1
- package/dist/esm/chunks/{chunk.PN26D52V.js → chunk.K7FPXAFS.js} +2 -2
- package/dist/esm/chunks/{chunk.PN26D52V.js.map → chunk.K7FPXAFS.js.map} +3 -3
- package/dist/esm/chunks/chunk.KJP2VA6Q.js +7 -0
- package/dist/esm/chunks/chunk.KJP2VA6Q.js.map +7 -0
- package/dist/esm/chunks/{chunk.ARJ3EVVO.js → chunk.KVCDAZ6B.js} +2 -2
- package/dist/esm/chunks/{chunk.4DAIIJ37.js → chunk.LEVFMI2Q.js} +1 -1
- package/dist/esm/chunks/{chunk.4DAIIJ37.js.map → chunk.LEVFMI2Q.js.map} +1 -1
- package/dist/esm/chunks/{chunk.77Y3EABF.js → chunk.LFODKHUO.js} +2 -2
- package/dist/esm/chunks/{chunk.77Y3EABF.js.map → chunk.LFODKHUO.js.map} +1 -1
- package/dist/esm/chunks/{chunk.XQ2EQIDS.js → chunk.LK4AAUOP.js} +2 -2
- package/dist/esm/chunks/{chunk.XQ2EQIDS.js.map → chunk.LK4AAUOP.js.map} +2 -2
- package/dist/esm/chunks/{chunk.H4Z4DHPA.js → chunk.LTT67HTW.js} +2 -2
- package/dist/esm/chunks/chunk.LXPFG7MW.js +7 -0
- package/dist/esm/chunks/chunk.LXPFG7MW.js.map +7 -0
- package/dist/esm/chunks/chunk.M3QDAYD2.js +7 -0
- package/dist/esm/chunks/chunk.M56LSSPW.js +7 -0
- package/dist/esm/chunks/{chunk.Y5A7RQ5M.js.map → chunk.M56LSSPW.js.map} +1 -1
- package/dist/esm/chunks/chunk.MACPUZC2.js +7 -0
- package/dist/esm/chunks/chunk.MACPUZC2.js.map +7 -0
- package/dist/esm/chunks/{chunk.O73S5LF3.js → chunk.MGLL67VO.js} +2 -2
- package/dist/esm/chunks/chunk.MGLWXAZO.js +18 -0
- package/dist/esm/chunks/{chunk.YI4JTY4T.js.map → chunk.MGLWXAZO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.XZ4WI7VK.js → chunk.MHBBMC6O.js} +2 -2
- package/dist/esm/chunks/{chunk.XZ4WI7VK.js.map → chunk.MHBBMC6O.js.map} +1 -1
- package/dist/esm/chunks/{chunk.HBMNXZES.js → chunk.MTKSU2BV.js} +2 -2
- package/dist/esm/chunks/{chunk.HBMNXZES.js.map → chunk.MTKSU2BV.js.map} +1 -1
- package/dist/esm/chunks/chunk.MVTBJPO2.js +7 -0
- package/dist/esm/chunks/{chunk.Y4GKBJGI.js.map → chunk.MVTBJPO2.js.map} +3 -3
- package/dist/esm/chunks/chunk.MXEKIEJA.js +7 -0
- package/dist/esm/chunks/chunk.MXEKIEJA.js.map +7 -0
- package/dist/esm/chunks/chunk.N43BCJHN.js +7 -0
- package/dist/esm/chunks/chunk.N43BCJHN.js.map +7 -0
- package/dist/esm/chunks/{chunk.VC2BG2RS.js → chunk.NR3MLTXF.js} +2 -2
- package/dist/esm/chunks/{chunk.VC2BG2RS.js.map → chunk.NR3MLTXF.js.map} +1 -1
- package/dist/esm/chunks/{chunk.KTGSZEAG.js → chunk.NVUMRW44.js} +1 -1
- package/dist/esm/chunks/{chunk.KTGSZEAG.js.map → chunk.NVUMRW44.js.map} +1 -1
- package/dist/esm/chunks/{chunk.MLV25D2G.js → chunk.OWCYRSI3.js} +2 -2
- package/dist/esm/chunks/chunk.P2CW5MQO.js +12 -0
- package/dist/esm/chunks/chunk.P2CW5MQO.js.map +7 -0
- package/dist/esm/chunks/{chunk.N4PVZUJX.js → chunk.P2ZCNO63.js} +2 -2
- package/dist/esm/chunks/{chunk.N4PVZUJX.js.map → chunk.P2ZCNO63.js.map} +2 -2
- package/dist/esm/chunks/chunk.PADPL4L3.js +7 -0
- package/dist/esm/chunks/{chunk.47A2CN5U.js.map → chunk.PADPL4L3.js.map} +1 -1
- package/dist/esm/chunks/chunk.PEBT47AU.js +7 -0
- package/dist/esm/chunks/chunk.PEBT47AU.js.map +7 -0
- package/dist/esm/chunks/chunk.PH3HUFJJ.js +7 -0
- package/dist/esm/chunks/{chunk.JHBCYICS.js.map → chunk.PH3HUFJJ.js.map} +1 -1
- package/dist/esm/chunks/chunk.Q7JUJNYD.js +7 -0
- package/dist/esm/chunks/chunk.Q7JUJNYD.js.map +7 -0
- package/dist/esm/chunks/chunk.Q7Z3SJ5F.js +7 -0
- package/dist/esm/chunks/{chunk.4BEI55KI.js.map → chunk.Q7Z3SJ5F.js.map} +1 -1
- package/dist/esm/chunks/chunk.QCRRHGBA.js +7 -0
- package/dist/esm/chunks/chunk.QCRRHGBA.js.map +7 -0
- package/dist/esm/chunks/{chunk.IUOBRBDZ.js → chunk.QOJESHEV.js} +2 -2
- package/dist/esm/chunks/chunk.S3JMOOWC.js +7 -0
- package/dist/esm/chunks/{chunk.4WPFFNLH.js.map → chunk.S3JMOOWC.js.map} +1 -1
- package/dist/esm/chunks/{chunk.O4FB4BV5.js → chunk.SBYX7VZ4.js} +2 -2
- package/dist/esm/chunks/{chunk.O4FB4BV5.js.map → chunk.SBYX7VZ4.js.map} +2 -2
- package/dist/esm/chunks/{chunk.XUW3GG46.js → chunk.SFCGOCQK.js} +2 -2
- package/dist/esm/chunks/chunk.SJJS4LYN.js +7 -0
- package/dist/esm/chunks/chunk.SJJS4LYN.js.map +7 -0
- package/dist/esm/chunks/{chunk.P3IA2WTO.js → chunk.SMGXXR6K.js} +2 -2
- package/dist/esm/chunks/{chunk.P3IA2WTO.js.map → chunk.SMGXXR6K.js.map} +1 -1
- package/dist/esm/chunks/{chunk.PALRSBSY.js → chunk.SU4FU7GK.js} +2 -2
- package/dist/esm/chunks/{chunk.PALRSBSY.js.map → chunk.SU4FU7GK.js.map} +1 -1
- package/dist/esm/chunks/{chunk.XHV3GQ7L.js → chunk.TK5I4RHF.js} +2 -2
- package/dist/esm/chunks/{chunk.XHV3GQ7L.js.map → chunk.TK5I4RHF.js.map} +2 -2
- package/dist/esm/chunks/{chunk.BJE6O5ES.js → chunk.TYLOAD7R.js} +2 -2
- package/dist/esm/chunks/{chunk.BJE6O5ES.js.map → chunk.TYLOAD7R.js.map} +2 -2
- package/dist/esm/chunks/chunk.UJ2WQOLO.js +7 -0
- package/dist/esm/chunks/{chunk.E6CYXNS2.js.map → chunk.UJ2WQOLO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.J2H5RXTX.js → chunk.ULY4H76N.js} +2 -2
- package/dist/esm/chunks/{chunk.J2H5RXTX.js.map → chunk.ULY4H76N.js.map} +1 -1
- package/dist/esm/chunks/{chunk.DONAMICM.js → chunk.UV3WIHCM.js} +1 -1
- package/dist/esm/chunks/{chunk.DONAMICM.js.map → chunk.UV3WIHCM.js.map} +1 -1
- package/dist/esm/chunks/{chunk.T76JYRPR.js → chunk.VSQOTSAO.js} +2 -2
- package/dist/esm/chunks/{chunk.T76JYRPR.js.map → chunk.VSQOTSAO.js.map} +2 -2
- package/dist/esm/chunks/chunk.VVXSELXX.js +7 -0
- package/dist/esm/chunks/chunk.VVXSELXX.js.map +7 -0
- package/dist/esm/chunks/chunk.VZWNNK7A.js +7 -0
- package/dist/esm/chunks/chunk.VZWNNK7A.js.map +7 -0
- package/dist/esm/chunks/chunk.W4247Q2P.js +7 -0
- package/dist/esm/chunks/{chunk.MHOS3IHQ.js.map → chunk.W4247Q2P.js.map} +1 -1
- package/dist/esm/chunks/chunk.WPG7NNQX.js +7 -0
- package/dist/esm/chunks/chunk.WPG7NNQX.js.map +7 -0
- package/dist/esm/chunks/{chunk.LYOQ2RGP.js → chunk.X3C3J5MH.js} +2 -2
- package/dist/esm/chunks/{chunk.LYOQ2RGP.js.map → chunk.X3C3J5MH.js.map} +1 -1
- package/dist/esm/chunks/{chunk.RBAVT3XQ.js → chunk.XGOAYMK2.js} +2 -2
- package/dist/esm/chunks/chunk.XI3MJSIS.js +7 -0
- package/dist/esm/chunks/chunk.XI3MJSIS.js.map +7 -0
- package/dist/esm/chunks/chunk.XIQFHO5R.js +7 -0
- package/dist/esm/chunks/{chunk.FVRSGKJD.js.map → chunk.XIQFHO5R.js.map} +2 -2
- package/dist/esm/chunks/chunk.XKI46BH2.js +7 -0
- package/dist/esm/chunks/{chunk.INCKI5IX.js.map → chunk.XKI46BH2.js.map} +1 -1
- package/dist/esm/chunks/{chunk.AFLH5HUG.js → chunk.YLG6ZC5K.js} +2 -2
- package/dist/esm/chunks/chunk.YRMR7IOS.js +7 -0
- package/dist/esm/chunks/chunk.YRMR7IOS.js.map +7 -0
- package/dist/esm/chunks/chunk.YWNCJ7XP.js +7 -0
- package/dist/esm/chunks/{chunk.242YUZKU.js.map → chunk.YWNCJ7XP.js.map} +2 -2
- package/dist/esm/chunks/{chunk.K2C4W3CO.js → chunk.YX7WLO5Y.js} +2 -2
- package/dist/esm/chunks/chunk.YZLASVCK.js +177 -0
- package/dist/esm/chunks/chunk.YZLASVCK.js.map +7 -0
- package/dist/esm/chunks/{chunk.5FPFRE4H.js → chunk.Z6FCL3G3.js} +2 -2
- package/dist/esm/chunks/{chunk.5FPFRE4H.js.map → chunk.Z6FCL3G3.js.map} +1 -1
- package/dist/esm/chunks/chunk.ZDD2NLGP.js +7 -0
- package/dist/esm/chunks/{chunk.FRYLJWYL.js → chunk.ZJC2DSNM.js} +2 -2
- package/dist/esm/chunks/{chunk.FRYLJWYL.js.map → chunk.ZJC2DSNM.js.map} +1 -1
- package/dist/esm/chunks/chunk.ZKGSQQGU.js +12 -0
- package/dist/esm/chunks/chunk.ZKGSQQGU.js.map +7 -0
- package/dist/esm/chunks/{chunk.JEN6YP2Q.js → chunk.ZVBZ3LGP.js} +2 -2
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +1 -1
- package/dist/esm/core/base/index.js +1 -1
- package/dist/esm/core/delegates/index.js +1 -1
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/core/mask/index.js +1 -1
- package/dist/esm/core/utils/index.js +1 -1
- package/dist/esm/date-picker/index.js +1 -1
- package/dist/esm/date-range-picker/index.js +1 -1
- package/dist/esm/dialog/index.js +1 -1
- package/dist/esm/divider/index.js +1 -1
- package/dist/esm/drawer/base/index.js +1 -1
- package/dist/esm/drawer/drawer/index.js +1 -1
- package/dist/esm/drawer/index.js +1 -1
- package/dist/esm/drawer/mini-drawer/index.js +1 -1
- package/dist/esm/drawer/modal-drawer/index.js +1 -1
- package/dist/esm/expansion-panel/index.js +1 -1
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/index.js +1 -1
- package/dist/esm/floating-label/index.js +1 -1
- package/dist/esm/focus-indicator/index.js +7 -0
- package/dist/esm/focus-indicator/index.js.map +7 -0
- package/dist/esm/icon/index.js +1 -1
- package/dist/esm/icon-button/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inline-message/index.js +1 -1
- package/dist/esm/keyboard-shortcut/index.js +1 -1
- package/dist/esm/label-value/index.js +1 -1
- package/dist/esm/linear-progress/index.js +1 -1
- package/dist/esm/list/index.js +1 -1
- package/dist/esm/list/list/index.js +1 -1
- package/dist/esm/list/list-item/index.js +1 -1
- package/dist/esm/list-dropdown/index.js +1 -1
- package/dist/esm/menu/index.js +1 -1
- package/dist/esm/open-icon/index.js +1 -1
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +1 -1
- package/dist/esm/popup/index.js +1 -1
- package/dist/esm/product-icon/index.js +1 -1
- package/dist/esm/profile-card/index.js +1 -1
- package/dist/esm/quantity-field/index.js +1 -1
- package/dist/esm/radio/index.js +1 -1
- package/dist/esm/ripple/index.js +1 -1
- package/dist/esm/scaffold/index.js +1 -1
- package/dist/esm/select/core/index.js +1 -1
- package/dist/esm/select/index.js +1 -1
- package/dist/esm/select/option/index.js +1 -1
- package/dist/esm/select/option-group/index.js +1 -1
- package/dist/esm/select/select/index.js +1 -1
- package/dist/esm/select/select-dropdown/index.js +1 -1
- package/dist/esm/skeleton/index.js +1 -1
- package/dist/esm/slider/index.js +1 -1
- package/dist/esm/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view-panel/index.js +1 -1
- package/dist/esm/stack/index.js +1 -1
- package/dist/esm/state-layer/index.js +7 -0
- package/dist/esm/state-layer/index.js.map +7 -0
- package/dist/esm/stepper/index.js +1 -1
- package/dist/esm/stepper/step/index.js +1 -1
- package/dist/esm/stepper/stepper/index.js +1 -1
- package/dist/esm/switch/index.js +1 -1
- package/dist/esm/table/index.js +1 -1
- package/dist/esm/tabs/index.js +1 -1
- package/dist/esm/tabs/tab/index.js +1 -1
- package/dist/esm/tabs/tab-bar/index.js +1 -1
- package/dist/esm/text-field/index.js +1 -1
- package/dist/esm/theme/index.js +1 -1
- package/dist/esm/time-picker/index.js +1 -1
- package/dist/esm/toast/index.js +1 -1
- package/dist/esm/toolbar/index.js +1 -1
- package/dist/esm/tooltip/index.js +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/view-switcher/index.js +1 -1
- package/dist/esm/view-switcher/view/index.js +1 -1
- package/dist/forge-dark.css +1 -1
- package/dist/forge.css +1 -1
- package/dist/icon-button/forge-icon-button.css +1 -1
- package/dist/table/forge-table.css +1 -1
- package/dist/theme/forge-theme.css +1 -1
- package/dist/typography/forge-typography-legacy.css +6 -0
- package/dist/typography/forge-typography.css +1 -1
- package/esm/accordion/accordion.js +4 -4
- package/esm/app-bar/app-bar.js +6 -6
- package/esm/app-bar/notification-button/app-bar-notification-button.js +5 -5
- 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.js +4 -4
- package/esm/app-bar/search/app-bar-search.js +6 -6
- package/esm/autocomplete/autocomplete-adapter.d.ts +0 -2
- package/esm/autocomplete/autocomplete-adapter.js +1 -5
- package/esm/autocomplete/autocomplete-component-delegate.d.ts +1 -1
- package/esm/autocomplete/autocomplete-constants.d.ts +5 -4
- package/esm/autocomplete/autocomplete-constants.js +1 -0
- package/esm/autocomplete/autocomplete-foundation.d.ts +5 -0
- package/esm/autocomplete/autocomplete-foundation.js +12 -12
- package/esm/autocomplete/autocomplete.d.ts +3 -0
- package/esm/autocomplete/autocomplete.js +13 -6
- package/esm/avatar/avatar-component-delegate.d.ts +1 -1
- package/esm/avatar/avatar.js +5 -5
- package/esm/backdrop/backdrop-constants.d.ts +1 -1
- package/esm/backdrop/backdrop.js +5 -5
- package/esm/badge/badge-component-delegate.d.ts +1 -1
- package/esm/badge/badge.js +5 -5
- package/esm/banner/banner.js +7 -7
- package/esm/bottom-sheet/bottom-sheet.js +6 -6
- 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.js +6 -6
- package/esm/button/button-component-delegate.d.ts +1 -1
- package/esm/button/button.d.ts +1 -0
- package/esm/button/button.js +11 -5
- package/esm/button-toggle/button-toggle/button-toggle.js +7 -7
- package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.d.ts +2 -2
- package/esm/button-toggle/button-toggle-group/button-toggle-group.js +5 -5
- package/esm/calendar/calendar-component-delegate.d.ts +1 -1
- package/esm/calendar/calendar-constants.d.ts +10 -10
- package/esm/calendar/calendar-dropdown/calendar-dropdown.d.ts +3 -0
- package/esm/calendar/calendar-dropdown/calendar-dropdown.js +14 -5
- package/esm/calendar/calendar-menu/calendar-menu-constants.d.ts +2 -2
- package/esm/calendar/calendar-menu/calendar-menu.js +6 -6
- package/esm/calendar/calendar.js +7 -7
- package/esm/card/card-constants.d.ts +2 -2
- package/esm/card/card-constants.js +2 -2
- package/esm/card/card.d.ts +19 -8
- package/esm/card/card.js +34 -25
- package/esm/checkbox/checkbox-adapter.d.ts +1 -0
- package/esm/checkbox/checkbox-adapter.js +9 -2
- package/esm/checkbox/checkbox-component-delegate.d.ts +1 -1
- package/esm/checkbox/checkbox.js +4 -4
- package/esm/chip-field/chip-field-component-delegate.d.ts +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.js +1 -1
- package/esm/chips/chip/chip-adapter.js +2 -2
- package/esm/chips/chip/chip.js +7 -7
- package/esm/chips/chip-set/chip-set.js +5 -5
- package/esm/circular-progress/circular-progress-adapter.d.ts +7 -14
- package/esm/circular-progress/circular-progress-adapter.js +25 -25
- package/esm/circular-progress/circular-progress-constants.d.ts +6 -2
- package/esm/circular-progress/circular-progress-constants.js +8 -3
- package/esm/circular-progress/circular-progress-foundation.d.ts +0 -8
- package/esm/circular-progress/circular-progress-foundation.js +9 -27
- package/esm/circular-progress/circular-progress.d.ts +24 -5
- package/esm/circular-progress/circular-progress.js +33 -21
- package/esm/color-picker/color-picker-constants.d.ts +2 -2
- package/esm/color-picker/color-picker-foundation.d.ts +0 -1
- package/esm/color-picker/color-picker-foundation.js +2 -5
- package/esm/color-picker/color-picker.js +7 -7
- package/esm/core/base/base-component.d.ts +1 -2
- package/esm/core/delegates/base-component-delegate.d.ts +1 -1
- package/esm/core/delegates/base-component-delegate.js +3 -3
- package/esm/core/delegates/form-field-component-delegate.d.ts +1 -1
- package/esm/core/mask/time-segment-parser.d.ts +1 -1
- package/esm/core/testing/pointer.d.ts +13 -0
- package/esm/core/testing/pointer.js +42 -0
- package/esm/core/utils/utils.d.ts +33 -2
- package/esm/core/utils/utils.js +74 -6
- package/esm/date-picker/base/base-date-picker-adapter.d.ts +4 -2
- package/esm/date-picker/base/base-date-picker-adapter.js +6 -0
- package/esm/date-picker/base/base-date-picker-constants.d.ts +1 -0
- package/esm/date-picker/base/base-date-picker-constants.js +2 -1
- package/esm/date-picker/base/base-date-picker-foundation.d.ts +6 -2
- package/esm/date-picker/base/base-date-picker-foundation.js +21 -6
- package/esm/date-picker/base/base-date-picker.d.ts +3 -0
- package/esm/date-picker/base/base-date-picker.js +6 -0
- package/esm/date-picker/date-picker-adapter.js +6 -8
- package/esm/date-picker/date-picker-component-delegate.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker-adapter.d.ts +4 -2
- package/esm/date-range-picker/date-range-picker-adapter.js +20 -18
- package/esm/date-range-picker/date-range-picker-component-delegate.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker-foundation.d.ts +4 -1
- package/esm/date-range-picker/date-range-picker-foundation.js +48 -14
- package/esm/dialog/dialog-adapter.js +1 -1
- package/esm/dialog/dialog-constants.d.ts +2 -2
- package/esm/dialog/dialog.js +5 -5
- package/esm/drawer/base/base-drawer-constants.d.ts +1 -1
- package/esm/expansion-panel/expansion-panel-constants.d.ts +2 -0
- package/esm/expansion-panel/expansion-panel-constants.js +3 -1
- package/esm/expansion-panel/expansion-panel-foundation.js +4 -1
- package/esm/expansion-panel/expansion-panel.js +6 -6
- package/esm/field/field-adapter.d.ts +4 -2
- package/esm/field/field-adapter.js +5 -2
- package/esm/field/field-constants.d.ts +3 -3
- package/esm/field/field-foundation.d.ts +2 -2
- package/esm/field/field-foundation.js +12 -9
- package/esm/field/field.js +3 -3
- package/esm/file-picker/file-picker-component-delegate.d.ts +1 -1
- package/esm/file-picker/file-picker.js +6 -6
- package/esm/floating-action-button/floating-action-button-component-delegate.d.ts +1 -1
- package/esm/floating-action-button/floating-action-button.js +6 -6
- package/esm/focus-indicator/focus-indicator-adapter.d.ts +29 -0
- package/esm/focus-indicator/focus-indicator-adapter.js +39 -0
- package/esm/focus-indicator/focus-indicator-constants.d.ts +15 -0
- package/esm/focus-indicator/focus-indicator-constants.js +19 -0
- package/esm/focus-indicator/focus-indicator-foundation.d.ts +43 -0
- package/esm/focus-indicator/focus-indicator-foundation.js +110 -0
- package/esm/focus-indicator/focus-indicator.d.ts +67 -0
- package/esm/focus-indicator/focus-indicator.js +112 -0
- package/esm/focus-indicator/index.d.ts +10 -0
- package/esm/focus-indicator/index.js +14 -0
- package/esm/icon/icon.js +5 -5
- package/esm/icon-button/icon-button-component-delegate.d.ts +1 -1
- package/esm/icon-button/icon-button.d.ts +1 -0
- package/esm/icon-button/icon-button.js +16 -9
- package/esm/index.d.ts +2 -0
- package/esm/index.js +6 -0
- package/esm/keyboard-shortcut/keyboard-shortcut.js +4 -4
- package/esm/label-value/label-value-component-delegate.d.ts +1 -1
- package/esm/label-value/label-value-constants.d.ts +1 -1
- package/esm/label-value/label-value.js +5 -5
- package/esm/linear-progress/linear-progress-adapter.d.ts +23 -0
- package/esm/linear-progress/linear-progress-adapter.js +34 -0
- package/esm/linear-progress/linear-progress-constants.d.ts +6 -2
- package/esm/linear-progress/linear-progress-constants.js +8 -3
- package/esm/linear-progress/linear-progress-foundation.d.ts +26 -0
- package/esm/linear-progress/linear-progress-foundation.js +53 -0
- package/esm/linear-progress/linear-progress.d.ts +32 -25
- package/esm/linear-progress/linear-progress.js +49 -107
- package/esm/list/list/list-adapter.js +2 -2
- package/esm/list/list/list.js +5 -5
- package/esm/list/list-item/list-item-adapter.d.ts +3 -3
- package/esm/list/list-item/list-item-adapter.js +2 -2
- package/esm/list/list-item/list-item-foundation.d.ts +1 -0
- package/esm/list/list-item/list-item-foundation.js +8 -1
- package/esm/list/list-item/list-item.js +6 -6
- package/esm/list-dropdown/list-dropdown-adapter.js +4 -5
- package/esm/list-dropdown/list-dropdown-constants.d.ts +6 -6
- package/esm/list-dropdown/list-dropdown-utils.d.ts +1 -1
- package/esm/list-dropdown/list-dropdown-utils.js +7 -4
- package/esm/menu/menu-constants.d.ts +3 -3
- package/esm/menu/menu.js +6 -6
- package/esm/open-icon/open-icon.js +6 -6
- package/esm/paginator/paginator-constants.d.ts +1 -1
- package/esm/paginator/paginator-foundation.js +2 -0
- package/esm/paginator/paginator.js +12 -12
- package/esm/popup/popup-adapter.js +2 -2
- package/esm/popup/popup-constants.d.ts +2 -2
- package/esm/popup/popup.js +5 -5
- package/esm/product-icon/product-icon.js +5 -5
- package/esm/profile-card/profile-card.js +6 -6
- package/esm/quantity-field/quantity-field-component-delegate.d.ts +1 -1
- package/esm/quantity-field/quantity-field.js +6 -6
- package/esm/radio/radio-adapter.d.ts +1 -0
- package/esm/radio/radio-adapter.js +11 -3
- package/esm/radio/radio.js +5 -5
- package/esm/ripple/forge-ripple.d.ts +2 -0
- package/esm/ripple/forge-ripple.js +4 -0
- package/esm/ripple/ripple.js +4 -4
- package/esm/select/core/base-select-constants.d.ts +4 -4
- package/esm/select/option/option.js +4 -4
- package/esm/select/option-group/option-group.js +3 -3
- package/esm/select/select/select-adapter.d.ts +1 -1
- package/esm/select/select/select.js +1 -1
- package/esm/select/select-component-delegate.d.ts +1 -1
- package/esm/slider/slider-adapter.d.ts +79 -0
- package/esm/slider/slider-adapter.js +178 -0
- package/esm/slider/slider-component-delegate.d.ts +19 -3
- package/esm/slider/slider-component-delegate.js +48 -0
- package/esm/slider/slider-constants.d.ts +55 -19
- package/esm/slider/slider-constants.js +56 -14
- package/esm/slider/slider-foundation.d.ts +94 -0
- package/esm/slider/slider-foundation.js +313 -0
- package/esm/slider/slider-utils.d.ts +9 -0
- package/esm/slider/slider-utils.js +56 -0
- package/esm/slider/slider.d.ts +135 -66
- package/esm/slider/slider.js +241 -249
- package/esm/split-view/split-view/split-view-adapter.js +3 -1
- package/esm/split-view/split-view/split-view-constants.d.ts +1 -1
- package/esm/split-view/split-view/split-view.js +5 -5
- package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +2 -2
- package/esm/split-view/split-view-panel/split-view-panel-foundation.js +18 -18
- package/esm/split-view/split-view-panel/split-view-panel.js +7 -7
- package/esm/stack/stack-constants.d.ts +1 -1
- package/esm/stack/stack.js +5 -5
- package/esm/state-layer/index.d.ts +10 -0
- package/esm/state-layer/index.js +14 -0
- package/esm/state-layer/state-layer-adapter.d.ts +41 -0
- package/esm/state-layer/state-layer-adapter.js +101 -0
- package/esm/state-layer/state-layer-constants.d.ts +79 -0
- package/esm/state-layer/state-layer-constants.js +89 -0
- package/esm/state-layer/state-layer-foundation.d.ts +57 -0
- package/esm/state-layer/state-layer-foundation.js +237 -0
- package/esm/state-layer/state-layer-utils.d.ts +26 -0
- package/esm/state-layer/state-layer-utils.js +54 -0
- package/esm/state-layer/state-layer.d.ts +66 -0
- package/esm/state-layer/state-layer.js +96 -0
- package/esm/stepper/core/stepper-utils.js +2 -1
- package/esm/stepper/step/step-constants.d.ts +1 -1
- package/esm/stepper/step/step.js +13 -13
- package/esm/stepper/stepper/stepper-adapter.js +1 -1
- package/esm/stepper/stepper/stepper-constants.d.ts +2 -2
- package/esm/stepper/stepper/stepper-foundation.js +1 -0
- package/esm/stepper/stepper/stepper.js +5 -5
- package/esm/switch/switch-component-delegate.d.ts +1 -1
- package/esm/switch/switch-constants.d.ts +1 -1
- package/esm/switch/switch.js +19 -12
- package/esm/table/table.js +5 -5
- package/esm/table/types.d.ts +4 -4
- package/esm/tabs/tab/tab-adapter.d.ts +14 -40
- package/esm/tabs/tab/tab-adapter.js +57 -79
- package/esm/tabs/tab/tab-constants.d.ts +13 -14
- package/esm/tabs/tab/tab-constants.js +17 -10
- package/esm/tabs/tab/tab-foundation.d.ts +23 -23
- package/esm/tabs/tab/tab-foundation.js +66 -62
- package/esm/tabs/tab/tab.d.ts +56 -20
- package/esm/tabs/tab/tab.js +88 -39
- package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +49 -87
- package/esm/tabs/tab-bar/tab-bar-adapter.js +114 -188
- package/esm/tabs/tab-bar/tab-bar-constants.d.ts +15 -45
- package/esm/tabs/tab-bar/tab-bar-constants.js +22 -56
- package/esm/tabs/tab-bar/tab-bar-foundation.d.ts +56 -65
- package/esm/tabs/tab-bar/tab-bar-foundation.js +241 -302
- package/esm/tabs/tab-bar/tab-bar.d.ts +51 -36
- package/esm/tabs/tab-bar/tab-bar.js +89 -57
- package/esm/text-field/text-field-adapter.d.ts +1 -1
- package/esm/text-field/text-field-adapter.js +5 -3
- package/esm/text-field/text-field-component-delegate.d.ts +1 -1
- package/esm/text-field/text-field.js +1 -1
- package/esm/theme/theme-utils.d.ts +2 -2
- package/esm/time-picker/time-picker-adapter.js +6 -8
- package/esm/time-picker/time-picker-component-delegate.d.ts +1 -1
- package/esm/time-picker/time-picker-constants.d.ts +6 -6
- package/esm/time-picker/time-picker-foundation.js +9 -6
- package/esm/time-picker/time-picker.js +6 -6
- package/esm/toast/toast-constants.d.ts +2 -2
- package/esm/toast/toast.js +7 -7
- package/esm/toolbar/toolbar.js +5 -5
- package/esm/tooltip/tooltip-constants.d.ts +1 -1
- package/esm/tooltip/tooltip.js +4 -4
- package/esm/utils/color-utils.js +1 -0
- package/esm/view-switcher/view-switcher.js +5 -5
- package/package.json +2 -4
- package/styles/app-bar/_mixins.scss +8 -1
- package/styles/card/_mixins.scss +8 -7
- package/styles/chips/chip/_mixins.scss +1 -0
- package/styles/circular-progress/_animation.scss +75 -0
- package/styles/circular-progress/_configuration.scss +23 -0
- package/styles/circular-progress/_core.scss +122 -0
- package/styles/circular-progress/circular-progress.scss +92 -3
- package/styles/circular-progress/index.scss +8 -0
- package/styles/core/styles/_utils.scss +63 -0
- package/styles/core/styles/animation/index.scss +16 -0
- package/styles/core/styles/border/index.scss +38 -0
- package/styles/core/styles/core/_config.scss +6 -0
- package/styles/core/styles/elevation/index.scss +61 -0
- package/styles/core/styles/shape/index.scss +31 -0
- package/styles/core/styles/spacing/index.scss +30 -0
- package/styles/core/styles/theme/index.scss +52 -0
- package/styles/core/styles/tokens/_color-palette.scss +299 -0
- package/styles/core/styles/tokens/animation/_tokens.scss +38 -0
- package/styles/core/styles/tokens/border/_tokens.scss +17 -0
- package/styles/core/styles/tokens/circular-progress/_tokens.scss +21 -0
- package/styles/core/styles/tokens/elevation/_tokens.scss +105 -0
- package/styles/core/styles/tokens/focus-indicator/_tokens.scss +34 -0
- package/styles/core/styles/tokens/index.scss +10 -0
- package/styles/core/styles/tokens/linear-progress/_tokens.scss +25 -0
- package/styles/core/styles/tokens/shape/_tokens.scss +42 -0
- package/styles/core/styles/tokens/slider/_tokens.scss +49 -0
- package/styles/core/styles/tokens/spacing/_tokens.scss +23 -0
- package/styles/core/styles/tokens/state-layer/_tokens.scss +23 -0
- package/styles/core/styles/tokens/tabs/tab/_tokens.scss +71 -0
- package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +19 -0
- package/styles/core/styles/tokens/theme/_tokens.scss +133 -0
- package/styles/core/styles/tokens/typography/_tokens.scss +236 -0
- package/styles/core/styles/typography/index.scss +119 -0
- package/styles/focus-indicator/_animations.scss +36 -0
- package/styles/focus-indicator/_configuration.scss +23 -0
- package/styles/focus-indicator/_core.scss +52 -0
- package/styles/focus-indicator/focus-indicator.scss +55 -0
- package/styles/focus-indicator/index.scss +8 -0
- package/styles/linear-progress/_animations.scss +129 -0
- package/styles/linear-progress/_configuration.scss +29 -0
- package/styles/linear-progress/_core.scss +99 -0
- package/styles/linear-progress/index.scss +8 -0
- package/styles/linear-progress/linear-progress.scss +101 -18
- package/styles/list/list-item/_mixins.scss +11 -1
- package/styles/list/list-item/_variables.scss +9 -0
- package/styles/slider/_configuration.scss +61 -0
- package/styles/slider/_core.scss +344 -0
- package/styles/slider/index.scss +7 -0
- package/styles/slider/slider.scss +186 -14
- package/styles/state-layer/_configuration.scss +17 -0
- package/styles/state-layer/_core.scss +124 -0
- package/styles/state-layer/index.scss +7 -0
- package/styles/state-layer/state-layer.scss +38 -0
- package/styles/table/_mixins.scss +2 -2
- package/styles/tabs/tab/_configuration.scss +64 -0
- package/styles/tabs/tab/_core.scss +190 -0
- package/styles/tabs/tab/index.scss +7 -0
- package/styles/tabs/tab/tab.scss +182 -15
- package/styles/tabs/tab-bar/_configuration.scss +13 -0
- package/styles/tabs/tab-bar/_core.scss +60 -0
- package/styles/tabs/tab-bar/index.scss +7 -0
- package/styles/tabs/tab-bar/tab-bar.scss +66 -5
- package/styles/theme/_theme-dark.scss +4 -8
- package/styles/theme/_theme.scss +3 -36
- package/styles/typography/forge-typography-legacy.scss +8 -0
- package/styles/typography/forge-typography.scss +11 -3
- package/styles/utils/_mixins-core.scss +1 -1
- package/dist/esm/chunks/chunk.242YUZKU.js +0 -7
- package/dist/esm/chunks/chunk.2BNDXFI5.js +0 -7
- package/dist/esm/chunks/chunk.2BNDXFI5.js.map +0 -7
- package/dist/esm/chunks/chunk.2DXG2R3M.js +0 -73
- package/dist/esm/chunks/chunk.2DXG2R3M.js.map +0 -7
- package/dist/esm/chunks/chunk.44IJE5UL.js +0 -7
- package/dist/esm/chunks/chunk.44IJE5UL.js.map +0 -7
- package/dist/esm/chunks/chunk.47A2CN5U.js +0 -7
- package/dist/esm/chunks/chunk.4BEI55KI.js +0 -7
- package/dist/esm/chunks/chunk.4FSAAN6W.js +0 -29
- package/dist/esm/chunks/chunk.4FSAAN6W.js.map +0 -7
- package/dist/esm/chunks/chunk.4NI63FGK.js +0 -7
- package/dist/esm/chunks/chunk.4WPFFNLH.js +0 -7
- package/dist/esm/chunks/chunk.5WNKQTXX.js +0 -7
- package/dist/esm/chunks/chunk.6OKJPSUE.js +0 -7
- package/dist/esm/chunks/chunk.72AUOVCD.js +0 -7
- package/dist/esm/chunks/chunk.72AUOVCD.js.map +0 -7
- package/dist/esm/chunks/chunk.7A6MX6CS.js +0 -7
- package/dist/esm/chunks/chunk.7A6MX6CS.js.map +0 -7
- package/dist/esm/chunks/chunk.7BOXIJAM.js +0 -7
- package/dist/esm/chunks/chunk.7BOXIJAM.js.map +0 -7
- package/dist/esm/chunks/chunk.ABLKZXJ3.js +0 -12
- package/dist/esm/chunks/chunk.ABLKZXJ3.js.map +0 -7
- package/dist/esm/chunks/chunk.BTBHIIGI.js +0 -7
- package/dist/esm/chunks/chunk.C7AN6FMW.js +0 -7
- package/dist/esm/chunks/chunk.C7AN6FMW.js.map +0 -7
- package/dist/esm/chunks/chunk.CKYHP5MC.js +0 -7
- package/dist/esm/chunks/chunk.CKYHP5MC.js.map +0 -7
- package/dist/esm/chunks/chunk.DT7MZR5Y.js +0 -7
- package/dist/esm/chunks/chunk.DYNEJBYK.js +0 -7
- package/dist/esm/chunks/chunk.E6CYXNS2.js +0 -7
- package/dist/esm/chunks/chunk.EGRUD7S7.js +0 -7
- package/dist/esm/chunks/chunk.ESR2NHOS.js +0 -7
- package/dist/esm/chunks/chunk.ESR2NHOS.js.map +0 -7
- package/dist/esm/chunks/chunk.F3MP6AXF.js +0 -29
- package/dist/esm/chunks/chunk.F3MP6AXF.js.map +0 -7
- package/dist/esm/chunks/chunk.FVRSGKJD.js +0 -7
- package/dist/esm/chunks/chunk.G3ZTZ4AN.js +0 -7
- package/dist/esm/chunks/chunk.G3ZTZ4AN.js.map +0 -7
- package/dist/esm/chunks/chunk.G5MGGEFP.js +0 -7
- package/dist/esm/chunks/chunk.HPDBSBQJ.js +0 -29
- package/dist/esm/chunks/chunk.HPDBSBQJ.js.map +0 -7
- package/dist/esm/chunks/chunk.HV6SPRC4.js +0 -7
- package/dist/esm/chunks/chunk.HV6SPRC4.js.map +0 -7
- package/dist/esm/chunks/chunk.I5BAZWUF.js +0 -7
- package/dist/esm/chunks/chunk.I5BAZWUF.js.map +0 -7
- package/dist/esm/chunks/chunk.IGTXLDZS.js +0 -7
- package/dist/esm/chunks/chunk.ILRWZHH3.js +0 -29
- package/dist/esm/chunks/chunk.ILRWZHH3.js.map +0 -7
- package/dist/esm/chunks/chunk.INCKI5IX.js +0 -7
- package/dist/esm/chunks/chunk.J6WCFQSS.js +0 -7
- package/dist/esm/chunks/chunk.JHBCYICS.js +0 -7
- package/dist/esm/chunks/chunk.JHY2CKEH.js +0 -7
- package/dist/esm/chunks/chunk.K6AFP52A.js +0 -7
- package/dist/esm/chunks/chunk.K6AFP52A.js.map +0 -7
- package/dist/esm/chunks/chunk.KE6GOYAB.js +0 -7
- package/dist/esm/chunks/chunk.KE6GOYAB.js.map +0 -7
- package/dist/esm/chunks/chunk.LDN4HLF7.js +0 -7
- package/dist/esm/chunks/chunk.LDN4HLF7.js.map +0 -7
- package/dist/esm/chunks/chunk.M2QU3LUR.js +0 -7
- package/dist/esm/chunks/chunk.M2QU3LUR.js.map +0 -7
- package/dist/esm/chunks/chunk.MCIQXNKY.js +0 -7
- package/dist/esm/chunks/chunk.MHOS3IHQ.js +0 -7
- package/dist/esm/chunks/chunk.MSF55AA3.js +0 -7
- package/dist/esm/chunks/chunk.MSF55AA3.js.map +0 -7
- package/dist/esm/chunks/chunk.MXTDW27J.js +0 -7
- package/dist/esm/chunks/chunk.MXTDW27J.js.map +0 -7
- package/dist/esm/chunks/chunk.NW7NV2A2.js +0 -7
- package/dist/esm/chunks/chunk.NW7NV2A2.js.map +0 -7
- package/dist/esm/chunks/chunk.Q7LFOS2I.js +0 -7
- package/dist/esm/chunks/chunk.Q7LFOS2I.js.map +0 -7
- package/dist/esm/chunks/chunk.RB5BTA5N.js +0 -7
- package/dist/esm/chunks/chunk.RE5X26QT.js +0 -29
- package/dist/esm/chunks/chunk.RE5X26QT.js.map +0 -7
- package/dist/esm/chunks/chunk.RG6CDWEX.js +0 -7
- package/dist/esm/chunks/chunk.RG6CDWEX.js.map +0 -7
- package/dist/esm/chunks/chunk.ROR6JMAE.js +0 -7
- package/dist/esm/chunks/chunk.SAQVWOVK.js +0 -7
- package/dist/esm/chunks/chunk.SAQVWOVK.js.map +0 -7
- package/dist/esm/chunks/chunk.TWZXQQQO.js +0 -29
- package/dist/esm/chunks/chunk.TWZXQQQO.js.map +0 -7
- package/dist/esm/chunks/chunk.UF43SSFY.js +0 -7
- package/dist/esm/chunks/chunk.UF43SSFY.js.map +0 -7
- package/dist/esm/chunks/chunk.V4TCOZLK.js +0 -29
- package/dist/esm/chunks/chunk.V4TCOZLK.js.map +0 -7
- package/dist/esm/chunks/chunk.V7WKXEZC.js +0 -7
- package/dist/esm/chunks/chunk.V7WKXEZC.js.map +0 -7
- package/dist/esm/chunks/chunk.VAKNDCLP.js +0 -29
- package/dist/esm/chunks/chunk.VAKNDCLP.js.map +0 -7
- package/dist/esm/chunks/chunk.WY7DECJD.js +0 -7
- package/dist/esm/chunks/chunk.WY7DECJD.js.map +0 -7
- package/dist/esm/chunks/chunk.X5LGVZGO.js +0 -7
- package/dist/esm/chunks/chunk.X5LGVZGO.js.map +0 -7
- package/dist/esm/chunks/chunk.Y4GKBJGI.js +0 -7
- package/dist/esm/chunks/chunk.Y5A7RQ5M.js +0 -7
- package/dist/esm/chunks/chunk.Y66GSZJB.js +0 -7
- package/dist/esm/chunks/chunk.Y66GSZJB.js.map +0 -7
- package/dist/esm/chunks/chunk.Y72NANFX.js +0 -7
- package/dist/esm/chunks/chunk.Y72NANFX.js.map +0 -7
- package/dist/esm/chunks/chunk.YBEBD4CN.js +0 -7
- package/dist/esm/chunks/chunk.YI4JTY4T.js +0 -14
- package/dist/esm/chunks/chunk.YPZNIYQL.js +0 -7
- package/dist/esm/chunks/chunk.ZFHPUAYX.js +0 -7
- package/dist/typography/forge-form.css +0 -6
- package/styles/circular-progress/_keyframes.scss +0 -185
- package/styles/circular-progress/_mixins.scss +0 -320
- package/styles/circular-progress/_variables.scss +0 -50
- package/styles/linear-progress/_mixins.scss +0 -11
- package/styles/linear-progress/_variables.scss +0 -15
- package/styles/tabs/tab/_mixins.scss +0 -165
- package/styles/tabs/tab/_variables.scss +0 -9
- package/styles/tabs/tab-bar/_mixins.scss +0 -78
- package/styles/typography/forge-form.scss +0 -67
- /package/dist/esm/chunks/{chunk.JHY2CKEH.js.map → chunk.3HB22HCX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IGTXLDZS.js.map → chunk.4C6KHYUO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KU5CXXGS.js.map → chunk.A62DE5PD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.G45OZEIS.js.map → chunk.CWTV3TB3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WP4QOOIS.js.map → chunk.DG4ZM3AW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.EGRUD7S7.js.map → chunk.EK24Y56W.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UT7QUGAO.js.map → chunk.FWFOOQMA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZUNZKRRK.js.map → chunk.IX25DYIM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ARJ3EVVO.js.map → chunk.KVCDAZ6B.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.H4Z4DHPA.js.map → chunk.LTT67HTW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MCIQXNKY.js.map → chunk.M3QDAYD2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.O73S5LF3.js.map → chunk.MGLL67VO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MLV25D2G.js.map → chunk.OWCYRSI3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IUOBRBDZ.js.map → chunk.QOJESHEV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XUW3GG46.js.map → chunk.SFCGOCQK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RBAVT3XQ.js.map → chunk.XGOAYMK2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AFLH5HUG.js.map → chunk.YLG6ZC5K.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.K2C4W3CO.js.map → chunk.YX7WLO5Y.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DYNEJBYK.js.map → chunk.ZDD2NLGP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JEN6YP2Q.js.map → chunk.ZVBZ3LGP.js.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/chips/chip-set/chip-set-constants.ts", "../../src/chips/chip/chip-constants.ts", "../../src/chips/chip/chip-adapter.ts", "../../src/chips/chip/chip-foundation.ts", "../../src/chips/chip/chip.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}chip-set`;\r\n\r\nconst attributes = {\r\n VERTICAL: 'vertical',\r\n TYPE: 'type',\r\n DENSE: 'dense',\r\n DISABLED: 'disabled'\r\n};\r\n\r\nconst classes = {\r\n ROOT: 'forge-chip-set',\r\n VERTICAL: 'forge-chip-set--vertical'\r\n};\r\n\r\nconst selectors = {\r\n ROOT: `.${classes.ROOT}`\r\n};\r\n\r\nexport const CHIP_SET_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n classes,\r\n selectors\r\n};\r\n", "import { COMPONENT_NAME_PREFIX } from '../../constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}chip`;\r\n\r\nconst attributes = {\r\n TYPE: 'type',\r\n SELECTED: 'selected',\r\n VALUE: 'value',\r\n DISABLED: 'disabled',\r\n INVALID: 'invalid',\r\n DENSE: 'dense',\r\n EMULATE_FOCUS: 'emulate-focus'\r\n};\r\n\r\nconst classes = {\r\n ACTION: 'forge-chip--action',\r\n CHOICE: 'forge-chip--choice',\r\n FILTER: 'forge-chip--filter',\r\n INPUT: 'forge-chip--input',\r\n FIELD: 'forge-chip--field',\r\n INVALID: 'forge-chip--invalid',\r\n SELECTED: 'forge-chip--selected',\r\n DELETE_BUTTON: 'forge-chip__delete-button',\r\n DELETE_BUTTON_TOUCH_TARGET: 'forge-chip__delete-button__touch-target',\r\n DENSE: 'forge-chip--dense',\r\n DISABLED: 'forge-chip--disabled',\r\n LEADING_HIDDEN: 'forge-chip__leading--hidden'\r\n};\r\n\r\nconst selectors = {\r\n ROOT: '.forge-chip',\r\n BUTTON: '[role=button]'\r\n};\r\n\r\nconst events = {\r\n DELETE: `${elementName}-delete`,\r\n SELECT: `${elementName}-select`,\r\n FOCUS_NEXT: `${elementName}-focus-next`,\r\n FOCUS_PREVIOUS: `${elementName}-focus-previous`\r\n};\r\n\r\nconst defaults = {\r\n TYPE: 'action'\r\n};\r\n\r\nexport const CHIP_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n classes,\r\n selectors,\r\n events,\r\n defaults\r\n};\r\n\r\nexport declare type ChipType = 'choice' | 'filter' | 'action' | 'input' | 'field';\r\n\r\nexport interface IChipSelectEventData<T = any> {\r\n value: T;\r\n selected: boolean;\r\n}\r\n\r\nexport interface IChipDeleteEventData<T = any> {\r\n value: T;\r\n}\r\n\r\nexport interface IChipState {\r\n type: ChipType;\r\n disabled: boolean;\r\n dense: boolean;\r\n}\r\n", "import { addClass, elementFromHTML, getActiveElement, getShadowElement, removeClass, removeElement, toggleClass, walkUpUntil } from '@tylertech/forge-core';\r\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\r\nimport { ICON_CONSTANTS } from '../../icon';\r\nimport { ForgeRipple, ForgeRippleAdapter, ForgeRippleCapableSurface, ForgeRippleFoundation } from '../../ripple';\r\nimport { IChipSetComponent } from '../chip-set/chip-set';\r\nimport { CHIP_SET_CONSTANTS } from '../chip-set/chip-set-constants';\r\nimport { IChipComponent } from './chip';\r\nconst checkmarkTemplate = '<div class=\\\"forge-chip__checkmark\\\" aria-hidden=\\\"true\\\"><svg class=\\\"forge-chip__checkmark-svg\\\" viewBox=\\\"-2 -3 30 30\\\"><path class=\\\"forge-chip__checkmark-path\\\" fill=\\\"none\\\" stroke=\\\"black\\\" d=\\\"M1.73,12.91 8.1,19.28 22.79,4.59\\\"/></svg></div>';\r\nimport { CHIP_CONSTANTS, IChipState } from './chip-constants';\r\n\r\nexport interface IChipAdapter extends IBaseAdapter {\r\n addRootListener(type: string, listener: (evt: Event) => void): void;\r\n removeRootListener(type: string, listener: (evt: Event) => void): void;\r\n addButtonListener(type: string, listener: (evt: Event) => void): void;\r\n removeButtonListener(type: string, listener: (evt: Event) => void): void;\r\n initializeRipple(): ForgeRipple;\r\n clearTypeClass(): void;\r\n addRootClass(className: string): void;\r\n removeRootClass(name: string): void;\r\n setCheckmarkVisibility(isVisible: boolean): void;\r\n setSelected(value: boolean): void;\r\n setDisabled(value: boolean): void;\r\n setDense(value: boolean): void;\r\n setDeleteButtonVisibility(isVisible: boolean, listener: (evt: KeyboardEvent) => void): void;\r\n setLeadingSlotVisibility(isVisible: boolean): void;\r\n getChipSetState(): IChipState | null;\r\n setFocus(): void;\r\n tryFocusDelete(): void;\r\n setEmulatedFocus(value: boolean): void;\r\n tryMoveFocusPrevious(): void;\r\n tryMoveFocusNext(): void;\r\n}\r\n\r\n\r\nexport class ChipAdapter extends BaseAdapter<IChipComponent> implements IChipAdapter, ForgeRippleCapableSurface {\r\n private _rootElement: HTMLElement;\r\n private _rippleInstance: ForgeRipple;\r\n private _buttonElement: HTMLButtonElement;\r\n private _deleteButton: HTMLElement;\r\n private _deleteButtonTouchTarget: HTMLDivElement;\r\n private _leadingSlotElement: HTMLSlotElement;\r\n private _checkmarkElement: HTMLElement;\r\n\r\n constructor(component: IChipComponent) {\r\n super(component);\r\n this._rootElement = getShadowElement(this._component, CHIP_CONSTANTS.selectors.ROOT);\r\n this._buttonElement = getShadowElement(this._component, CHIP_CONSTANTS.selectors.BUTTON) as HTMLButtonElement;\r\n this._leadingSlotElement = getShadowElement(this._component, 'slot[name=leading]') as HTMLSlotElement;\r\n this._rootElement.addEventListener('click', evt => {\r\n if (evt.target === this._deleteButton) {\r\n return;\r\n }\r\n this._buttonElement.focus();\r\n }, { capture: true });\r\n }\r\n\r\n // ForgeRippleCapableSurface\r\n public get root(): Element {\r\n return this._rootElement;\r\n }\r\n public get unbounded(): boolean | undefined {\r\n return false;\r\n }\r\n public get disabled(): boolean | undefined {\r\n return this._buttonElement?.disabled;\r\n }\r\n\r\n public addRootListener(type: string, listener: (evt: Event) => void): void {\r\n this._rootElement.addEventListener(type, listener);\r\n }\r\n\r\n public removeRootListener(type: string, listener: (evt: Event) => void): void {\r\n this._rootElement.removeEventListener(type, listener);\r\n }\r\n\r\n public addButtonListener(type: string, listener: (evt: Event) => void): void {\r\n this._buttonElement.addEventListener(type, listener);\r\n }\r\n\r\n public removeButtonListener(type: string, listener: (evt: Event) => void): void {\r\n this._buttonElement.removeEventListener(type, listener);\r\n }\r\n\r\n public initializeRipple(): ForgeRipple {\r\n const adapter: ForgeRippleAdapter = {\r\n ...ForgeRipple.createAdapter(this),\r\n registerInteractionHandler: (evtType, handler) => {\r\n if (['focus', 'blur', 'keydown'].includes(evtType)) {\r\n this._buttonElement.addEventListener(evtType, handler, { passive: true });\r\n } else {\r\n this._rootElement.addEventListener(evtType, handler, { passive: true });\r\n }\r\n },\r\n deregisterInteractionHandler: (evtType, handler) => {\r\n if (['focus', 'blur', 'keydown'].includes(evtType)) {\r\n this._buttonElement.removeEventListener(evtType, handler, { passive: true } as AddEventListenerOptions);\r\n } else {\r\n this._rootElement.removeEventListener(evtType, handler, { passive: true } as AddEventListenerOptions);\r\n }\r\n },\r\n isSurfaceActive: () => this._buttonElement.matches(':active'),\r\n isUnbounded: () => Boolean(this.unbounded),\r\n isSurfaceDisabled: () => this._buttonElement.disabled,\r\n addClass: className => addClass(className, this._rootElement),\r\n removeClass: className => removeClass(className, this._rootElement),\r\n updateCssVariable: (varName, value) => this._rootElement.style.setProperty(varName, value)\r\n };\r\n this._rippleInstance = new ForgeRipple(this._rootElement, new ForgeRippleFoundation(adapter));\r\n return this._rippleInstance;\r\n }\r\n\r\n public clearTypeClass(): void {\r\n removeClass([CHIP_CONSTANTS.classes.ACTION, CHIP_CONSTANTS.classes.CHOICE, CHIP_CONSTANTS.classes.FILTER, CHIP_CONSTANTS.classes.INPUT], this._buttonElement);\r\n }\r\n\r\n public addRootClass(className: string): void {\r\n this._rootElement.classList.add(className);\r\n }\r\n\r\n public removeRootClass(name: string): void {\r\n this._rootElement.classList.remove(name);\r\n }\r\n\r\n public setCheckmarkVisibility(isVisible: boolean): void {\r\n if (isVisible) {\r\n if (!this._checkmarkElement) {\r\n this._checkmarkElement = elementFromHTML(checkmarkTemplate) as HTMLElement;\r\n }\r\n this._rootElement.insertBefore(this._checkmarkElement, this._rootElement.firstChild);\r\n } else if (this._checkmarkElement && this._checkmarkElement.isConnected) {\r\n removeElement(this._checkmarkElement);\r\n }\r\n }\r\n\r\n public setSelected(value: boolean): void {\r\n toggleClass(this._rootElement, value, CHIP_CONSTANTS.classes.SELECTED);\r\n }\r\n\r\n public setDisabled(value: boolean): void {\r\n this._buttonElement.disabled = value;\r\n this._buttonElement.tabIndex = value ? -1 : 0;\r\n toggleClass(this._rootElement, value, CHIP_CONSTANTS.classes.DISABLED);\r\n }\r\n\r\n public setDense(value: boolean): void {\r\n toggleClass(this._rootElement, value, CHIP_CONSTANTS.classes.DENSE);\r\n }\r\n\r\n public setDeleteButtonVisibility(isVisible: boolean, listener: (evt: KeyboardEvent) => void): void {\r\n if (isVisible) {\r\n if (!this._deleteButton) {\r\n this._deleteButton = this._createDeleteButton(listener);\r\n }\r\n if (!this._deleteButtonTouchTarget) {\r\n this._deleteButtonTouchTarget = this._createDeleteButtonTouchTarget(listener);\r\n }\r\n this._deleteButton.appendChild(this._deleteButtonTouchTarget);\r\n this._rootElement.appendChild(this._deleteButton);\r\n } else {\r\n if (this._deleteButtonTouchTarget) {\r\n removeElement(this._deleteButtonTouchTarget);\r\n }\r\n if (this._deleteButton) {\r\n removeElement(this._deleteButton);\r\n }\r\n }\r\n }\r\n\r\n public setLeadingSlotVisibility(isVisible: boolean): void {\r\n toggleClass(this._leadingSlotElement, !isVisible, CHIP_CONSTANTS.classes.LEADING_HIDDEN);\r\n }\r\n\r\n public getChipSetState(): IChipState | null {\r\n let state: IChipState | null = null;\r\n const chipSet = walkUpUntil(this._component, node => node && node.nodeName === CHIP_SET_CONSTANTS.elementName.toUpperCase()) as IChipSetComponent;\r\n if (chipSet) {\r\n state = {\r\n type: chipSet.type,\r\n disabled: chipSet.disabled,\r\n dense: chipSet.dense\r\n };\r\n }\r\n return state;\r\n }\r\n\r\n private _createDeleteButton(listener: (evt: KeyboardEvent) => void): HTMLElement {\r\n const el = document.createElement(ICON_CONSTANTS.elementName);\r\n el.id = 'remove-button';\r\n el.name = 'cancel';\r\n el.tabIndex = -1;\r\n el.setAttribute('aria-hidden', 'false');\r\n el.setAttribute('aria-label', `Remove ${this._component.innerText}`);\r\n el.setAttribute('role', 'button');\r\n el.classList.add(CHIP_CONSTANTS.classes.DELETE_BUTTON);\r\n el.addEventListener('keydown', listener);\r\n return el;\r\n }\r\n\r\n private _createDeleteButtonTouchTarget(listener: (evt: KeyboardEvent) => void): HTMLDivElement {\r\n const el = document.createElement('div');\r\n el.classList.add(CHIP_CONSTANTS.classes.DELETE_BUTTON_TOUCH_TARGET);\r\n el.addEventListener('keydown', listener);\r\n el.addEventListener('click', listener);\r\n return el;\r\n }\r\n\r\n public setFocus(): void {\r\n this._buttonElement.focus();\r\n }\r\n\r\n public tryFocusDelete(): void {\r\n if (this._deleteButton) {\r\n this._deleteButton.focus();\r\n } else {\r\n this.setFocus();\r\n }\r\n }\r\n\r\n public setEmulatedFocus(value: boolean): void {\r\n this._buttonElement.classList.toggle('mdc-ripple-upgraded--background-focused', value);\r\n }\r\n\r\n public tryMoveFocusNext(): void {\r\n const activeElement = getActiveElement();\r\n if (activeElement === this._buttonElement) {\r\n if (this._deleteButton) {\r\n this._deleteButton.focus();\r\n } else {\r\n this.emitHostEvent(CHIP_CONSTANTS.events.FOCUS_NEXT);\r\n }\r\n } else if (activeElement === this._deleteButton) {\r\n this.emitHostEvent(CHIP_CONSTANTS.events.FOCUS_NEXT);\r\n }\r\n }\r\n\r\n public tryMoveFocusPrevious(): void {\r\n const activeElement = getActiveElement();\r\n if (activeElement === this._deleteButton) {\r\n this._buttonElement.focus();\r\n } else if (activeElement === this._buttonElement) {\r\n this.emitHostEvent(CHIP_CONSTANTS.events.FOCUS_PREVIOUS);\r\n }\r\n }\r\n}\r\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\r\nimport { ForgeRipple } from '../../ripple';\r\nimport { IChipAdapter } from './chip-adapter';\r\nimport { ChipType, CHIP_CONSTANTS, IChipDeleteEventData, IChipSelectEventData } from './chip-constants';\r\n\r\nexport interface IChipFoundation extends ICustomElementFoundation {\r\n type: ChipType;\r\n selected: boolean;\r\n disabled: boolean;\r\n invalid: boolean;\r\n value: any;\r\n dense: boolean;\r\n emulateFocus: boolean;\r\n setFocus(): void;\r\n tryFocusDelete(): void;\r\n}\r\n\r\nexport class ChipFoundation implements IChipFoundation {\r\n private _type: ChipType = CHIP_CONSTANTS.defaults.TYPE as ChipType;\r\n private _selected = false;\r\n private _disabled = false;\r\n private _invalid = false;\r\n private _value: any = null;\r\n private _dense = false;\r\n private _emulateFocus = false;\r\n private _isInitialized = false;\r\n private _rippleInstance: ForgeRipple | undefined;\r\n private _clickListener: (evt: MouseEvent) => void;\r\n private _keydownListener: (evt: KeyboardEvent) => void;\r\n private _deleteKeydownListener: (evt: KeyboardEvent) => void;\r\n private _buttonFocusListener: (evt: FocusEvent) => void;\r\n private _buttonBlurListener: (evt: FocusEvent) => void;\r\n\r\n constructor(private _adapter: IChipAdapter) {\r\n this._clickListener = evt => this._onClick(evt);\r\n this._keydownListener = evt => this._onKeydown(evt);\r\n this._deleteKeydownListener = evt => this._onDeleteKeydown(evt);\r\n this._buttonFocusListener = evt => this._onButtonFocus(evt);\r\n this._buttonBlurListener = evt => this._onButtonBlur(evt);\r\n }\r\n\r\n public initialize(): void {\r\n this._rippleInstance = this._adapter.initializeRipple();\r\n this._adapter.addRootListener('click', this._clickListener);\r\n this._adapter.addRootListener('keydown', this._keydownListener);\r\n this._adapter.addButtonListener('focus', this._buttonFocusListener);\r\n this._adapter.addButtonListener('blur', this._buttonBlurListener);\r\n this._applyState();\r\n this._isInitialized = true;\r\n }\r\n\r\n public disconnect(): void {\r\n this._destroyRipple();\r\n this._adapter.removeRootListener('click', this._clickListener);\r\n this._adapter.removeRootListener('keydown', this._keydownListener);\r\n this._adapter.removeButtonListener('focus', this._buttonFocusListener);\r\n this._adapter.removeButtonListener('blur', this._buttonBlurListener);\r\n this._isInitialized = false;\r\n }\r\n\r\n private _destroyRipple(): void {\r\n if (this._rippleInstance) {\r\n this._rippleInstance.destroy();\r\n this._rippleInstance = undefined;\r\n }\r\n }\r\n\r\n private _applyState(): void {\r\n // Attempt to inherit state from the parent chip-set component\r\n // Note: this should only inherit properties that need to be the same across the chips within a set\r\n const chipSetState = this._adapter.getChipSetState();\r\n if (chipSetState) {\r\n this._type = chipSetState.type;\r\n this._disabled = chipSetState.disabled;\r\n this._dense = chipSetState.dense;\r\n }\r\n\r\n // Ensure that only non-action chips can be selected\r\n if (this._type === 'action') {\r\n this._selected = false;\r\n }\r\n\r\n this._applyDisabled();\r\n this._applyType();\r\n this._applySelected();\r\n this._applyDense();\r\n this._applyEmulateFocus();\r\n }\r\n\r\n private _onClick(evt: MouseEvent): void {\r\n const target = evt.target as HTMLElement;\r\n const isDeleteButton = target.classList.contains(CHIP_CONSTANTS.classes.DELETE_BUTTON) ||\r\n target.classList.contains(CHIP_CONSTANTS.classes.DELETE_BUTTON_TOUCH_TARGET);\r\n if (isDeleteButton) {\r\n this._handleDeleteInteraction(evt);\r\n } else {\r\n this._handleSelectInteraction();\r\n }\r\n }\r\n\r\n private _onKeydown(evt: KeyboardEvent): void {\r\n switch (evt.key) {\r\n case 'Delete':\r\n case 'Backspace':\r\n if (this._type === 'input') {\r\n evt.preventDefault();\r\n this._emitDeleteEvent();\r\n }\r\n break;\r\n case 'Enter':\r\n case ' ':\r\n evt.preventDefault();\r\n this._rippleInstance?.animate();\r\n this._handleSelectInteraction();\r\n break;\r\n case 'ArrowLeft':\r\n evt.preventDefault();\r\n this._adapter.tryMoveFocusPrevious();\r\n break;\r\n case 'ArrowRight':\r\n evt.preventDefault();\r\n this._adapter.tryMoveFocusNext();\r\n break;\r\n }\r\n }\r\n\r\n private _onDeleteKeydown(evt: KeyboardEvent): void {\r\n if (evt.key === 'Enter') {\r\n this._handleDeleteInteraction(evt);\r\n }\r\n }\r\n\r\n private _onButtonFocus(evt: FocusEvent): void {\r\n this._adapter.setHostAttribute('focused');\r\n }\r\n\r\n private _onButtonBlur(evt: FocusEvent): void {\r\n this._adapter.removeHostAttribute('focused');\r\n }\r\n\r\n private _handleDeleteInteraction(evt: Event): void {\r\n // The delete event can only be fired when the `input` or `field` type is used\r\n const target = evt.target as HTMLElement;\r\n const isDeleteButton = target.classList.contains(CHIP_CONSTANTS.classes.DELETE_BUTTON) ||\r\n target.classList.contains(CHIP_CONSTANTS.classes.DELETE_BUTTON_TOUCH_TARGET);\r\n if (isDeleteButton) {\r\n evt.stopPropagation();\r\n this._emitDeleteEvent();\r\n }\r\n }\r\n\r\n private _handleSelectInteraction(): void {\r\n const wasDefaultPrevented = this._emitSelectEvent();\r\n const isSelectableType = ['filter', 'choice', 'input'].includes(this._type);\r\n\r\n // We only toggle the selected state for certain types (and if default wasn't prevented on the event)\r\n if (!wasDefaultPrevented && isSelectableType) {\r\n this._selected = !this._selected;\r\n this._applySelected();\r\n }\r\n }\r\n\r\n private _emitSelectEvent(): boolean {\r\n const selectEventData: IChipSelectEventData = {\r\n selected: !this._selected,\r\n value: this._value\r\n };\r\n return !this._adapter.emitHostEvent(CHIP_CONSTANTS.events.SELECT, selectEventData, true, true);\r\n }\r\n\r\n private _emitDeleteEvent(): void {\r\n const deleteEventData: IChipDeleteEventData = { value: this._value };\r\n this._adapter.emitHostEvent(CHIP_CONSTANTS.events.DELETE, deleteEventData, true, true);\r\n }\r\n\r\n private _applyType(): void {\r\n this._adapter.clearTypeClass();\r\n\r\n switch (this._type) {\r\n case 'action':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.ACTION);\r\n break;\r\n case 'choice':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.CHOICE);\r\n break;\r\n case 'filter':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.FILTER);\r\n break;\r\n case 'input':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.INPUT);\r\n break;\r\n case 'field':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.FIELD);\r\n break;\r\n }\r\n\r\n this._adapter.setCheckmarkVisibility(this._type === 'filter');\r\n const showDeleteButton = this._type === 'input' || this._type === 'field';\r\n this._adapter.setDeleteButtonVisibility(showDeleteButton, this._deleteKeydownListener);\r\n this._adapter.setLeadingSlotVisibility(!this._selected);\r\n this._adapter.setHostAttribute(CHIP_CONSTANTS.attributes.TYPE, this._type);\r\n }\r\n\r\n private _applySelected(): void {\r\n this._adapter.setSelected(this._selected);\r\n\r\n // If using the filter type, we need to hide the leading slot to ensure that\r\n // the checkmark shows in place of any leading elements\r\n if (this._type === 'filter') {\r\n this._adapter.setLeadingSlotVisibility(!this._selected);\r\n }\r\n\r\n this._adapter.toggleHostAttribute(CHIP_CONSTANTS.attributes.SELECTED, this._selected);\r\n }\r\n\r\n private _applyDisabled(): void {\r\n this._adapter.setDisabled(this._disabled);\r\n this._adapter.toggleHostAttribute(CHIP_CONSTANTS.attributes.DISABLED, this._disabled);\r\n }\r\n\r\n private _applyDense(): void {\r\n this._adapter.setDense(this._dense);\r\n this._adapter.toggleHostAttribute(CHIP_CONSTANTS.attributes.DISABLED, this._disabled);\r\n }\r\n\r\n private _applyEmulateFocus(): void {\r\n this._adapter.toggleHostAttribute(CHIP_CONSTANTS.attributes.EMULATE_FOCUS, this._emulateFocus);\r\n this._adapter.setEmulatedFocus(this._emulateFocus);\r\n }\r\n\r\n public get type(): ChipType {\r\n return this._type;\r\n }\r\n public set type(value: ChipType) {\r\n if (this._type !== value) {\r\n this._type = value;\r\n if (this._isInitialized) {\r\n const isValidType = ['action', 'choice', 'filter', 'input', 'field'].includes(this._type);\r\n if (!isValidType) {\r\n this._type = 'action';\r\n }\r\n if (this._type === 'action') {\r\n this._selected = false;\r\n this._applySelected();\r\n }\r\n this._applyType();\r\n }\r\n }\r\n }\r\n\r\n public get selected(): boolean {\r\n return this._selected;\r\n }\r\n public set selected(value: boolean) {\r\n if (this._selected !== value) {\r\n this._selected = value;\r\n if (this._isInitialized) {\r\n if (this._type === 'action') {\r\n this._selected = false;\r\n }\r\n this._applySelected();\r\n }\r\n }\r\n }\r\n\r\n public get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n public set disabled(value: boolean) {\r\n if (this._disabled !== value) {\r\n this._disabled = value;\r\n if (this._isInitialized) {\r\n this._applyDisabled();\r\n }\r\n }\r\n }\r\n\r\n public get invalid(): boolean {\r\n return this._invalid;\r\n }\r\n public set invalid(val: boolean) {\r\n if (this._invalid === val) {\r\n return;\r\n }\r\n \r\n this._invalid = val;\r\n if (val) {\r\n this._adapter.setHostAttribute(CHIP_CONSTANTS.attributes.INVALID, '');\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.INVALID);\r\n } else {\r\n this._adapter.removeHostAttribute(CHIP_CONSTANTS.attributes.INVALID);\r\n this._adapter.removeRootClass(CHIP_CONSTANTS.classes.INVALID);\r\n }\r\n }\r\n\r\n public get value(): any {\r\n return this._value;\r\n }\r\n public set value(value: any) {\r\n this._value = value;\r\n }\r\n\r\n public get dense(): boolean {\r\n return this._dense;\r\n }\r\n public set dense(value: boolean) {\r\n if (this._dense !== value) {\r\n this._dense = value;\r\n if (this._isInitialized) {\r\n this._applyDense();\r\n }\r\n }\r\n }\r\n\r\n public get emulateFocus(): boolean {\r\n return this._emulateFocus;\r\n }\r\n public set emulateFocus(value: boolean) {\r\n if (this._emulateFocus !== value) {\r\n this._emulateFocus = value;\r\n if (this._isInitialized) {\r\n this._applyEmulateFocus();\r\n }\r\n }\r\n }\r\n\r\n public setFocus(): void {\r\n this._adapter.setFocus();\r\n }\r\n\r\n public tryFocusDelete(): void {\r\n if (this._type === 'input') {\r\n this._adapter.tryFocusDelete();\r\n return;\r\n }\r\n this.setFocus();\r\n }\r\n}\r\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\r\nimport { tylIconCancel } from '@tylertech/tyler-icons/standard';\r\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\r\nimport { IconComponent, IconRegistry } from '../../icon';\r\nimport { ChipAdapter } from './chip-adapter';\r\nimport { ChipType, CHIP_CONSTANTS, IChipDeleteEventData, IChipSelectEventData } from './chip-constants';\r\nimport { ChipFoundation } from './chip-foundation';\r\n\r\nconst template = '<template><div class=\\\"forge-chip\\\" part=\\\"root button\\\"><slot name=\\\"leading\\\" class=\\\"forge-chip__leading\\\"></slot><div role=\\\"button\\\" tabindex=\\\"0\\\" class=\\\"forge-chip__content\\\" part=\\\"content\\\"><slot></slot></div><slot name=\\\"trailing\\\"></slot></div></template>';\r\nconst styles = '@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.mdc-ripple-surface::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-chip{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-button-font-size, .875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight,500);letter-spacing:.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, .0892857143em);text-decoration:none;-webkit-text-decoration:var(--mdc-typography-button-text-decoration,none);text-decoration:var(--mdc-typography-button-text-decoration,none);text-transform:uppercase;text-transform:var(--mdc-typography-button-text-transform,uppercase);position:relative;display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:64px;border:none;outline:0;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:0 0;border-radius:4px;border-radius:var(--mdc-shape-small,4px);height:36px;text-transform:none;box-sizing:border-box;overflow:hidden;border-style:solid;-webkit-transition:border 280ms cubic-bezier(.4, 0, .2, 1);transition:border 280ms cubic-bezier(.4, 0, .2, 1);font-family:Roboto,sans-serif;font-family:var(--mdc-outlined-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:.875rem;font-size:var(--mdc-outlined-button-label-text-size, var(--mdc-typography-button-font-size, .875rem));letter-spacing:.0892857143em;letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, .0892857143em));font-weight:500;font-weight:var(--mdc-outlined-button-label-text-weight,var(--mdc-typography-button-font-weight,500));text-transform:uppercase;text-transform:var(--mdc-outlined-button-label-text-transform,var(--mdc-typography-button-text-transform,uppercase));height:36px;height:var(--mdc-outlined-button-container-height,36px);border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px));padding:0 15px 0 15px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px);padding:0 15px 0 15px;border-width:1px;border-radius:16px;width:auto;width:var(--forge-chip-width,auto);height:auto;height:var(--forge-chip-height,auto);min-height:36px;min-height:var(--forge-chip-min-height,36px);box-sizing:border-box;-webkit-transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1);transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-chip::after,.forge-chip::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-chip::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-chip::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-chip.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-chip.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-chip.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-chip.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-chip.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-chip::after,.forge-chip::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-chip.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-chip::after,.forge-chip::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-chip.mdc-ripple-surface--hover::before,.forge-chip:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-chip.mdc-ripple-upgraded--background-focused::before,.forge-chip:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-chip:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-chip.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.forge-chip::-moz-focus-inner{padding:0;border:0}.forge-chip:active{outline:0}.forge-chip:hover{cursor:pointer}.forge-chip:disabled{cursor:default;pointer-events:none}.forge-chip .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-chip:not(:disabled){background-color:transparent}.forge-chip:not(:disabled){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-chip .mdc-button__ripple{border-style:solid;border-color:transparent}.forge-chip:not(:disabled){color:#3f51b5;color:var(--mdc-outlined-button-label-text-color,var(--mdc-theme-primary,#3f51b5))}.forge-chip:disabled{color:rgba(0,0,0,.38);color:var(--mdc-outlined-button-disabled-label-text-color,rgba(0,0,0,.38))}.forge-chip .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-outlined-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-outlined-button-with-icon-icon-size,1.125rem);height:1.125rem;height:var(--mdc-outlined-button-with-icon-icon-size,1.125rem)}.forge-chip .mdc-button__ripple::after,.forge-chip .mdc-button__ripple::before{background-color:#3f51b5;background-color:var(--mdc-outlined-button-hover-state-layer-color,var(--mdc-theme-primary,#3f51b5))}.forge-chip.mdc-ripple-surface--hover .mdc-button__ripple::before,.forge-chip:hover .mdc-button__ripple::before{opacity:.04;opacity:var(--mdc-outlined-button-hover-state-layer-opacity, .04)}.forge-chip.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.forge-chip:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-focus-state-layer-opacity, .12)}.forge-chip:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, .12)}.forge-chip.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, 0.12)}.forge-chip .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px))}.forge-chip:not(:disabled){border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-outline-color,rgba(0,0,0,.12))}.forge-chip:disabled{border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-disabled-outline-color,rgba(0,0,0,.12))}.forge-chip.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-chip.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-chip .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px)}.forge-chip .mdc-button__touch{left:calc(-1 * 1px);left:calc(-1 * var(--mdc-outlined-button-outline-width,1px));width:calc(100% + 2 * 1px);width:calc(100% + 2 * var(--mdc-outlined-button-outline-width,1px))}.forge-chip.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-chip.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-chip .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px}.forge-chip .mdc-button__touch{left:calc(-1 * 1px);width:calc(100% + 2 * 1px)}.forge-chip:not(:disabled){border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-chip .mdc-evolution-chip__ripple{border-radius:16px}.forge-chip .mdc-evolution-chip__action--primary:before{border-radius:16px}.forge-chip .mdc-evolution-chip__icon--primary{border-radius:16px}.forge-chip.forge-chip--disabled{border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:default;pointer-events:none}.forge-chip.forge-chip--disabled .forge-chip__delete-button{opacity:.54}.forge-chip__leading--hidden{display:none}.forge-chip__content{-webkit-box-flex:1;flex-grow:1}.forge-chip__content:focus{outline:0}.forge-chip ::slotted([slot=leading]){margin-left:-6px;margin-right:4px}.forge-chip ::slotted(forge-avatar[slot]){--forge-avatar-size:24px}.forge-chip ::slotted([slot=trailing]){margin-left:4px;margin-right:-8px}.forge-chip__checkmark{height:24px}.forge-chip__checkmark-svg{width:0;height:24px;-webkit-transition:width 150ms cubic-bezier(.4, 0, .2, 1);transition:width 150ms cubic-bezier(.4, 0, .2, 1)}.forge-chip__checkmark-path{stroke:#ffffff;stroke:var(--mdc-theme-on-primary,#ffffff);-webkit-transition:stroke-dashoffset 150ms 0 cubic-bezier(.4, 0, .6, 1);transition:stroke-dashoffset 150ms 0 cubic-bezier(.4, 0, .6, 1);stroke-width:2px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.forge-chip__delete-button{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:4px;margin-right:-8px;-webkit-transition:color 150ms linear;transition:color 150ms linear;outline:0;line-height:inherit;position:relative;border-radius:50%}.forge-chip__delete-button:focus{outline:currentColor solid 2px}.forge-chip__delete-button:focus,.forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip__delete-button:active{opacity:.75}.forge-chip__delete-button__touch-target{position:absolute;top:-6px;left:-6px;width:calc(100% + 12px);height:calc(100% + 12px)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled),.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled),.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled){background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:rgba(255,255,255,.87);color:var(--mdc-theme-text-primary-on-dark,rgba(255,255,255,.87))}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled)::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled)::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled)::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):hover::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):hover::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled,.forge-chip--filter.forge-chip--selected.forge-chip--disabled,.forge-chip--input.forge-chip--selected.forge-chip--disabled{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:rgba(255,255,255,.87);color:var(--mdc-theme-text-primary-on-dark,rgba(255,255,255,.87));opacity:.37}.forge-chip--choice.forge-chip--selected.forge-chip--disabled::after,.forge-chip--choice.forge-chip--selected.forge-chip--disabled::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--choice.forge-chip--selected.forge-chip--disabled:hover::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:hover::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled:hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-chip--choice.forge-chip--selected ::slotted([slot=leading]),.forge-chip--filter.forge-chip--selected ::slotted([slot=leading]),.forge-chip--input.forge-chip--selected ::slotted([slot=leading]){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected ::slotted([slot=trailing]),.forge-chip--filter.forge-chip--selected ::slotted([slot=trailing]),.forge-chip--input.forge-chip--selected ::slotted([slot=trailing]){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected .forge-chip__delete-button,.forge-chip--filter.forge-chip--selected .forge-chip__delete-button,.forge-chip--input.forge-chip--selected .forge-chip__delete-button{color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark{margin-left:-6px;margin-right:4px}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg{width:24px}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path{-webkit-transition:stroke-dashoffset 150ms 50ms cubic-bezier(.4, 0, .6, 1);transition:stroke-dashoffset 150ms 50ms cubic-bezier(.4, 0, .6, 1);stroke-dashoffset:0}.forge-chip--field .forge-chip__delete-button{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-chip--field .forge-chip__delete-button:focus,.forge-chip--field .forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button:focus,.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip--field.forge-chip--disabled .forge-chip__delete-button{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-chip--dense{min-height:28px;min-height:var(--forge-chip-min-height,28px)}.forge-chip--dense.forge-chip--field{min-height:20px;min-height:var(--forge-chip-min-height,20px);padding:0;margin:0;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.forge-chip--dense.forge-chip--field ::slotted([slot=leading]){margin:0 0 0 2px;font-size:18px!important}.forge-chip--dense.forge-chip--field .forge-chip__content{font-size:12px;padding:0 8px}.forge-chip--dense.forge-chip--field ::slotted([slot=trailing]){font-size:18px!important}.forge-chip--dense.forge-chip--field .forge-chip__delete-button{margin:0 2px 0 0;font-size:18px}.forge-chip--invalid:not(.forge-chip--disabled){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled)::after,.forge-chip--invalid:not(.forge-chip--disabled)::before{background-color:#b00020;background-color:var(--mdc-ripple-color,var(--mdc-theme-error,#b00020))}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--invalid:not(.forge-chip--disabled):hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-chip--invalid:not(.forge-chip--disabled):not(:disabled){border-color:#b00020;border-color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled).forge-chip--selected{background-color:#b00020;background-color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled).forge-chip--selected .forge-chip__delete-button{color:#fff;color:var(--mdc-theme-on-primary,#fff)}:host{display:inline-block}:host([hidden]){display:none}:host([theme=error]){--mdc-theme-primary:var(--mdc-theme-error)}';\r\n\r\nexport interface IChipComponent extends IBaseComponent {\r\n type: ChipType;\r\n selected: boolean;\r\n disabled: boolean;\r\n invalid: boolean;\r\n value: any;\r\n dense: boolean;\r\n emulateFocus: boolean;\r\n tryFocusDelete(): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'forge-chip': IChipComponent;\r\n }\r\n\r\n interface HTMLElementEventMap {\r\n 'forge-chip-delete': CustomEvent<IChipDeleteEventData>;\r\n 'forge-chip-select': CustomEvent<IChipSelectEventData>;\r\n }\r\n}\r\n\r\n/**\r\n * The custom element class behind the `<forge-chip>` component.\r\n * \r\n * @tag forge-chip\r\n */\r\n@CustomElement({\r\n name: CHIP_CONSTANTS.elementName,\r\n dependencies: [IconComponent]\r\n})\r\nexport class ChipComponent extends BaseComponent implements IChipComponent {\r\n public static get observedAttributes(): string[] {\r\n return [\r\n CHIP_CONSTANTS.attributes.TYPE,\r\n CHIP_CONSTANTS.attributes.SELECTED,\r\n CHIP_CONSTANTS.attributes.DISABLED,\r\n CHIP_CONSTANTS.attributes.VALUE,\r\n CHIP_CONSTANTS.attributes.DENSE,\r\n CHIP_CONSTANTS.attributes.INVALID,\r\n CHIP_CONSTANTS.attributes.EMULATE_FOCUS\r\n ];\r\n }\r\n\r\n private _foundation: ChipFoundation;\r\n\r\n constructor() {\r\n super();\r\n IconRegistry.define(tylIconCancel);\r\n attachShadowTemplate(this, template, styles);\r\n this._foundation = new ChipFoundation(new ChipAdapter(this));\r\n }\r\n\r\n public connectedCallback(): void {\r\n this._foundation.initialize();\r\n }\r\n\r\n public disconnectedCallback(): void {\r\n this._foundation.disconnect();\r\n }\r\n\r\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\r\n switch (name) {\r\n case CHIP_CONSTANTS.attributes.TYPE:\r\n this.type = newValue as ChipType;\r\n break;\r\n case CHIP_CONSTANTS.attributes.SELECTED:\r\n this.selected = coerceBoolean(newValue);\r\n break;\r\n case CHIP_CONSTANTS.attributes.DISABLED:\r\n this.disabled = coerceBoolean(newValue);\r\n break;\r\n case CHIP_CONSTANTS.attributes.INVALID:\r\n this.invalid = coerceBoolean(newValue);\r\n break;\r\n case CHIP_CONSTANTS.attributes.VALUE:\r\n this.value = newValue;\r\n break;\r\n case CHIP_CONSTANTS.attributes.DENSE:\r\n this.dense = coerceBoolean(newValue);\r\n break;\r\n case CHIP_CONSTANTS.attributes.EMULATE_FOCUS:\r\n this.emulateFocus = coerceBoolean(newValue);\r\n }\r\n }\r\n\r\n /** Gets/sets the chip type. */\r\n @FoundationProperty()\r\n public declare type: ChipType;\r\n\r\n /** Gets/sets the selected state of the chip. */\r\n @FoundationProperty()\r\n public declare selected: boolean;\r\n\r\n /** Gets/sets the disabled state of the chip. */\r\n @FoundationProperty()\r\n public declare disabled: boolean;\r\n\r\n /** Gets/sets the invalid state of the chip. */\r\n @FoundationProperty()\r\n public declare invalid: boolean;\r\n\r\n /** Gets/sets the chip value. */\r\n @FoundationProperty()\r\n public declare value: any;\r\n\r\n /** Gets/sets the dense state of the chip. */\r\n @FoundationProperty()\r\n public declare dense: boolean;\r\n\r\n @FoundationProperty()\r\n public declare emulateFocus: boolean;\r\n\r\n public override focus(): void {\r\n this._foundation.setFocus();\r\n }\r\n\r\n public tryFocusDelete(): void {\r\n this._foundation.tryFocusDelete();\r\n }\r\n}\r\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "CHIP_SET_CONSTANTS", "elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "events", "defaults", "CHIP_CONSTANTS", "checkmarkTemplate", "ChipAdapter", "BaseAdapter", "component", "getShadowElement", "CHIP_CONSTANTS", "evt", "_a", "type", "listener", "adapter", "__spreadProps", "__spreadValues", "ForgeRipple", "evtType", "handler", "className", "addClass", "removeClass", "varName", "value", "ForgeRippleFoundation", "name", "isVisible", "elementFromHTML", "removeElement", "toggleClass", "state", "chipSet", "walkUpUntil", "node", "CHIP_SET_CONSTANTS", "el", "ICON_CONSTANTS", "activeElement", "getActiveElement", "ChipFoundation", "_adapter", "CHIP_CONSTANTS", "evt", "chipSetState", "target", "_a", "wasDefaultPrevented", "isSelectableType", "selectEventData", "deleteEventData", "showDeleteButton", "value", "val", "template", "styles", "ChipComponent", "BaseComponent", "IconRegistry", "tylIconCancel", "attachShadowTemplate", "ChipFoundation", "ChipAdapter", "CHIP_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "IconComponent"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
-
* License: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import{c as le}from"./chunk.NW7NV2A2.js";import{a as re,b as pe}from"./chunk.MLV25D2G.js";import{b as Q}from"./chunk.UT7QUGAO.js";import{a as x}from"./chunk.44IJE5UL.js";import{a as se}from"./chunk.GO5A4GKZ.js";import{a as ie}from"./chunk.MHOS3IHQ.js";import{h as ae,i as ue}from"./chunk.ESR2NHOS.js";import{b as ne}from"./chunk.KU5CXXGS.js";import{c as te}from"./chunk.KE6GOYAB.js";import{e as ee}from"./chunk.RG6CDWEX.js";import{b as Z}from"./chunk.VAKNDCLP.js";import{a as y,e as oe}from"./chunk.V7WKXEZC.js";import{c as V,g as q,h as z}from"./chunk.MZLPUI6R.js";import{a as L}from"./chunk.YI4JTY4T.js";import{d as X,l as J,m as j}from"./chunk.JHBCYICS.js";import{a as $}from"./chunk.ARJ3EVVO.js";import{a as Y}from"./chunk.Y66GSZJB.js";import{a as G}from"./chunk.G5MGGEFP.js";import{a}from"./chunk.KTGSZEAG.js";import{a as R,b as K,c as W}from"./chunk.BE7PZANN.js";import{a as U,e as H,g as C}from"./chunk.Y4GKBJGI.js";import{m as M,r as N,s as k,u as A}from"./chunk.PN26D52V.js";import{a as S,b as h,c as F,j as w,k as g,l as P,n as D,o as B}from"./chunk.J2M2MXP2.js";import{a as T,f as p}from"./chunk.MCIQXNKY.js";var O=`${K}autocomplete`,fe={MODE:"mode",MULTIPLE:"multiple",DEBOUNCE:"debounce",FILTER_ON_FOCUS:"filter-on-focus",ALLOW_UNMATCHED:"allow-unmatched",POPUP_TARGET:"popup-target",POPUP_CLASSES:"popup-classes",OPTION_LIMIT:"option-limit",OBSERVE_SCROLL:"observe-scroll",OBSERVE_SCROLL_THRESHOLD:"observe-scroll-threshold",SYNC_POPUP_WIDTH:"sync-popup-width",OPEN:"open",MATCH_KEY:"match-key",FILTER_TEXT:"filter-text",DROPDOWN_ICON_OPEN:"data-forge-dropdown-icon-open"},ve={INPUT:se.selectors.INPUT,DROPDOWN_ICON:"[data-forge-dropdown-icon],[data-forge-dropdown-icon],[forge-dropdown-icon],.forge-dropdown-icon",CLEAR_BUTTON:"[data-forge-autocomplete-clear],[forge-autocomplete-clear]"},ge={DEFAULT_DEBOUNCE_TIME:500,NUM_SKELETON_ITEMS:3},be={CHANGE:`${O}-change`,SELECT:`${O}-select`,SCROLLED_BOTTOM:`${O}-scrolled-bottom`},o={elementName:O,attributes:fe,selectors:ve,numbers:ge,events:be},de=(e=>(e.Default="default",e.Stateless="stateless",e))(de||{});var I=class extends G{constructor(e){super(e);this.setInputElement()}setInputElement(){let e=N(this._component,o.selectors.INPUT,!1);return e.length&&(this._inputElement=e[0]),this._inputElement}setInputAttribute(e,t){this._inputElement.setAttribute(e,t)}addInputListener(e,t){this._inputElement.addEventListener(e,t)}removeInputListener(e,t){this._inputElement.removeEventListener(e,t)}initializeInputAccessibility(e){this._inputElement.setAttribute("autocomplete","off"),this._inputElement.setAttribute("role","combobox"),this._inputElement.setAttribute("aria-live","polite"),this._inputElement.setAttribute("aria-atomic","true"),this._inputElement.setAttribute("aria-haspopup","true"),this._inputElement.setAttribute("aria-expanded","false"),this._inputElement.setAttribute("aria-autocomplete","list")}isWrappingChipField(){return!!this._component.querySelector(x.elementName)}show(e,t){this._targetElement=this._getTargetElement(t),this._targetElement&&(this._listDropdown=new ae(this._targetElement,e),this._listDropdown.open(),this._inputElement.setAttribute("aria-expanded","true"),this._inputElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`),this._tryToggleDropdownIconRotation(!0))}hide(e){if(!this._listDropdown)return;let{targetElement:t}=this._listDropdown.dropdownElement;t.removeEventListener(y.events.BLUR,e),this.setBusyVisibility(!1),this._tryToggleDropdownIconRotation(!1),this._inputElement.removeAttribute("aria-activedescendant"),this._inputElement.removeAttribute("aria-controls"),this._inputElement.setAttribute("aria-expanded","false"),this._listDropdown.close(),this._listDropdown=void 0}setBusyVisibility(e){var t;(t=this._listDropdown)==null||t.setBusyVisibility(e)}toggleOptionMultiple(e,t){var i;(i=this._listDropdown)==null||i.toggleOptionMultiple(e,t)}setDismissListener(e){if(!this._listDropdown||!this._listDropdown.dropdownElement)return;let t=this._listDropdown.dropdownElement;t.targetElement&&t.targetElement.addEventListener(y.events.BLUR,e)}focus(){window.requestAnimationFrame(()=>this._inputElement.focus())}setOptions(e){var t;(t=this._listDropdown)==null||t.setOptions(e)}appendOptions(e){var t;(t=this._listDropdown)==null||t.appendOptions(e)}setSelectedText(e){this._inputElement.value=e}getInputValue(){return this._inputElement.value}setInputValue(e){this._inputElement.value=e}selectInputValue(){window.requestAnimationFrame(()=>this._inputElement.select())}isFocusWithinPopup(e){return!this._listDropdown||!this._listDropdown.dropdownElement?!1:this._listDropdown.dropdownElement.contains(e)}hasFocus(){let e=k();return e===this._inputElement||this.isFocusWithinPopup(e)}hasInputElement(){return!!this._inputElement}setDropdownIconListener(e,t){window.requestAnimationFrame(()=>{let i=this._component.querySelector(o.selectors.DROPDOWN_ICON);i&&i.addEventListener(e,t)})}removeDropdownIconListener(e,t){let i=this._component.querySelector(o.selectors.DROPDOWN_ICON);i&&i.removeEventListener(e,t)}setClearButtonListener(e,t){window.requestAnimationFrame(()=>{let i=this._component.querySelector(o.selectors.CLEAR_BUTTON);i&&i.addEventListener(e,t)})}removeClearButtonListener(e,t){let i=this._component.querySelector(o.selectors.CLEAR_BUTTON);i&&i.removeEventListener(e,t)}propagateKey(e){var t;(t=this._listDropdown)==null||t.handleKey(e)}updateActiveDescendant(e){!this._targetElement||A(this._inputElement,!!e,"aria-activedescendant",e)}getTargetElementWidth(e){return this._targetElement||(this._targetElement=this._getTargetElement(e)),this._targetElement.getBoundingClientRect().width}getPopupElement(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.dropdownElement)!=null?t:null}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}activateSelectedOption(){var e;(e=this._listDropdown)==null||e.activateSelectedOption()}activateOptionByIndex(e){var t;(t=this._listDropdown)==null||t.activateOption(e)}getActiveOptionIndex(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?t:null}clearActiveOption(){var e;(e=this._listDropdown)==null||e.clearActiveOption()}setSelectedOptions(e){if(this._listDropdown){let t=e.map(i=>i.value);this._listDropdown.setSelectedValues(t)}}queueDropdownPositionUpdate(){!this.getPopupElement()||window.requestAnimationFrame(()=>{let e=this.getPopupElement();e==null||e.position()})}_getTargetElement(e){return e?this._component.querySelector(e)||this._getDefaultTargetElement():this._getDefaultTargetElement()}_getDefaultTargetElement(){let e=this._component.querySelector("forge-text-field");if(e&&e.shadowRoot){let i=C(e,re.selectors.ROOT);if(i)return i}let t=this._component.querySelector("forge-chip-field");if(t&&t.shadowRoot){let i=C(t,x.selectors.ROOT);if(i)return i}return this._component.querySelector("input")||this._component}_tryToggleDropdownIconRotation(e){let t=this._component.querySelector(o.selectors.DROPDOWN_ICON);t&&A(t,e,o.attributes.DROPDOWN_ICON_OPEN)}};var ce=(e=>(e[e.Option=0]="Option",e[e.Group=1]="Group",e))(ce||{});function b(u,d){let e=u.some(i=>h(i)&&w(i)&&i.hasOwnProperty("options")&&(i.hasOwnProperty("text")||i.hasOwnProperty("builder"))),t=u.some(i=>h(i)&&w(i)&&i.hasOwnProperty("label")&&i.hasOwnProperty("value"));return e&&d===1||t&&d===0}function he(u,d){return u.find(e=>e.value===d)}function v(u,d,e=null){return e?!(e in u.value)||!(e in d)?!1:D(u.value[e],d[e]):D(u.value,d)}var E=class extends ue{constructor(e){super();this._adapter=e;this._isInitialized=!1;this._isDropdownOpen=!1;this._mode="default";this._multiple=!1;this._debounce=o.numbers.DEFAULT_DEBOUNCE_TIME;this._allowUnmatched=!1;this._filterOnFocus=!0;this._options=[];this._filterText="";this._selectedOptions=[];this._values=[];this._pendingFilterPromises=[];this._matchKey=null;this._clickListener=t=>this._onClick(t),this._focusListener=()=>this._onFocus(),this._blurListener=t=>this._onBlur(t),this._keydownListener=t=>this._onKeydown(t),this._dropdownIconClickListener=t=>this._onDropdownIconClick(t),this._dropdownScrollEndListener=()=>this._onDropdownScrollEnd(),this._dropdownIconMouseDownListener=t=>this._onDropdownIconMouseDown(t),this._clearButtonListener=t=>this._onClear(t),this._dismissListener=()=>this._onDismiss(),this._activeChangeListener=t=>this._adapter.updateActiveDescendant(t),this._targetWidthCallback=()=>this._adapter.getTargetElementWidth(this._popupTarget),this._identifier=S()}async initialize(){if(!this._adapter.hasInputElement()&&!this._adapter.setInputElement())throw new Error("An input element is required as a child of the autocomplete component.");if(this._setInputListener(),this._setFilterCallback(),this._attachListeners(),this._initializeAccessibility(),this._values.length){if(!this._selectedOptions.length){try{await this._executeFilter()}catch(e){console.error(e)}this._updateSelectedOptions(this._values)}this._adapter.setSelectedText(this._getSelectedText())}this._isInitialized=!0}disconnect(){this._isInitialized&&(this._detachListeners(),this._isInitialized=!1),this._isDropdownOpen&&this._closeDropdown()}_attachListeners(){this._adapter.addInputListener("click",this._clickListener),this._adapter.addInputListener("focus",this._focusListener),this._adapter.addInputListener("blur",this._blurListener),this._adapter.addInputListener("input",this._inputListener),this._adapter.addInputListener("keydown",this._keydownListener),this._adapter.setDropdownIconListener("click",this._dropdownIconClickListener),this._adapter.setDropdownIconListener("mousedown",this._dropdownIconMouseDownListener),this._adapter.setClearButtonListener("click",this._clearButtonListener)}_detachListeners(){this._adapter.removeInputListener("click",this._clickListener),this._adapter.removeInputListener("focus",this._focusListener),this._adapter.removeInputListener("blur",this._blurListener),this._adapter.removeInputListener("input",this._inputListener),this._adapter.removeInputListener("keydown",this._keydownListener),this._adapter.removeDropdownIconListener("click",this._dropdownIconClickListener),this._adapter.removeDropdownIconListener("mousedown",this._dropdownIconMouseDownListener),this._adapter.removeClearButtonListener("click",this._clearButtonListener)}_setInputListener(){this._inputListener=e=>this._onInput(e)}_setFilterCallback(){this._filterFn=h(this._debounce)&&this._debounce>0?B(this._debounceFilter,this._debounce,!1):this._debounceFilter}_initializeAccessibility(){this._adapter.initializeInputAccessibility(this._identifier)}get _flatOptions(){return b(this._options,1)?this._options.reduce((e,t)=>e.concat(t.options),[]):this._options}_onClick(e){!this._isDropdownOpen&&this._filterOnFocus&&this._showDropdown()}_onDropdownIconMouseDown(e){e.preventDefault()}_onDropdownIconClick(e){this._isDropdownOpen?this._closeDropdown():(this._adapter.focus(),window.requestAnimationFrame(()=>this._showDropdown()))}_onClear(e){this._clearValue(),this._adapter.setSelectedText(this._getSelectedText())}_onDropdownScrollEnd(){this._adapter.emitHostEvent(o.events.SCROLLED_BOTTOM)}_onFocus(){!this._isDropdownOpen&&this._adapter.getInputValue()&&!L.isMobile&&this._adapter.selectInputValue()}_onBlur(e){this._adapter.isFocusWithinPopup(e.relatedTarget)||this._applyBlur()}_applyBlur(){this._isDropdownOpen&&this._closeDropdown(),this._mode!=="stateless"&&(this._selectedOptions.length?this._adapter.setSelectedText(this._getSelectedText()):this._allowUnmatched||(this._filterText="",this._adapter.setSelectedText("")))}_onInput(e){this._selectedOptions.length&&!this._multiple&&(!this._adapter.getInputValue()||this._allowUnmatched)&&!this._adapter.isWrappingChipField()&&(this._selectedOptions=[],this._values=[],this._emitChangeEvent()),this._filterText=this._adapter.getInputValue(),this._filterFn()}async _debounceFilter({checkFocus:e=!0}={}){if(!e&&!this._adapter.hasFocus()){this._pendingFilterPromises=[],this._isDropdownOpen&&this._closeDropdown();return}let t=this._filterText,i=this._executeFilter();this._pendingFilterPromises.push(i),this._isDropdownOpen?this._adapter.setBusyVisibility(!0):this._showDropdown({filter:!1});try{await i}catch(n){this._pendingFilterPromises=[],this._isDropdownOpen&&this._closeDropdown();return}if(t===this._filterText)this._pendingFilterPromises=[],this._onFilterComplete();else{let n=this._pendingFilterPromises.indexOf(i);n!==-1&&this._pendingFilterPromises.splice(n,1)}}_onKeydown(e){switch(e.key){case"Tab":this._isDropdownOpen&&!this._multiple&&this._selectActiveOption(!1);break;case"Esc":case"Escape":this._isDropdownOpen&&(e.preventDefault(),e.stopPropagation(),this._closeDropdown());break;case"Down":case"ArrowDown":e.preventDefault(),this._isDropdownOpen?this._adapter.propagateKey(e.key):this._showDropdown({activateFirst:!0,activateSelected:!0});break;case"Up":case"ArrowUp":e.preventDefault(),this._isDropdownOpen&&this._adapter.propagateKey(e.key);break;case"Enter":case"Home":case"End":this._isDropdownOpen&&(e.key==="Enter"&&e.stopPropagation(),e.preventDefault(),this._adapter.propagateKey(e.key));break;case"Backspace":case"Delete":let t=e.target,i=this._adapter.getInputValue(),n=t.value.substring(t.selectionStart,t.selectionEnd)===t.value,l=i.length===1&&t.selectionEnd===1,c=i.length===1&&t.selectionEnd===0,_=!i||n||l||c;!this._adapter.isWrappingChipField()&&_&&!this._multiple&&this._values.length&&this._clearValue();break}}_executeFilter(e=!0,t=!1){if(!this._filter||typeof this._filter!="function")throw new Error('A filter callback must be provided. Did you set the "filter" property?');let i=this._filter,n=e?this._filterText:"",l=t?this._getValue():null;return new Promise((c,_)=>Promise.resolve(i(n,l)).then(s=>{this._options=s,c(this._options)}).catch(s=>_(`An unexpected error occurred while filtering: ${s}`)))}_onFilterComplete(){if(!this._adapter.hasFocus()){this._isDropdownOpen&&this._closeDropdown();return}if(this._options.length){let e=this._allowUnmatched&&!this._selectedOptions.length;this._dropdownReady({userTriggered:e}),this._filterText&&this._adapter.activateFirstOption()}else this._closeDropdown()}_clearValue(){this._selectedOptions=[],this._values=[],this._isDropdownOpen&&(this._adapter.setSelectedOptions([]),this._adapter.clearActiveOption()),this._emitChangeEvent()}async _showDropdown({filter:e=!0,userTriggered:t=!0,activateFirst:i=!1,activateSelected:n=!1}={}){let l=this._allowUnmatched&&!this._selectedOptions.length;this._isDropdownOpen=!0;let c;if(this._optionBuilder){let s=this._optionBuilder;c=(m,f)=>s(m,this._filterText,f)}let _={options:this._options,multiple:this._multiple,selectedValues:[...this._values],id:`forge-autocomplete-${this._identifier}`,asyncStyle:"skeleton",optionLimit:this._optionLimit,popupClasses:this._popupClasses,headerBuilder:this._popupHeaderBuilder,footerBuilder:this._popupFooterBuilder,transform:s=>{if(this._filterText){let m=Y(s,this._filterText);if(m)return m}return s},allowBusy:!0,optionBuilder:c,syncWidth:this._syncPopupWidth,observeScroll:this._observeScroll,observeScrollThreshold:this._observeScrollThreshold,scrollEndListener:this._dropdownScrollEndListener,activeChangeCallback:this._activeChangeListener,targetWidthCallback:this._targetWidthCallback,selectCallback:s=>this._onSelect(s),closeCallback:()=>this._closeDropdown()};if(this._adapter.show(_,this._popupTarget),this._adapter.toggleHostAttribute(o.attributes.OPEN,this._isDropdownOpen),e){this._options.length&&this._adapter.setBusyVisibility(!0);try{await this._executeFilter(l)}catch(s){console.error(s)}this._updateSelectedOptions(this._values)}this._pendingFilterPromises.length||this._dropdownReady({userTriggered:t,activateFirst:i,activateSelected:n})}_dropdownReady({userTriggered:e=!0,activateFirst:t=!1,activateSelected:i=!1}={}){if(!this._isDropdownOpen||!this._options.length||e&&!this._adapter.hasFocus()){this._closeDropdown();return}this._sortSelectedOptions(),this._adapter.setBusyVisibility(!1),this._adapter.setOptions(this._options),this._adapter.setSelectedOptions(this._selectedOptions),this._adapter.setDismissListener(this._dismissListener),i&&this._selectedOptions.length?this._adapter.activateSelectedOption():t&&this._adapter.activateFirstOption()}_closeDropdown(){this._multiple&&(this._filterText=""),this._isDropdownOpen=!1,this._adapter.hide(this._dismissListener),this._sortSelectedOptions(),this._adapter.toggleHostAttribute(o.attributes.OPEN,this._isDropdownOpen)}_sortSelectedOptions(){if(this._multiple&&this._selectedOptions.length&&b(this._options,0)){let e=[],t=[];this._options.forEach(i=>{this._selectedOptions.find(n=>v(n,i.value,this._matchKey))?e.push(i):t.push(i)}),this._options=[...e,...t]}}async _onSelect(e,t=!0){if(this._valueChanging)return;if(this._mode==="stateless"){let n={value:e};this._adapter.emitHostEvent(o.events.SELECT,n,!0,!0)&&(this._filterText="",this._multiple||this._closeDropdown());return}let i=()=>{let n=this._flatOptions,l=n.find(s=>v(s,e,this._matchKey)),c=l?l.value:"",_=l?l.label:"";if(this._multiple){let s=n.findIndex(f=>v(f,e,this._matchKey));if(s>=0){let f=this._selectedOptions.some(me=>v(me,e,this._matchKey));this._adapter.toggleOptionMultiple(s,f)}let m=he(this._selectedOptions,c);if(m){let f=this._selectedOptions.indexOf(m);this._selectedOptions.splice(f,1)}else this._selectedOptions.push(l)}else h(c)?(this._selectedOptions[0]=l,this._filterText=_):(this._selectedOptions=[],this._filterText="");if(this._isDropdownOpen&&this._adapter.setSelectedOptions(this._selectedOptions),this._values=this._selectedOptions.map(s=>s.value),this._adapter.setSelectedText(this._getSelectedText()),!L.isMobile&&t&&this._adapter.selectInputValue(),this._multiple){let s=n.findIndex(f=>v(f,e,this._matchKey)),m=this._values.includes(e);this._adapter.toggleOptionMultiple(s,m)}this._emitChangeEvent(),this._tryUpdateDropdownPosition()};this._isDropdownOpen&&!this._multiple&&this._closeDropdown(),typeof this._beforeValueChange=="function"?(this._valueChanging=Promise.resolve(this._beforeValueChange.call(null,e,this._matchKey)),await this._valueChanging?i():this._tryUpdateDropdownPosition(),this._valueChanging=void 0):i()}_selectActiveOption(e=!0){let t=this._adapter.getActiveOptionIndex();if(typeof t=="number"&&t>=0){let i=this._flatOptions[t];i&&this._onSelect(i.value,e)}}_emitChangeEvent(){this._adapter.emitHostEvent(o.events.CHANGE,this._getValue(),!0)}_tryUpdateDropdownPosition(){this._isDropdownOpen&&this._adapter.queueDropdownPositionUpdate()}_getValue(){return this._values?this._values.length?this._multiple?[...this._values]:this._values[0]:this._multiple?[]:null:null}_getSelectedText(){var e,t;return this._adapter.isWrappingChipField()?"":this._selectedTextBuilder?this._selectedTextBuilder(this._selectedOptions):this._multiple?this._values.length?this._values.length===1?(t=(e=this._selectedOptions[0])==null?void 0:e.label)!=null?t:"":`${this._values.length} options selected`:"":this._selectedOptions.filter(i=>i&&i.label).map(i=>i.label).join(" ").trim()}_onDismiss(){this._closeDropdown()}async _applyValue(e){let t=[];this._selectedOptions=[],Array.isArray(e)?t=e:t=h(e)?[e]:[],!this._multiple&&t.length>1&&(t=[t[0]]),b(t,0)?(this._values=t.map(n=>n.value),this._selectedOptions=t):this._values=t;let i=this._flatOptions;if(t.length&&i.length&&this._updateSelectedOptions(t),this._values.length&&!this._selectedOptions.length&&!!this._filter&&this._isInitialized){try{await this._executeFilter(!1,!0)}catch(n){console.error(n)}this._updateSelectedOptions(this._values)}this._multiple?this._filterText="":this._filterText=this._selectedOptions.length?this._selectedOptions[0].label:"",this._isInitialized&&this._adapter.setSelectedText(this._getSelectedText()),this._isDropdownOpen&&this._adapter.setSelectedOptions(this._selectedOptions)}_updateSelectedOptions(e){let t=[...this._flatOptions,...this._selectedOptions];if(this._selectedOptions.length&&(this._selectedOptions=[]),b(e,0))for(let i of e){let n=t.find(l=>v(l,i.value,this._matchKey));n?this._selectedOptions.push(n):this._selectedOptions.push(i)}else for(let i of e){let n=t.find(l=>v(l,i,this._matchKey));n?this._selectedOptions.push(n):this._allowUnmatched&&this._selectedOptions.push({label:i,value:i})}}get mode(){return this._mode}set mode(e){this._mode!==e&&(this._mode=e,this._mode==="stateless"&&(this._selectedOptions=[],this._isDropdownOpen&&this._closeDropdown()),this._adapter.setHostAttribute(o.attributes.MODE,this._mode))}get multiple(){return this._multiple}set multiple(e){this._multiple!==e&&(this._multiple=e,this._adapter.setHostAttribute(o.attributes.MULTIPLE,h(this._multiple)?this._multiple.toString():""))}get value(){return this._getValue()}set value(e){let t=[];e==null?t=[]:Array.isArray(e)?t=JSON.parse(JSON.stringify(e)):F(e)?t=[e]:t=[JSON.parse(JSON.stringify(e))],(t.length!==this._values.length||t.some(n=>!this._values.includes(n)))&&this._applyValue(e)}get filterOnFocus(){return this._filterOnFocus}set filterOnFocus(e){this._filterOnFocus!==e&&(this._filterOnFocus=e,this._adapter.setHostAttribute(o.attributes.FILTER_ON_FOCUS,h(this._filterOnFocus)?this._filterOnFocus.toString():""))}get allowUnmatched(){return this._allowUnmatched}set allowUnmatched(e){this._allowUnmatched!==e&&(this._allowUnmatched=e,h(this._allowUnmatched)&&this._adapter.setHostAttribute(o.attributes.ALLOW_UNMATCHED,this._allowUnmatched.toString()))}get matchKey(){return this._matchKey}set matchKey(e){this._matchKey!==e&&(this._matchKey=e)}get popupTarget(){return this._popupTarget}set popupTarget(e){this._popupTarget!==e&&(this._popupTarget=e)}get filterText(){return this._filterText}set filterText(e){this._filterText!==e&&(this._filterText=this._allowUnmatched?e:"",this._isInitialized&&this._allowUnmatched&&(this._adapter.setInputValue(this._filterText),this._isDropdownOpen&&this._debounceFilter({checkFocus:!1})))}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:[this._popupClasses]}set popupClasses(e){this._popupClasses!==e&&(this._popupClasses=Array.isArray(e)?[...e]:[e])}set popupHeaderBuilder(e){this._popupHeaderBuilder=e}set popupFooterBuilder(e){this._popupFooterBuilder=e}get syncPopupWidth(){return this._syncPopupWidth}set syncPopupWidth(e){this._syncPopupWidth!==e&&(this._syncPopupWidth=e)}get optionLimit(){return this._optionLimit}set optionLimit(e){this._optionLimit!==e&&(this._optionLimit=e)}get debounce(){return this._debounce}set debounce(e){this._debounce!==e&&(this._debounce=e,this._isInitialized&&this._setFilterCallback(),this._adapter.setHostAttribute(o.attributes.DEBOUNCE,h(this._debounce)?this._debounce.toString():""))}get optionBuilder(){return this._optionBuilder}set optionBuilder(e){this._optionBuilder=e}get filter(){return this._filter}set filter(e){this._filter!==e&&(this._filter=e,this._isInitialized&&this._values.length&&!this._flatOptions.length&&!!this._filter&&this._executeFilter().then(()=>{this._updateSelectedOptions(this._values),this._adapter.setSelectedText(this._getSelectedText())}))}get selectedTextBuilder(){return this._selectedTextBuilder}set selectedTextBuilder(e){this._selectedTextBuilder=e,this._selectedOptions.length&&this._adapter.setSelectedText(this._getSelectedText())}get observeScroll(){return this._observeScroll}set observeScroll(e){this._observeScroll=e}get observeScrollThreshold(){return this._observeScrollThreshold}set observeScrollThreshold(e){this._observeScrollThreshold=e}appendOptions(e){!this._isDropdownOpen||(this._options=[...this._options,...e],this._adapter.appendOptions(e))}get isInitialized(){return this._isInitialized}get open(){return this._isDropdownOpen}set open(e){this._isDropdownOpen!==e&&(e?this._showDropdown({userTriggered:!1}):this._closeDropdown())}get beforeValueChange(){return this._beforeValueChange}set beforeValueChange(e){e!==this._beforeValueChange&&(this._beforeValueChange=e)}get popupElement(){return this._adapter.getPopupElement()}};var Oe="<template><slot></slot></template>",Ie=":host{display:block}:host([hidden]){display:none}",r=class extends ie{constructor(){super();X.define([V,z,q]),H(this,Oe,Ie),this._foundation=new E(new I(this))}static get observedAttributes(){return[o.attributes.MODE,o.attributes.MULTIPLE,o.attributes.DEBOUNCE,o.attributes.FILTER_ON_FOCUS,o.attributes.ALLOW_UNMATCHED,o.attributes.POPUP_TARGET,o.attributes.POPUP_CLASSES,o.attributes.OBSERVE_SCROLL,o.attributes.OBSERVE_SCROLL_THRESHOLD,o.attributes.OPTION_LIMIT,o.attributes.SYNC_POPUP_WIDTH,o.attributes.OPEN,o.attributes.MATCH_KEY,o.attributes.FILTER_TEXT]}connectedCallback(){this.querySelector(o.selectors.INPUT)?this._foundation.initialize():M(this,o.selectors.INPUT).then(()=>this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,t,i){switch(super.attributeChangedCallback(e,t,i),e){case o.attributes.MODE:this.mode=i;break;case o.attributes.MULTIPLE:this.multiple=g(i);break;case o.attributes.DEBOUNCE:this.debounce=P(i);break;case o.attributes.FILTER_ON_FOCUS:this.filterOnFocus=g(i);break;case o.attributes.ALLOW_UNMATCHED:this.allowUnmatched=g(i);break;case o.attributes.POPUP_TARGET:this.popupTarget=i;break;case o.attributes.OPEN:this.open=g(i);break;case o.attributes.MATCH_KEY:this.matchKey=i;break;case o.attributes.FILTER_TEXT:this.filterText=i;break}}appendOptions(e){this._foundation.appendOptions(e)}openDropdown(){this.open=!0}closeDropdown(){this.open=!1}};p([a()],r.prototype,"mode",2),p([a()],r.prototype,"multiple",2),p([a()],r.prototype,"value",2),p([a()],r.prototype,"debounce",2),p([a()],r.prototype,"filterOnFocus",2),p([a()],r.prototype,"allowUnmatched",2),p([a()],r.prototype,"popupTarget",2),p([a()],r.prototype,"filterText",2),p([a()],r.prototype,"optionBuilder",2),p([a()],r.prototype,"filter",2),p([a()],r.prototype,"selectedTextBuilder",2),p([a()],r.prototype,"open",2),p([a()],r.prototype,"matchKey",2),p([a({set:!1})],r.prototype,"isInitialized",2),p([a({set:!1})],r.prototype,"popupElement",2),p([a()],r.prototype,"beforeValueChange",2),r=p([R({name:o.elementName,dependencies:[le,oe,te,ee,Q,ne,Z,J]})],r);var _e=class extends ${constructor(e){super(e)}_build(){let e=document.createElement(o.elementName);return this._attachTextField(e),e}get textFieldDelegate(){return this._textFieldDelegate}get value(){return this._element.value}set value(e){this._element.value=e}get disabled(){return this._textFieldDelegate.inputElement.disabled}set disabled(e){this._textFieldDelegate.inputElement.disabled=e}get invalid(){return this._textFieldDelegate.invalid||!1}set invalid(e){this._textFieldDelegate.invalid=e}onChange(e){this._element.addEventListener(o.events.CHANGE,t=>e(t.detail))}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",t=>e(t))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",t=>e(t))}_attachTextField(e){var i,n,l,c,_,s;let t={props:T({},(n=(i=this._config.options)==null?void 0:i.textFieldDelegateConfig)==null?void 0:n.props),options:T({},(c=(l=this._config.options)==null?void 0:l.textFieldDelegateConfig)==null?void 0:c.options)};t.options||(t.options={}),((_=this._config.options)==null?void 0:_.useDropdownIcon)!==!1&&!((s=t.options)!=null&&s.trailingElement)&&(t.options.trailingElement=this._createDropdownIconElement()),this._textFieldDelegate=new pe(t),e.appendChild(this._textFieldDelegate.element)}_createDropdownIconElement(){let e={props:{slot:"trailing",name:"arrow_drop_down"},options:{attributes:{"forge-dropdown-icon":""}}};return new j(e).element}};function Rt(){U(r)}export{o as a,de as b,I as c,ce as d,b as e,he as f,v as g,E as h,r as i,_e as j,Rt as k};
|
|
7
|
-
//# sourceMappingURL=chunk.CKYHP5MC.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/autocomplete/autocomplete-constants.ts", "../../src/autocomplete/autocomplete-adapter.ts", "../../src/autocomplete/autocomplete-utils.ts", "../../src/autocomplete/autocomplete-foundation.ts", "../../src/autocomplete/autocomplete.ts", "../../src/autocomplete/autocomplete-component-delegate.ts", "../../src/autocomplete/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX, KEYSTROKE_DEBOUNCE_THRESHOLD } from '../constants';\nimport { IListItemComponent } from '../list';\nimport { IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup, ListDropdownOptionGroupBuilder } from '../list-dropdown';\nimport { IPopupPosition } from '../popup';\nimport { FIELD_CONSTANTS } from '../field/field-constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}autocomplete`;\n\nconst attributes = {\n MODE: 'mode',\n MULTIPLE: 'multiple',\n DEBOUNCE: 'debounce',\n FILTER_ON_FOCUS: 'filter-on-focus',\n ALLOW_UNMATCHED: 'allow-unmatched',\n POPUP_TARGET: 'popup-target',\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 OPEN: 'open',\n MATCH_KEY: 'match-key',\n FILTER_TEXT: 'filter-text',\n DROPDOWN_ICON_OPEN: 'data-forge-dropdown-icon-open'\n};\n\nconst selectors = {\n INPUT: FIELD_CONSTANTS.selectors.INPUT,\n DROPDOWN_ICON: '[data-forge-dropdown-icon],[data-forge-dropdown-icon],[forge-dropdown-icon],.forge-dropdown-icon',\n CLEAR_BUTTON: '[data-forge-autocomplete-clear],[forge-autocomplete-clear]'\n};\n\nconst numbers = {\n DEFAULT_DEBOUNCE_TIME: KEYSTROKE_DEBOUNCE_THRESHOLD,\n NUM_SKELETON_ITEMS: 3\n};\n\nconst events = {\n CHANGE: `${elementName}-change`,\n SELECT: `${elementName}-select`,\n SCROLLED_BOTTOM: `${elementName}-scrolled-bottom`\n};\n\nexport const AUTOCOMPLETE_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n numbers,\n events\n};\n\nexport type AutocompleteOptionBuilder<T = any> = (option: IAutocompleteOption<T>, filterText: string, parentElement: IListItemComponent) => HTMLElement;\nexport type AutocompleteOptionGroupBuilder<T = any> = ListDropdownOptionGroupBuilder<T>;\nexport type AutocompleteFilterCallback<T = any> = (filterText: string, value: T | null) => IAutocompleteOption<T>[] | IAutocompleteOptionGroup<T>[] | Promise<IAutocompleteOption<T>[] | IAutocompleteOptionGroup<T>[]>;\nexport type AutocompleteSelectedTextBuilder<T = any> = (selectedOptions: Array<IAutocompleteOption<T>>) => string;\n\nexport enum AutocompleteMode {\n Default = 'default',\n Stateless = 'stateless'\n}\n\nexport interface IAutocompleteOption<T = any> extends IListDropdownOption<T> {}\nexport interface IAutocompleteOptionGroup<T = any> extends IListDropdownOptionGroup<T> {}\n\nexport interface IAutocompletePopupConfiguration {\n filterText: string;\n popupTarget: string;\n dropdownConfig: IListDropdownConfig;\n popupClasses: string[];\n popupOffset: IPopupPosition;\n syncPopupWidth: boolean;\n listener: (value: string) => void;\n scrollEndListener: () => void;\n}\n\nexport interface IAutocompleteSelectEventData<T = any> {\n value: T;\n}\n", "import { getShadowElement, deepQuerySelectorAll, getActiveElement, toggleAttribute } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IAutocompleteComponent } from './autocomplete';\nimport { AUTOCOMPLETE_CONSTANTS, IAutocompleteOption, IAutocompleteOptionGroup } from './autocomplete-constants';\nimport { TEXT_FIELD_CONSTANTS } from '../text-field';\nimport { IListDropdown, IListDropdownConfig, ListDropdown } from '../list-dropdown';\nimport { CHIP_FIELD_CONSTANTS } from '../chip-field';\nimport { IPopupComponent, POPUP_CONSTANTS } from '../popup';\n\nexport interface IAutocompleteAdapter extends IBaseAdapter {\n setInputElement(): HTMLInputElement;\n setInputAttribute(name: string, value: string): void;\n addInputListener(type: string, listener: (evt: Event) => void): void;\n removeInputListener(type: string, listener: (evt: Event) => void): void;\n initializeInputAccessibility(identifier: string): void;\n isWrappingChipField(): boolean;\n show(config: IListDropdownConfig, popupTarget: string): void;\n hide(listener: () => void): void;\n focus(): void;\n setOptions(options: IAutocompleteOption[] | IAutocompleteOptionGroup[]): void;\n appendOptions(options: IAutocompleteOption[] | IAutocompleteOptionGroup[]): void;\n setSelectedText(value: string): void;\n getInputValue(): string;\n setInputValue(value: string): void;\n selectInputValue(): void;\n setDismissListener(listener: () => void): void;\n toggleOptionMultiple(index: number, selected: boolean): void;\n isFocusWithinPopup(target: HTMLElement): boolean;\n hasFocus(): boolean;\n hasInputElement(): boolean;\n setDropdownIconListener(type: string, listener: EventListener): void;\n removeDropdownIconListener(type: string, listener: EventListener): void;\n setClearButtonListener(type: string, listener: EventListener): void;\n removeClearButtonListener(type: string, listener: EventListener): void;\n getPopupElement(): HTMLElement | null;\n propagateKey(key: string): void;\n updateActiveDescendant(id: string): void;\n getTargetElementWidth(selector: string): number;\n activateFirstOption(): void;\n activateSelectedOption(): void;\n activateOptionByIndex(value: number): void;\n setBusyVisibility(busy: boolean): void;\n getActiveOptionIndex(): number | null;\n clearActiveOption(): void;\n setSelectedOptions(options: IAutocompleteOption[]): void;\n queueDropdownPositionUpdate(): void;\n}\n\n/**\n * The DOM adapter for the `<forge-autocomplete>` element.\n */\nexport class AutocompleteAdapter extends BaseAdapter<IAutocompleteComponent> implements IAutocompleteAdapter {\n private _inputElement: HTMLInputElement;\n private _listDropdown?: IListDropdown;\n private _targetElement?: HTMLElement;\n \n constructor(component: IAutocompleteComponent) {\n super(component);\n this.setInputElement();\n }\n\n public setInputElement(): HTMLInputElement {\n const inputElements = deepQuerySelectorAll(this._component, AUTOCOMPLETE_CONSTANTS.selectors.INPUT, false);\n if (inputElements.length) {\n this._inputElement = inputElements[0] as HTMLInputElement;\n }\n return this._inputElement;\n }\n\n public setInputAttribute(name: string, value: string): void {\n this._inputElement.setAttribute(name, value);\n }\n\n public addInputListener(type: string, listener: (evt: Event) => void): void {\n this._inputElement.addEventListener(type, listener);\n }\n\n public removeInputListener(type: string, listener: (evt: Event) => void): void {\n this._inputElement.removeEventListener(type, listener);\n }\n\n public initializeInputAccessibility(identifier: string): void {\n this._inputElement.setAttribute('autocomplete', 'off');\n this._inputElement.setAttribute('role', 'combobox');\n this._inputElement.setAttribute('aria-live', 'polite');\n this._inputElement.setAttribute('aria-atomic', 'true');\n this._inputElement.setAttribute('aria-haspopup', 'true');\n this._inputElement.setAttribute('aria-expanded', 'false');\n this._inputElement.setAttribute('aria-autocomplete', 'list');\n }\n\n public isWrappingChipField(): boolean {\n return !!this._component.querySelector(CHIP_FIELD_CONSTANTS.elementName);\n }\n\n public show(config: IListDropdownConfig, popupTarget: string): void {\n this._targetElement = this._getTargetElement(popupTarget);\n if (!this._targetElement) {\n return;\n }\n this._listDropdown = new ListDropdown(this._targetElement, config);\n this._listDropdown.open();\n this._inputElement.setAttribute('aria-expanded', 'true');\n this._inputElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n this._tryToggleDropdownIconRotation(true);\n }\n\n public hide(listener: () => void): void {\n if (!this._listDropdown) {\n return;\n }\n const { targetElement } = this._listDropdown.dropdownElement as IPopupComponent;\n targetElement.removeEventListener(POPUP_CONSTANTS.events.BLUR, listener);\n this.setBusyVisibility(false);\n this._tryToggleDropdownIconRotation(false);\n this._inputElement.removeAttribute('aria-activedescendant');\n this._inputElement.removeAttribute('aria-controls');\n this._inputElement.setAttribute('aria-expanded', 'false');\n this._listDropdown.close();\n this._listDropdown = undefined;\n }\n\n\n public setBusyVisibility(isVisible: boolean): void {\n this._listDropdown?.setBusyVisibility(isVisible);\n }\n\n public toggleOptionMultiple(index: number, selected: boolean): void {\n this._listDropdown?.toggleOptionMultiple(index, selected);\n }\n\n public setDismissListener(listener: () => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n const dropdownElement = this._listDropdown.dropdownElement as IPopupComponent;\n if (dropdownElement.targetElement) {\n dropdownElement.targetElement.addEventListener(POPUP_CONSTANTS.events.BLUR, listener);\n }\n }\n\n public focus(): void {\n window.requestAnimationFrame(() => this._inputElement.focus());\n }\n\n public setOptions(options: IAutocompleteOption[] | IAutocompleteOptionGroup[]): void {\n this._listDropdown?.setOptions(options);\n }\n\n public appendOptions(options: IAutocompleteOption[] | IAutocompleteOptionGroup[]): void {\n this._listDropdown?.appendOptions(options);\n }\n\n public setSelectedText(value: string): void {\n this._inputElement.value = value;\n }\n\n public getInputValue(): string {\n return this._inputElement.value;\n }\n\n public setInputValue(value: string): void {\n this._inputElement.value = value;\n }\n\n public selectInputValue(): void {\n window.requestAnimationFrame(() => this._inputElement.select());\n }\n\n public isFocusWithinPopup(target: HTMLElement): boolean {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._listDropdown.dropdownElement.contains(target);\n }\n\n public hasFocus(): boolean {\n const activeElement = getActiveElement() as HTMLElement;\n return activeElement === this._inputElement || this.isFocusWithinPopup(activeElement);\n }\n\n public hasInputElement(): boolean {\n return !!this._inputElement;\n }\n\n public setDropdownIconListener(type: string, listener: EventListener): void {\n window.requestAnimationFrame(() => {\n const dropdownIcon = this._component.querySelector(AUTOCOMPLETE_CONSTANTS.selectors.DROPDOWN_ICON);\n if (dropdownIcon) {\n dropdownIcon.addEventListener(type, listener);\n }\n });\n }\n\n public removeDropdownIconListener(type: string, listener: EventListener): void {\n const dropdownIcon = this._component.querySelector(AUTOCOMPLETE_CONSTANTS.selectors.DROPDOWN_ICON);\n if (dropdownIcon) {\n dropdownIcon.removeEventListener(type, listener);\n }\n }\n\n public setClearButtonListener(type: string, listener: EventListener): void {\n window.requestAnimationFrame(() => {\n const clearButton = this._component.querySelector(AUTOCOMPLETE_CONSTANTS.selectors.CLEAR_BUTTON);\n if (clearButton) {\n clearButton.addEventListener(type, listener);\n }\n });\n }\n\n public removeClearButtonListener(type: string, listener: EventListener): void {\n const clearButton = this._component.querySelector(AUTOCOMPLETE_CONSTANTS.selectors.CLEAR_BUTTON);\n if (clearButton) {\n clearButton.removeEventListener(type, listener);\n }\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public updateActiveDescendant(id: string): void {\n if (!this._targetElement) {\n return;\n }\n toggleAttribute(this._inputElement, !!id, 'aria-activedescendant', id);\n }\n\n public getTargetElementWidth(selector: string): number {\n if (!this._targetElement) {\n this._targetElement = this._getTargetElement(selector);\n }\n return this._targetElement.getBoundingClientRect().width;\n }\n\n public getPopupElement(): HTMLElement | null {\n return this._listDropdown?.dropdownElement ?? null;\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public activateSelectedOption(): void {\n this._listDropdown?.activateSelectedOption();\n }\n\n public activateOptionByIndex(value: number): void {\n this._listDropdown?.activateOption(value);\n }\n\n public getActiveOptionIndex(): number | null {\n return this._listDropdown?.getActiveOptionIndex() ?? null;\n }\n\n public clearActiveOption(): void {\n this._listDropdown?.clearActiveOption();\n }\n\n public setSelectedOptions(options: IAutocompleteOption[]): void {\n if (this._listDropdown) {\n const values = options.map(o => o.value);\n this._listDropdown.setSelectedValues(values);\n }\n }\n\n public queueDropdownPositionUpdate(): void {\n if (!this.getPopupElement()) {\n return;\n }\n // We need to wait for the next animation frame to ensure that the layout has been updated\n window.requestAnimationFrame(() => {\n const dropdownEl = this.getPopupElement() as IPopupComponent | undefined;\n dropdownEl?.position();\n });\n }\n\n private _getTargetElement(selector?: string): HTMLElement {\n return selector ? this._component.querySelector(selector) || this._getDefaultTargetElement() : this._getDefaultTargetElement();\n }\n\n private _getDefaultTargetElement(): HTMLElement {\n // This component is often used with the text-field, if so, let's target our popup around one if its internal elements for proper alignnment\n const textField = this._component.querySelector('forge-text-field');\n if (textField && textField.shadowRoot) {\n const textFieldRoot = getShadowElement(textField, TEXT_FIELD_CONSTANTS.selectors.ROOT) as HTMLElement;\n if (textFieldRoot) {\n return textFieldRoot;\n }\n }\n\n // This component is often used with the chip-field, if so, let's target our popup around one if its internal elements for proper alignnment\n const chipField = this._component.querySelector('forge-chip-field');\n if (chipField && chipField.shadowRoot) {\n const chipFieldRoot = getShadowElement(chipField, CHIP_FIELD_CONSTANTS.selectors.ROOT) as HTMLElement;\n if (chipFieldRoot) {\n return chipFieldRoot;\n }\n }\n\n return this._component.querySelector('input') || this._component;\n }\n\n private _tryToggleDropdownIconRotation(state: boolean): void {\n const dropdownIcon = this._component.querySelector(AUTOCOMPLETE_CONSTANTS.selectors.DROPDOWN_ICON) as HTMLElement;\n if (dropdownIcon) {\n toggleAttribute(dropdownIcon, state, AUTOCOMPLETE_CONSTANTS.attributes.DROPDOWN_ICON_OPEN);\n }\n }\n}\n", "import { IAutocompleteOption, IAutocompleteOptionGroup } from './autocomplete-constants';\nimport { isDefined, isObject, isDeepEqual } from '@tylertech/forge-core';\n\n/** The available option types. */\nexport enum OptionType { Option, Group }\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 isOptionType(options: IAutocompleteOption[] | IAutocompleteOptionGroup[], type: OptionType): boolean {\n const isOptionGroups = options.some((o: IAutocompleteOption | IAutocompleteOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('options') && (o.hasOwnProperty('text') || o.hasOwnProperty('builder')));\n const isOptionTypes = options.some((o: IAutocompleteOption | IAutocompleteOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value'));\n return (isOptionGroups && type === OptionType.Group) || (isOptionTypes && type === OptionType.Option);\n}\n\n/** A utility function to find the matching option in the provided options by the value provided. */\nexport function getSelectedOption(options: IAutocompleteOption[], value: string): IAutocompleteOption | undefined {\n return options.find(o => o.value === value);\n}\n\n/** A predicate function that will determine if an option value is equal regardless of primitive type or complex object type. */\nexport function optionEqualPredicate(option: IAutocompleteOption, value: any, property: string | null = null): boolean {\n if (property) {\n if (!(property in option.value) || !(property in value)) {\n return false;\n }\n return isDeepEqual(option.value[property], value[property]);\n }\n return isDeepEqual(option.value, value);\n}\n", "import { debounce, isDefined, isString, Platform, randomChars } from '@tylertech/forge-core';\nimport { highlightTextHTML } from '../core';\nimport { IListItemComponent } from '../list';\nimport { IListDropdownConfig, IListDropdownOption, ListDropdownAsyncStyle, ListDropdownFooterBuilder, ListDropdownHeaderBuilder, ListDropdownOptionBuilder } from '../list-dropdown';\nimport { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from '../list-dropdown/list-dropdown-aware-foundation';\nimport { IAutocompleteAdapter } from './autocomplete-adapter';\nimport { AutocompleteFilterCallback, AutocompleteMode, AutocompleteOptionBuilder, AutocompleteSelectedTextBuilder, AUTOCOMPLETE_CONSTANTS, IAutocompleteOption, IAutocompleteOptionGroup, IAutocompleteSelectEventData } from './autocomplete-constants';\nimport { getSelectedOption, isOptionType, optionEqualPredicate, OptionType } from './autocomplete-utils';\n\nexport interface IAutocompleteFoundation extends IListDropdownAwareFoundation {\n mode: AutocompleteMode;\n multiple: boolean;\n value: string | string[] | IAutocompleteOption | IAutocompleteOption[] | null | undefined;\n debounce: number;\n filterOnFocus: boolean;\n allowUnmatched: boolean;\n popupTarget: string;\n filterText: string;\n optionBuilder: AutocompleteOptionBuilder | null | undefined;\n filter: AutocompleteFilterCallback | null | undefined;\n selectedTextBuilder: AutocompleteSelectedTextBuilder;\n isInitialized: boolean;\n open: boolean;\n matchKey: string | null | undefined;\n appendOptions(options: IAutocompleteOption[] | IAutocompleteOptionGroup[]): void;\n beforeValueChange: (value: any) => boolean | Promise<boolean>;\n}\n\n/**\n * The foundation class behind the `<forge-autocomplete>` element.\n */\nexport class AutocompleteFoundation extends ListDropdownAwareFoundation implements IAutocompleteFoundation {\n private _isInitialized = false;\n private _isDropdownOpen = false;\n private _mode: AutocompleteMode = AutocompleteMode.Default;\n private _multiple = false;\n private _debounce = AUTOCOMPLETE_CONSTANTS.numbers.DEFAULT_DEBOUNCE_TIME;\n private _allowUnmatched = false;\n private _popupTarget: string;\n private _filterOnFocus = true;\n private _optionBuilder?: AutocompleteOptionBuilder | null;\n private _filter?: AutocompleteFilterCallback | null;\n private _selectedTextBuilder: AutocompleteSelectedTextBuilder;\n private _options: IAutocompleteOption[] | IAutocompleteOptionGroup[] = [];\n private _filterText = '';\n private _selectedOptions: IAutocompleteOption[] = [];\n private _values: any[] = [];\n private _pendingFilterPromises: Array<Promise<IAutocompleteOption[] | IAutocompleteOptionGroup[]>> = [];\n private _identifier: string;\n private _matchKey?: string | null = null;\n private _filterFn: () => Promise<void>;\n private _clickListener: (evt: MouseEvent) => void;\n private _focusListener: (evt: FocusEvent) => void;\n private _blurListener: (evt: FocusEvent) => void;\n private _inputListener: (evt: KeyboardEvent) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _dropdownIconClickListener: (evt: MouseEvent) => void;\n private _dropdownIconMouseDownListener: (evt: MouseEvent) => void;\n private _clearButtonListener: (evt: MouseEvent) => void;\n private _dropdownScrollEndListener: () => void;\n private _dismissListener: () => void;\n private _activeChangeListener: (id: string) => void;\n private _targetWidthCallback: () => number;\n private _beforeValueChange: (value: any) => boolean | Promise<boolean>;\n private _valueChanging: Promise<boolean> | undefined;\n\n constructor(private _adapter: IAutocompleteAdapter) {\n super();\n this._clickListener = evt => this._onClick(evt);\n this._focusListener = () => this._onFocus();\n this._blurListener = evt => this._onBlur(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._dropdownIconClickListener = evt => this._onDropdownIconClick(evt);\n this._dropdownScrollEndListener = () => this._onDropdownScrollEnd();\n this._dropdownIconMouseDownListener = evt => this._onDropdownIconMouseDown(evt);\n this._clearButtonListener = evt => this._onClear(evt);\n this._dismissListener = () => this._onDismiss();\n this._activeChangeListener = id => this._adapter.updateActiveDescendant(id);\n this._targetWidthCallback = () => this._adapter.getTargetElementWidth(this._popupTarget);\n this._identifier = randomChars();\n }\n\n public async initialize(): Promise<void> {\n if (!this._adapter.hasInputElement() && !this._adapter.setInputElement()) {\n throw new Error('An input element is required as a child of the autocomplete component.');\n }\n\n this._setInputListener();\n this._setFilterCallback();\n this._attachListeners();\n this._initializeAccessibility();\n\n if (this._values.length) {\n if (!this._selectedOptions.length) {\n try {\n await this._executeFilter();\n } catch (e) {\n console.error(e);\n }\n this._updateSelectedOptions(this._values);\n }\n this._adapter.setSelectedText(this._getSelectedText());\n }\n\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n if (this._isInitialized) {\n this._detachListeners();\n this._isInitialized = false;\n }\n if (this._isDropdownOpen) {\n this._closeDropdown();\n }\n }\n\n private _attachListeners(): void {\n this._adapter.addInputListener('click', this._clickListener);\n this._adapter.addInputListener('focus', this._focusListener);\n this._adapter.addInputListener('blur', this._blurListener);\n this._adapter.addInputListener('input', this._inputListener);\n this._adapter.addInputListener('keydown', this._keydownListener);\n this._adapter.setDropdownIconListener('click', this._dropdownIconClickListener);\n this._adapter.setDropdownIconListener('mousedown', this._dropdownIconMouseDownListener);\n this._adapter.setClearButtonListener('click', this._clearButtonListener);\n }\n\n private _detachListeners(): void {\n this._adapter.removeInputListener('click', this._clickListener);\n this._adapter.removeInputListener('focus', this._focusListener);\n this._adapter.removeInputListener('blur', this._blurListener);\n this._adapter.removeInputListener('input', this._inputListener);\n this._adapter.removeInputListener('keydown', this._keydownListener);\n this._adapter.removeDropdownIconListener('click', this._dropdownIconClickListener);\n this._adapter.removeDropdownIconListener('mousedown', this._dropdownIconMouseDownListener);\n this._adapter.removeClearButtonListener('click', this._clearButtonListener);\n }\n\n private _setInputListener(): void {\n this._inputListener = (evt: KeyboardEvent) => this._onInput(evt);\n }\n\n private _setFilterCallback(): void {\n this._filterFn = isDefined(this._debounce) && this._debounce > 0 ? debounce(this._debounceFilter, this._debounce, false) : this._debounceFilter;\n }\n\n private _initializeAccessibility(): void {\n this._adapter.initializeInputAccessibility(this._identifier);\n }\n\n private get _flatOptions(): IAutocompleteOption[] {\n if (isOptionType(this._options, OptionType.Group)) {\n return (this._options as IAutocompleteOptionGroup[]).reduce((previousValue, currentValue) => previousValue.concat(currentValue.options), [] as IAutocompleteOption[]);\n }\n return this._options as IAutocompleteOption[];\n }\n\n private _onClick(evt: MouseEvent): void {\n if (!this._isDropdownOpen && this._filterOnFocus) {\n this._showDropdown();\n }\n }\n\n private _onDropdownIconMouseDown(evt: MouseEvent): void {\n evt.preventDefault(); // Always avoid changing focus when clicking the dropdown\n }\n\n private _onDropdownIconClick(evt: MouseEvent): void {\n if (!this._isDropdownOpen) {\n this._adapter.focus();\n window.requestAnimationFrame(() => this._showDropdown());\n } else {\n this._closeDropdown();\n }\n }\n\n private _onClear(evt: MouseEvent): void {\n this._clearValue();\n this._adapter.setSelectedText(this._getSelectedText());\n }\n\n private _onDropdownScrollEnd(): void {\n this._adapter.emitHostEvent(AUTOCOMPLETE_CONSTANTS.events.SCROLLED_BOTTOM);\n }\n\n private _onFocus(): void {\n if (!this._isDropdownOpen && this._adapter.getInputValue() && !Platform.isMobile) {\n this._adapter.selectInputValue();\n }\n }\n\n private _onBlur(evt: FocusEvent): void {\n // If the blur event was triggered by an element within the popup then ignore it\n if (this._adapter.isFocusWithinPopup(evt.relatedTarget as HTMLElement)) {\n return;\n }\n\n this._applyBlur();\n }\n\n private _applyBlur(): void {\n if (this._isDropdownOpen) {\n this._closeDropdown();\n }\n\n // If we are in stateless mode, we don't need to do anything further\n if (this._mode === AutocompleteMode.Stateless) {\n return;\n }\n\n if (!this._selectedOptions.length) {\n if (!this._allowUnmatched) {\n this._filterText = '';\n this._adapter.setSelectedText('');\n }\n } else {\n this._adapter.setSelectedText(this._getSelectedText());\n }\n }\n\n private _onInput(evt: KeyboardEvent): void {\n if (this._selectedOptions.length && !this._multiple && (!this._adapter.getInputValue() || this._allowUnmatched) && !this._adapter.isWrappingChipField()) {\n this._selectedOptions = [];\n this._values = [];\n this._emitChangeEvent();\n }\n this._filterText = this._adapter.getInputValue();\n this._filterFn();\n }\n\n private async _debounceFilter({ checkFocus = true } = {}): Promise<void> {\n // There is the potential that the user could have started a filter, then moved focus to another element\n // while a debounced filter is running. This check detects that scenario and stops all pending filters.\n if (!checkFocus && !this._adapter.hasFocus()) {\n this._pendingFilterPromises = [];\n if (this._isDropdownOpen) {\n this._closeDropdown();\n }\n return;\n }\n\n // Keep track of these variables so we can use them when each filter callback completes\n const filterText = this._filterText; // Filter text just before the execution\n const filterPromise = this._executeFilter(); // Execute the filter and keep track of the filter promise object for use after it resolves\n\n // Keep track of all pending promises\n this._pendingFilterPromises.push(filterPromise);\n\n // If the dropdown is open, show the spinner and execute the filter. If not open, then we need to\n // show the dropdown (which will handle showing the spinner and executing the filter for us) so\n // we use the promise from that method instead.\n if (this._isDropdownOpen) {\n this._adapter.setBusyVisibility(true);\n } else {\n this._showDropdown({ filter: false });\n }\n\n try {\n await filterPromise;\n } catch {\n // When an exception occurs, we just flush the pending promises and clean up\n this._pendingFilterPromises = [];\n if (this._isDropdownOpen) {\n this._closeDropdown();\n }\n return;\n }\n\n // We only continue if the filter text before this result matches the latest filter text\n if (filterText === this._filterText) {\n this._pendingFilterPromises = [];\n this._onFilterComplete();\n } else {\n // If this is not the latest filter result, we ignore it and remove it from the pending promises\n const promiseIndex = this._pendingFilterPromises.indexOf(filterPromise);\n if (promiseIndex !== -1) {\n this._pendingFilterPromises.splice(promiseIndex, 1);\n }\n }\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n switch (evt.key) {\n case 'Tab':\n if (this._isDropdownOpen && !this._multiple) {\n this._selectActiveOption(false);\n }\n break;\n case 'Esc':\n case 'Escape':\n if (this._isDropdownOpen) {\n evt.preventDefault();\n evt.stopPropagation();\n this._closeDropdown();\n }\n break;\n case 'Down':\n case 'ArrowDown':\n evt.preventDefault();\n if (!this._isDropdownOpen) {\n this._showDropdown({ activateFirst: true, activateSelected: true });\n } else {\n this._adapter.propagateKey(evt.key);\n }\n break;\n case 'Up':\n case 'ArrowUp':\n evt.preventDefault();\n if (this._isDropdownOpen) {\n this._adapter.propagateKey(evt.key);\n }\n break;\n case 'Enter':\n case 'Home':\n case 'End':\n if (this._isDropdownOpen) {\n if (evt.key === 'Enter') {\n evt.stopPropagation();\n }\n evt.preventDefault();\n this._adapter.propagateKey(evt.key);\n }\n break;\n case 'Backspace':\n case 'Delete':\n const input = evt.target as HTMLInputElement;\n const value = this._adapter.getInputValue();\n const isRemovingAllChars = input.value.substring(input.selectionStart as number, input.selectionEnd as number) === input.value;\n const isBackspacingLastChar = value.length === 1 && input.selectionEnd === 1;\n const isDeletingLastChar = value.length === 1 && input.selectionEnd === 0;\n const isEmpty = !value || isRemovingAllChars || isBackspacingLastChar || isDeletingLastChar;\n \n // We only clear the value on empty when not around a chip-field and NOT in multiple mode\n if (!this._adapter.isWrappingChipField() && isEmpty && !this._multiple && this._values.length) {\n this._clearValue();\n }\n break;\n }\n }\n\n private _executeFilter(sendFilterText = true, sendValue = false): Promise<IAutocompleteOption[] | IAutocompleteOptionGroup[]> {\n if (!this._filter || typeof this._filter !== 'function') {\n throw new Error('A filter callback must be provided. Did you set the \"filter\" property?');\n }\n const filter = this._filter;\n\n const filterText = sendFilterText ? this._filterText : '';\n const value = sendValue ? this._getValue() : null;\n\n return new Promise<IAutocompleteOption[] | IAutocompleteOptionGroup[]>((resolve, reject) => {\n return Promise.resolve(filter(filterText, value))\n .then(options => {\n this._options = options;\n resolve(this._options);\n })\n .catch(e => reject(`An unexpected error occurred while filtering: ${e}`));\n });\n }\n\n private _onFilterComplete(): void {\n if (!this._adapter.hasFocus()) {\n if (this._isDropdownOpen) {\n this._closeDropdown();\n }\n return;\n }\n\n if (this._options.length) {\n const sendFilterText = this._allowUnmatched && !this._selectedOptions.length;\n this._dropdownReady({ userTriggered: sendFilterText });\n if (this._filterText) {\n this._adapter.activateFirstOption();\n }\n } else {\n this._closeDropdown();\n }\n }\n\n private _clearValue(): void {\n this._selectedOptions = [];\n this._values = [];\n\n if (this._isDropdownOpen) {\n this._adapter.setSelectedOptions([]);\n this._adapter.clearActiveOption();\n }\n\n this._emitChangeEvent();\n }\n\n private async _showDropdown({ filter = true, userTriggered = true, activateFirst = false, activateSelected = false } = {}): Promise<void> {\n const sendFilterText = this._allowUnmatched && !this._selectedOptions.length;\n this._isDropdownOpen = true;\n let listOptionBuilder: ListDropdownOptionBuilder<HTMLElement> | undefined;\n if (this._optionBuilder) {\n const optionBuilder = this._optionBuilder;\n listOptionBuilder = (option: IListDropdownOption, parentElement: HTMLElement) => {\n return optionBuilder(option, this._filterText, parentElement as IListItemComponent);\n };\n }\n const config: IListDropdownConfig = {\n options: this._options,\n multiple: this._multiple,\n selectedValues: [...this._values],\n id: `forge-autocomplete-${this._identifier}`,\n asyncStyle: ListDropdownAsyncStyle.Skeleton,\n optionLimit: this._optionLimit,\n popupClasses: this._popupClasses,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n transform: label => {\n if (this._filterText) {\n // Highlight the filter text within the label\n const highlightElement = highlightTextHTML(label, this._filterText);\n if (highlightElement) {\n return highlightElement;\n }\n }\n return label;\n },\n allowBusy: true,\n optionBuilder: listOptionBuilder,\n syncWidth: this._syncPopupWidth,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n scrollEndListener: this._dropdownScrollEndListener,\n activeChangeCallback: this._activeChangeListener,\n targetWidthCallback: this._targetWidthCallback,\n selectCallback: (value: any) => this._onSelect(value),\n closeCallback: () => this._closeDropdown()\n };\n\n this._adapter.show(config, this._popupTarget);\n this._adapter.toggleHostAttribute(AUTOCOMPLETE_CONSTANTS.attributes.OPEN, this._isDropdownOpen);\n\n if (filter) {\n if (this._options.length) {\n this._adapter.setBusyVisibility(true);\n }\n try {\n await this._executeFilter(sendFilterText);\n } catch (e) {\n console.error(e);\n }\n this._updateSelectedOptions(this._values);\n }\n\n // If we have any pending filter promises, then we will let those complete and update the dropdown separately after\n if (this._pendingFilterPromises.length) {\n return;\n }\n\n this._dropdownReady({ userTriggered, activateFirst, activateSelected });\n }\n\n private _dropdownReady({ userTriggered = true, activateFirst = false, activateSelected = false } = {}): void {\n if (!this._isDropdownOpen || !this._options.length || (userTriggered && !this._adapter.hasFocus())) {\n this._closeDropdown();\n return;\n }\n\n this._sortSelectedOptions();\n this._adapter.setBusyVisibility(false);\n this._adapter.setOptions(this._options);\n this._adapter.setSelectedOptions(this._selectedOptions);\n this._adapter.setDismissListener(this._dismissListener);\n\n if (activateSelected && this._selectedOptions.length) {\n this._adapter.activateSelectedOption();\n } else if (activateFirst) {\n this._adapter.activateFirstOption();\n }\n }\n\n private _closeDropdown(): void {\n if (this._multiple) {\n this._filterText = '';\n }\n this._isDropdownOpen = false;\n this._adapter.hide(this._dismissListener);\n this._sortSelectedOptions();\n this._adapter.toggleHostAttribute(AUTOCOMPLETE_CONSTANTS.attributes.OPEN, this._isDropdownOpen);\n }\n\n private _sortSelectedOptions(): void {\n // When in multiple selection mode, we need to make sure that the selected options appear at the top of the list\n if (this._multiple && this._selectedOptions.length && isOptionType(this._options, OptionType.Option)) {\n const selectedOptions: IAutocompleteOption[] = [];\n const unselectedOptions: IAutocompleteOption[] = [];\n\n (this._options as IAutocompleteOption[]).forEach(option => {\n if (this._selectedOptions.find(o => optionEqualPredicate(o, option.value, this._matchKey))) {\n selectedOptions.push(option);\n } else {\n unselectedOptions.push(option);\n }\n });\n\n this._options = [...selectedOptions, ...unselectedOptions];\n }\n }\n\n /**\n * Handles selecting an item in the dropdown.\n * @param {string} selectedValue The string value to select.\n */\n private async _onSelect(selectedValue: string, keepFocus = true): Promise<void> {\n if (this._valueChanging) {\n return;\n }\n\n // If we are in stateless mode, then we need to just emit an event when selecting an option. The\n // selected values are not tracked in stateless mode\n if (this._mode === AutocompleteMode.Stateless) {\n const data: IAutocompleteSelectEventData = { value: selectedValue };\n const result = this._adapter.emitHostEvent(AUTOCOMPLETE_CONSTANTS.events.SELECT, data, true, true);\n if (result) {\n this._filterText = '';\n if (!this._multiple) {\n this._closeDropdown();\n }\n }\n return;\n }\n\n const select = (): void => {\n const flatOptions = this._flatOptions;\n const option = flatOptions.find(o => optionEqualPredicate(o, selectedValue, this._matchKey)) as IAutocompleteOption;\n const value = option ? option.value : '';\n const label = option ? option.label : '';\n\n if (this._multiple) {\n const optionIndex = flatOptions.findIndex(o => optionEqualPredicate(o, selectedValue, this._matchKey));\n if (optionIndex >= 0) {\n const selected = this._selectedOptions.some(o => optionEqualPredicate(o, selectedValue, this._matchKey));\n this._adapter.toggleOptionMultiple(optionIndex, selected);\n }\n const selectedOption = getSelectedOption(this._selectedOptions, value);\n if (selectedOption) {\n const index = this._selectedOptions.indexOf(selectedOption);\n this._selectedOptions.splice(index, 1);\n } else {\n this._selectedOptions.push(option);\n }\n } else {\n if (isDefined(value)) {\n this._selectedOptions[0] = option;\n this._filterText = label;\n } else {\n this._selectedOptions = [];\n this._filterText = '';\n }\n }\n\n // Update the dropdown selection status if its open\n if (this._isDropdownOpen) {\n this._adapter.setSelectedOptions(this._selectedOptions);\n }\n\n // Keep the values in sync with the currently selected options\n this._values = this._selectedOptions.map(o => o.value);\n\n // Update the selected text in the input\n this._adapter.setSelectedText(this._getSelectedText());\n\n // Select the text in the input to allow for the next filter\n if (!Platform.isMobile && keepFocus) {\n this._adapter.selectInputValue();\n }\n\n if (this._multiple) {\n // If we're in multiselect mode, we need to toggle the selected option\n const index = flatOptions.findIndex(o => optionEqualPredicate(o, selectedValue, this._matchKey));\n const isSelected = this._values.includes(selectedValue);\n this._adapter.toggleOptionMultiple(index, isSelected);\n }\n\n this._emitChangeEvent();\n this._tryUpdateDropdownPosition();\n };\n\n // We close the dropdown immediately if in single selection mode\n if (this._isDropdownOpen && !this._multiple) {\n this._closeDropdown();\n }\n\n if (typeof this._beforeValueChange === 'function') {\n this._valueChanging = Promise.resolve(this._beforeValueChange.call(null, selectedValue, this._matchKey));\n const shouldContinue = await this._valueChanging;\n if (shouldContinue) {\n select();\n } else {\n this._tryUpdateDropdownPosition();\n }\n this._valueChanging = undefined;\n } else {\n select();\n }\n }\n\n private _selectActiveOption(keepFocus = true): void {\n const activeOptionIndex = this._adapter.getActiveOptionIndex();\n if (typeof activeOptionIndex === 'number' && activeOptionIndex >= 0) {\n const option = this._flatOptions[activeOptionIndex];\n if (option) {\n this._onSelect(option.value, keepFocus);\n }\n }\n }\n\n private _emitChangeEvent(): void {\n this._adapter.emitHostEvent(AUTOCOMPLETE_CONSTANTS.events.CHANGE, this._getValue(), true);\n }\n\n private _tryUpdateDropdownPosition(): void {\n if (this._isDropdownOpen) {\n this._adapter.queueDropdownPositionUpdate();\n }\n }\n\n /**\n * Retrieves the current value(s) from the selected options array based on whether\n * we are in multi-select mode or not.\n */\n private _getValue(): string | string[] | null | undefined {\n if (!this._values) {\n return null;\n }\n\n if (!this._values.length) {\n return this._multiple ? [] : null;\n }\n\n return this._multiple ? [...this._values] : this._values[0];\n }\n\n /**\n * Creates the selected text value from the selected label values.\n */\n private _getSelectedText(): string {\n if (this._adapter.isWrappingChipField()) {\n return '';\n }\n\n if (this._selectedTextBuilder) {\n return this._selectedTextBuilder(this._selectedOptions);\n } else {\n if (this._multiple) {\n if (this._values.length) {\n if (this._values.length === 1) {\n return this._selectedOptions[0]?.label ?? '';\n } else {\n return `${this._values.length} options selected`;\n }\n } else {\n return '';\n }\n } else {\n return this._selectedOptions.filter(o => o && o.label).map(o => o.label).join(' ').trim();\n }\n }\n }\n\n /**\n * Handles the user dismissing the dropdown. This is only called if the blur event was triggered\n * from within the popup element itself (in a custom template most likely).\n * @param keepFocus Keep focus on the dropdown or not.\n */\n private _onDismiss(): void {\n this._closeDropdown();\n }\n\n private async _applyValue(value: string | string[] | IAutocompleteOption | IAutocompleteOption[] | null | undefined): Promise<void> {\n let values: any[] = [];\n this._selectedOptions = [];\n\n if (!Array.isArray(value)) {\n values = isDefined(value) ? [value] : [];\n } else {\n values = value;\n }\n\n // If this is not a multi-select, then make sure we only allow one selected value\n if (!this._multiple && values.length > 1) {\n values = [values[0]];\n }\n\n if (isOptionType(values, OptionType.Option)) {\n this._values = values.map((o: IAutocompleteOption) => o.value);\n this._selectedOptions = values as IAutocompleteOption[];\n } else {\n this._values = values as any[];\n }\n\n // Ensure that the values passed are actually existing options\n const allOptions = this._flatOptions;\n if (values.length && allOptions.length) {\n this._updateSelectedOptions(values);\n }\n\n // Execute the filter now if we have a value, but not options yet (only if it has been initialized already)\n if (this._values.length && !this._selectedOptions.length && !!this._filter && this._isInitialized) {\n try {\n await this._executeFilter(false, true);\n } catch (e) {\n console.error(e);\n }\n this._updateSelectedOptions(this._values);\n }\n\n // Update filter text to match the label when on in multiselect mode\n if (!this._multiple) {\n this._filterText = this._selectedOptions.length ? this._selectedOptions[0].label : '';\n } else {\n this._filterText = '';\n }\n\n // Update the state of the component based on the existence of a selected value\n if (this._isInitialized) {\n this._adapter.setSelectedText(this._getSelectedText());\n }\n\n // When the value is changed programmatically we should update the selected options\n if (this._isDropdownOpen) {\n this._adapter.setSelectedOptions(this._selectedOptions);\n }\n }\n\n private _updateSelectedOptions(values: Array<any | IAutocompleteOption>): void {\n const flatOptions = [...this._flatOptions, ...this._selectedOptions];\n\n if (this._selectedOptions.length) {\n this._selectedOptions = [];\n }\n\n if (isOptionType(values, OptionType.Option)) {\n for (const option of values as IAutocompleteOption[]) {\n const actualOption = flatOptions.find(o => optionEqualPredicate(o, option.value, this._matchKey));\n if (actualOption) {\n this._selectedOptions.push(actualOption);\n } else {\n this._selectedOptions.push(option);\n }\n }\n } else {\n for (const value of values as any[]) {\n const actualOption = flatOptions.find(o => optionEqualPredicate(o, value, this._matchKey));\n if (actualOption) {\n this._selectedOptions.push(actualOption);\n } else if (this._allowUnmatched) {\n this._selectedOptions.push({ label: value, value });\n }\n }\n }\n }\n\n /** Gets/sets the mode state. */\n public get mode(): AutocompleteMode {\n return this._mode;\n }\n public set mode(value: AutocompleteMode) {\n if (this._mode !== value) {\n this._mode = value;\n if (this._mode === AutocompleteMode.Stateless) {\n this._selectedOptions = [];\n if (this._isDropdownOpen) {\n this._closeDropdown();\n }\n }\n this._adapter.setHostAttribute(AUTOCOMPLETE_CONSTANTS.attributes.MODE, this._mode);\n }\n }\n\n /** Gets/sets the multi-select state. */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n if (this._multiple !== value) {\n this._multiple = value;\n this._adapter.setHostAttribute(AUTOCOMPLETE_CONSTANTS.attributes.MULTIPLE, isDefined(this._multiple) ? this._multiple.toString() : '');\n }\n }\n\n /** Gets/sets the value of the component. */\n public get value(): string | string[] | IAutocompleteOption | IAutocompleteOption[] | null | undefined {\n return this._getValue();\n }\n public set value(value: string | string[] | IAutocompleteOption | IAutocompleteOption[] | null | undefined) {\n let values: Array<string | IAutocompleteOption | IAutocompleteOption[] | string[]> = [];\n\n if (value == null) {\n values = [];\n } else if (Array.isArray(value)) {\n values = JSON.parse(JSON.stringify(value));\n } else if (isString(value)) {\n values = [value];\n } else {\n values = [JSON.parse(JSON.stringify(value))];\n }\n\n const hasNewValue = values.length !== this._values.length || values.some(v => !this._values.includes(v));\n if (!hasNewValue) {\n return;\n }\n\n // We only apply the new values if they have actually changed\n this._applyValue(value);\n }\n\n\n /** Gets/sets filter on focus settings which controls whether the dropdown displays automatically when focused. */\n public get filterOnFocus(): boolean {\n return this._filterOnFocus;\n }\n public set filterOnFocus(value: boolean) {\n if (this._filterOnFocus !== value) {\n this._filterOnFocus = value;\n this._adapter.setHostAttribute(AUTOCOMPLETE_CONSTANTS.attributes.FILTER_ON_FOCUS, isDefined(this._filterOnFocus) ? this._filterOnFocus.toString() : '');\n }\n }\n\n /** Controls whether unmatched text entered by the user will stay visible an option in the dropdown is not found. */\n public get allowUnmatched(): boolean {\n return this._allowUnmatched;\n }\n public set allowUnmatched(value: boolean) {\n if (this._allowUnmatched !== value) {\n this._allowUnmatched = value;\n\n if (isDefined(this._allowUnmatched)) {\n this._adapter.setHostAttribute(AUTOCOMPLETE_CONSTANTS.attributes.ALLOW_UNMATCHED, this._allowUnmatched.toString());\n }\n }\n }\n\n /** Gets/sets the property key to match the value to an option. */\n public get matchKey(): string | null | undefined {\n return this._matchKey;\n }\n public set matchKey(value: string | null | undefined) {\n if (this._matchKey !== value) {\n this._matchKey = value;\n }\n }\n\n /** Gets/sets the selector that will be used to find an element to attach the popup to. Defaults to the input element. */\n public get popupTarget(): string {\n return this._popupTarget;\n }\n public set popupTarget(value: string) {\n if (this._popupTarget !== value) {\n this._popupTarget = value;\n }\n }\n\n /**\n * Gets/sets the filter text.\n * \n * Setting the filter text only applies when allowUnmatched is enabled.\n */\n public get filterText(): string {\n return this._filterText;\n }\n public set filterText(value: string) {\n if (this._filterText !== value) {\n this._filterText = this._allowUnmatched ? value : '';\n\n if (this._isInitialized && this._allowUnmatched) {\n this._adapter.setInputValue(this._filterText);\n\n if (this._isDropdownOpen) {\n this._debounceFilter({ checkFocus: false });\n }\n }\n }\n }\n\n /** Gets/sets the list of classes to apply to the popup element. */\n public get popupClasses(): string | string[] {\n return Array.isArray(this._popupClasses) ? [...this._popupClasses] : [this._popupClasses];\n }\n public set popupClasses(value: string | string[]) {\n if (this._popupClasses !== value) {\n this._popupClasses = Array.isArray(value) ? [...value] : [value];\n }\n }\n\n /** Gets/sets the builder callback to use for the popup header. */\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n /** Gets/sets the builder callback to use for the popup footer. */\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n /** Gets/sets whether the popup width is synchronized with the popup target. */\n public get syncPopupWidth(): boolean {\n return this._syncPopupWidth;\n }\n public set syncPopupWidth(value: boolean) {\n if (this._syncPopupWidth !== value) {\n this._syncPopupWidth = value;\n }\n }\n\n /** Gets/sets the maximum number of options to display in the dropdown. */\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n if (this._optionLimit !== value) {\n this._optionLimit = value;\n }\n }\n\n /** Gets/sets the debounce delay (milliseconds) for keyboard events. */\n public get debounce(): number {\n return this._debounce;\n }\n public set debounce(value: number) {\n if (this._debounce !== value) {\n this._debounce = value;\n\n if (this._isInitialized) {\n this._setFilterCallback();\n }\n\n this._adapter.setHostAttribute(AUTOCOMPLETE_CONSTANTS.attributes.DEBOUNCE, isDefined(this._debounce) ? this._debounce.toString() : '');\n }\n }\n\n /** Sets the item builder callback that will be executed when building the option list in the dropdown. */\n public get optionBuilder(): AutocompleteOptionBuilder | null | undefined {\n return this._optionBuilder;\n }\n public set optionBuilder(fn: AutocompleteOptionBuilder | null | undefined) {\n this._optionBuilder = fn;\n }\n\n /** Sets the filter callback that will be executed when fetching options for the autocomplete dropdown. */\n public get filter(): AutocompleteFilterCallback | null | undefined {\n return this._filter;\n }\n public set filter(cb: AutocompleteFilterCallback | null | undefined) {\n if (this._filter !== cb) {\n this._filter = cb;\n\n // If we have a value, but don't have any options yet then execute the filter\n if (this._isInitialized && this._values.length && !this._flatOptions.length && !!this._filter) {\n this._executeFilter().then(() => {\n this._updateSelectedOptions(this._values);\n this._adapter.setSelectedText(this._getSelectedText());\n });\n }\n }\n }\n\n /** Sets the selected text builder callback that will be executed when getting the selected text. */\n public get selectedTextBuilder(): AutocompleteSelectedTextBuilder {\n return this._selectedTextBuilder;\n }\n public set selectedTextBuilder(fn: AutocompleteSelectedTextBuilder) {\n this._selectedTextBuilder = fn;\n\n // If there are selected options, set the selected text again\n if (this._selectedOptions.length) {\n this._adapter.setSelectedText(this._getSelectedText());\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 appendOptions(options: IAutocompleteOption[] | IAutocompleteOptionGroup[]): void {\n if (!this._isDropdownOpen) {\n return;\n }\n this._options = [...this._options, ...options] as IAutocompleteOption[] | IAutocompleteOptionGroup[];\n this._adapter.appendOptions(options);\n }\n\n public get isInitialized(): boolean {\n return this._isInitialized;\n }\n\n public get open(): boolean {\n return this._isDropdownOpen;\n }\n public set open(value: boolean) {\n if (this._isDropdownOpen !== value) {\n if (value) {\n this._showDropdown({ userTriggered: false });\n } else {\n this._closeDropdown();\n }\n }\n }\n\n public get beforeValueChange(): (value: any) => boolean | Promise<boolean> {\n return this._beforeValueChange;\n }\n public set beforeValueChange(value: (value: any) => boolean | Promise<boolean>) {\n if (value !== this._beforeValueChange) {\n this._beforeValueChange = value;\n }\n }\n\n public get popupElement(): HTMLElement | null {\n return this._adapter.getPopupElement();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, ensureChild, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconArrowDropDown, tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\nimport { DividerComponent } from '../divider';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { LinearProgressComponent } from '../linear-progress';\nimport { ListComponent, ListItemComponent } from '../list';\nimport { IListDropdownAware, ListDropdownAware } from '../list-dropdown/list-dropdown-aware';\nimport { PopupComponent } from '../popup';\nimport { SkeletonComponent } from '../skeleton';\nimport { TextFieldComponent } from '../text-field';\nimport { AutocompleteAdapter } from './autocomplete-adapter';\nimport { AutocompleteFilterCallback, AutocompleteMode, AutocompleteOptionBuilder, AutocompleteSelectedTextBuilder, AUTOCOMPLETE_CONSTANTS, IAutocompleteOption, IAutocompleteOptionGroup, IAutocompleteSelectEventData } from './autocomplete-constants';\nimport { AutocompleteFoundation } from './autocomplete-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface IAutocompleteComponent extends IListDropdownAware {\n mode: `${AutocompleteMode}`;\n multiple: boolean;\n value: any;\n debounce: number;\n filterOnFocus: boolean;\n allowUnmatched: boolean;\n matchKey: string | null | undefined;\n popupTarget: string;\n filterText: string;\n filter: AutocompleteFilterCallback | null | undefined;\n optionBuilder: AutocompleteOptionBuilder | null | undefined;\n selectedTextBuilder: AutocompleteSelectedTextBuilder;\n popupElement: HTMLElement | null;\n beforeValueChange: (value: any) => boolean | Promise<boolean>;\n isInitialized: boolean;\n open: boolean;\n appendOptions(options: IAutocompleteOption[] | IAutocompleteOptionGroup[]): void;\n openDropdown(): void;\n closeDropdown(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-autocomplete': IAutocompleteComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-autocomplete-change': CustomEvent<any>;\n 'forge-autocomplete-select': CustomEvent<IAutocompleteSelectEventData>;\n 'forge-autocomplete-scrolled-bottom': CustomEvent<void>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-autocomplete>` element.\n * \n * @tag forge-autocomplete\n */\n@CustomElement({\n name: AUTOCOMPLETE_CONSTANTS.elementName,\n dependencies: [\n TextFieldComponent,\n PopupComponent,\n ListComponent,\n ListItemComponent,\n DividerComponent,\n SkeletonComponent,\n LinearProgressComponent,\n IconComponent\n ]\n})\nexport class AutocompleteComponent extends ListDropdownAware implements IAutocompleteComponent {\n public static get observedAttributes(): string[] {\n return [\n AUTOCOMPLETE_CONSTANTS.attributes.MODE,\n AUTOCOMPLETE_CONSTANTS.attributes.MULTIPLE,\n AUTOCOMPLETE_CONSTANTS.attributes.DEBOUNCE,\n AUTOCOMPLETE_CONSTANTS.attributes.FILTER_ON_FOCUS,\n AUTOCOMPLETE_CONSTANTS.attributes.ALLOW_UNMATCHED,\n AUTOCOMPLETE_CONSTANTS.attributes.POPUP_TARGET,\n AUTOCOMPLETE_CONSTANTS.attributes.POPUP_CLASSES,\n AUTOCOMPLETE_CONSTANTS.attributes.OBSERVE_SCROLL,\n AUTOCOMPLETE_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD,\n AUTOCOMPLETE_CONSTANTS.attributes.OPTION_LIMIT,\n AUTOCOMPLETE_CONSTANTS.attributes.SYNC_POPUP_WIDTH,\n AUTOCOMPLETE_CONSTANTS.attributes.OPEN,\n AUTOCOMPLETE_CONSTANTS.attributes.MATCH_KEY,\n AUTOCOMPLETE_CONSTANTS.attributes.FILTER_TEXT\n ];\n }\n\n private _foundation: AutocompleteFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconArrowDropDown, tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new AutocompleteFoundation(new AutocompleteAdapter(this));\n }\n\n public connectedCallback(): void {\n if (this.querySelector(AUTOCOMPLETE_CONSTANTS.selectors.INPUT)) {\n this._foundation.initialize();\n } else {\n ensureChild(this, AUTOCOMPLETE_CONSTANTS.selectors.INPUT).then(() => this._foundation.initialize());\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case AUTOCOMPLETE_CONSTANTS.attributes.MODE:\n this.mode = newValue as AutocompleteMode;\n break;\n case AUTOCOMPLETE_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case AUTOCOMPLETE_CONSTANTS.attributes.DEBOUNCE:\n this.debounce = coerceNumber(newValue);\n break;\n case AUTOCOMPLETE_CONSTANTS.attributes.FILTER_ON_FOCUS:\n this.filterOnFocus = coerceBoolean(newValue);\n break;\n case AUTOCOMPLETE_CONSTANTS.attributes.ALLOW_UNMATCHED:\n this.allowUnmatched = coerceBoolean(newValue);\n break;\n case AUTOCOMPLETE_CONSTANTS.attributes.POPUP_TARGET:\n this.popupTarget = newValue;\n break;\n case AUTOCOMPLETE_CONSTANTS.attributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case AUTOCOMPLETE_CONSTANTS.attributes.MATCH_KEY:\n this.matchKey = newValue;\n break;\n case AUTOCOMPLETE_CONSTANTS.attributes.FILTER_TEXT:\n this.filterText = newValue;\n break;\n }\n }\n\n /** Gets/sets the interaction mode. */\n @FoundationProperty()\n public declare mode: `${AutocompleteMode}`;\n\n /** Gets/sets the multi-select state. */\n @FoundationProperty()\n public declare multiple: boolean;\n\n /** Gets/sets the value. */\n @FoundationProperty()\n public declare value: any;\n\n /** Gets/sets the debounce delay (milliseconds) for keyboard events. */\n @FoundationProperty()\n public declare debounce: number;\n\n /** Gets/sets filter on focus settings which controls whether the dropdown displays automatically when focused. */\n @FoundationProperty()\n public declare filterOnFocus: boolean;\n\n /** Controls whether unmatched text entered by the user will stay visible an option in the dropdown is not found. */\n @FoundationProperty()\n public declare allowUnmatched: boolean;\n\n /** Gets/sets the selector that will be used to find an element to attach the popup to. Defaults to the input element. */\n @FoundationProperty()\n public declare popupTarget: string;\n\n /**\n * Gets/sets the filter text.\n * \n * Setting the filter text only applies when allowUnmatched is enabled.\n */\n @FoundationProperty()\n public declare filterText: string;\n\n /** Sets the option builder callback that will be executed when building the option list in the dropdown. */\n @FoundationProperty()\n public declare optionBuilder: AutocompleteOptionBuilder | null | undefined;\n\n /** Sets the filter callback that will be executed when fetching options for the autocomplete dropdown. */\n @FoundationProperty()\n public declare filter: AutocompleteFilterCallback | null | undefined;\n\n /** Sets the selected text builder callback that will be executed when getting the selected text. */\n @FoundationProperty()\n public declare selectedTextBuilder: AutocompleteSelectedTextBuilder;\n\n /** Controls the open state of the dropdown. */\n @FoundationProperty()\n public declare open: boolean;\n\n /** Gets/sets the property key to match the value to an option. */\n @FoundationProperty()\n public declare matchKey: string | null | undefined;\n\n /** Returns whether the component has been initialized or not yet. */\n @FoundationProperty({ set: false })\n public declare isInitialized: boolean;\n\n /** Gets the currently active popup element when the dropdown is open. */\n @FoundationProperty({ set: false })\n public declare popupElement: HTMLElement | null;\n\n /** Sets the callback to be executed when the user selects an option, before the UI is updated to allow for validation. */\n @FoundationProperty()\n public declare beforeValueChange: (value: any) => boolean | Promise<boolean>;\n\n /** Adds options to the dropdown while it is open. Has no effect if the dropdown is closed. */\n public appendOptions(options: IAutocompleteOption[] | IAutocompleteOptionGroup[]): void {\n this._foundation.appendOptions(options);\n }\n\n /** Opens the dropdown. */\n public openDropdown(): void {\n this.open = true;\n }\n\n /** Closes the dropdown. */\n public closeDropdown(): void {\n this.open = false;\n }\n}\n", "import { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions } from '../core/delegates/form-field-component-delegate';\nimport { ITextFieldComponent, TextFieldComponentDelegate, ITextFieldComponentDelegateOptions } from '../text-field';\nimport { IAutocompleteComponent } from './autocomplete';\nimport { AUTOCOMPLETE_CONSTANTS } from './autocomplete-constants';\nimport { IconComponentDelegate, IIconComponentDelegateConfig } from '../icon';\nimport { IBaseComponentDelegateConfig } from '../core/delegates/base-component-delegate';\nimport { ITextFieldComponentDelegateConfig } from '../text-field/text-field-component-delegate';\n\nexport type AutocompleteComponentDelegateProps = Partial<IAutocompleteComponent>;\nexport interface IAutocompleteComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n useDropdownIcon?: boolean;\n textFieldDelegateConfig?: ITextFieldComponentDelegateConfig;\n}\n\nexport interface IAutocompleteComponentDelegateConfig extends IBaseComponentDelegateConfig<IAutocompleteComponent, IAutocompleteComponentDelegateOptions> {}\n\nexport class AutocompleteComponentDelegate extends FormFieldComponentDelegate<IAutocompleteComponent, IAutocompleteComponentDelegateOptions> {\n private _textFieldDelegate: TextFieldComponentDelegate;\n\n constructor(config?: IAutocompleteComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IAutocompleteComponent {\n const autocomplete = document.createElement(AUTOCOMPLETE_CONSTANTS.elementName) as IAutocompleteComponent;\n this._attachTextField(autocomplete);\n return autocomplete;\n }\n\n public get textFieldDelegate(): TextFieldComponentDelegate {\n return this._textFieldDelegate;\n }\n\n public get value(): any {\n return this._element.value;\n }\n public set value(value: any) {\n this._element.value = value;\n }\n\n public get disabled(): boolean {\n return this._textFieldDelegate.inputElement.disabled;\n }\n public set disabled(value: boolean) {\n this._textFieldDelegate.inputElement.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._textFieldDelegate.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textFieldDelegate.invalid = value;\n }\n\n public onChange(listener: (value: string) => void): void {\n this._element.addEventListener(AUTOCOMPLETE_CONSTANTS.events.CHANGE, (evt: CustomEvent) => listener(evt.detail));\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('focus', (evt: FocusEvent) => listener(evt));\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('blur', (evt: FocusEvent) => listener(evt));\n }\n\n private _attachTextField(autocomplete: IAutocompleteComponent): void {\n const textFieldConfig: ITextFieldComponentDelegateConfig = {\n props: { ...this._config.options?.textFieldDelegateConfig?.props },\n options: { ...this._config.options?.textFieldDelegateConfig?.options }\n };\n\n if (!textFieldConfig.options) {\n textFieldConfig.options = {};\n }\n\n if (this._config.options?.useDropdownIcon !== false && !textFieldConfig.options?.trailingElement) {\n textFieldConfig.options.trailingElement = this._createDropdownIconElement();\n }\n\n this._textFieldDelegate = new TextFieldComponentDelegate(textFieldConfig);\n autocomplete.appendChild(this._textFieldDelegate.element);\n }\n\n private _createDropdownIconElement(): HTMLElement {\n const config: IIconComponentDelegateConfig = {\n props: {\n slot: 'trailing',\n name: 'arrow_drop_down'\n },\n options: {\n attributes: { 'forge-dropdown-icon': '' }\n }\n };\n return new IconComponentDelegate(config).element;\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { AutocompleteComponent } from './autocomplete';\n\nexport * from './autocomplete-adapter';\nexport * from './autocomplete-component-delegate';\nexport * from './autocomplete-constants';\nexport * from './autocomplete-foundation';\nexport * from './autocomplete-utils';\nexport * from './autocomplete';\n\nexport function defineAutocompleteComponent(): void {\n defineCustomElement(AutocompleteComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "selectors", "FIELD_CONSTANTS", "numbers", "events", "AUTOCOMPLETE_CONSTANTS", "AutocompleteMode", "AutocompleteAdapter", "BaseAdapter", "component", "inputElements", "deepQuerySelectorAll", "AUTOCOMPLETE_CONSTANTS", "name", "value", "type", "listener", "identifier", "CHIP_FIELD_CONSTANTS", "config", "popupTarget", "ListDropdown", "targetElement", "POPUP_CONSTANTS", "isVisible", "_a", "index", "selected", "dropdownElement", "options", "target", "activeElement", "getActiveElement", "dropdownIcon", "clearButton", "key", "id", "toggleAttribute", "selector", "_b", "values", "o", "dropdownEl", "textField", "textFieldRoot", "getShadowElement", "TEXT_FIELD_CONSTANTS", "chipField", "chipFieldRoot", "state", "OptionType", "isOptionType", "options", "type", "isOptionGroups", "o", "isDefined", "isObject", "isOptionTypes", "getSelectedOption", "value", "optionEqualPredicate", "option", "property", "isDeepEqual", "AutocompleteFoundation", "ListDropdownAwareFoundation", "_adapter", "AUTOCOMPLETE_CONSTANTS", "evt", "id", "randomChars", "isDefined", "debounce", "isOptionType", "previousValue", "currentValue", "Platform", "checkFocus", "filterText", "filterPromise", "e", "promiseIndex", "input", "value", "isRemovingAllChars", "isBackspacingLastChar", "isDeletingLastChar", "isEmpty", "sendFilterText", "sendValue", "filter", "resolve", "reject", "options", "userTriggered", "activateFirst", "activateSelected", "listOptionBuilder", "optionBuilder", "option", "parentElement", "config", "label", "highlightElement", "highlightTextHTML", "selectedOptions", "unselectedOptions", "o", "optionEqualPredicate", "selectedValue", "keepFocus", "data", "select", "flatOptions", "optionIndex", "selected", "selectedOption", "getSelectedOption", "index", "isSelected", "activeOptionIndex", "_a", "_b", "values", "allOptions", "actualOption", "isString", "v", "fn", "cb", "template", "styles", "AutocompleteComponent", "ListDropdownAware", "IconRegistry", "tylIconArrowDropDown", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "attachShadowTemplate", "AutocompleteFoundation", "AutocompleteAdapter", "AUTOCOMPLETE_CONSTANTS", "ensureChild", "name", "oldValue", "newValue", "coerceBoolean", "coerceNumber", "options", "__decorateClass", "FoundationProperty", "CustomElement", "TextFieldComponent", "PopupComponent", "ListComponent", "ListItemComponent", "DividerComponent", "SkeletonComponent", "LinearProgressComponent", "IconComponent", "AutocompleteComponentDelegate", "FormFieldComponentDelegate", "config", "autocomplete", "AUTOCOMPLETE_CONSTANTS", "value", "listener", "evt", "_a", "_b", "_c", "_d", "_e", "_f", "textFieldConfig", "__spreadValues", "TextFieldComponentDelegate", "IconComponentDelegate", "defineAutocompleteComponent", "defineCustomElement", "AutocompleteComponent"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
-
* License: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import{a as v}from"./chunk.O4FB4BV5.js";import{a as S}from"./chunk.6YPD6CQM.js";import{a as h}from"./chunk.4DAIIJ37.js";import{a as A}from"./chunk.V7WKXEZC.js";import{a as M}from"./chunk.G45OZEIS.js";import{b as y}from"./chunk.BE7PZANN.js";import{f as L,v as C,w as b}from"./chunk.PN26D52V.js";import{i as I}from"./chunk.J2M2MXP2.js";import{a as O,b as N}from"./chunk.MCIQXNKY.js";var c=`${y}calendar`,Y={ALLOW_SINGLE_DATE_RANGE:"allow-single-date-range",CLEAR_BUTTON:"clear-button",CONSTRAIN_TO_ENABLED:"constrain-to-enabled",FIRST_DAY_OF_WEEK:"first-day-of-week",FIXED_HEIGHT:"static-height",LIST_YEARS:"list-years",LOCALE:"locale",MAX:"max",MENU_ANIMATION:"menu-animation",MIN:"min",MODE:"mode",MONTH:"month",PREVENT_FOCUS:"prevent-focus",READONLY:"readonly",SELECTION_FOLLOWS_MONTH:"selection-follows-month",SHOW_HEADER:"show-header",SHOW_OTHER_MONTHS:"show-other-months",SHOW_TODAY:"show-today",TODAY_BUTTON:"today-button",VIEW:"view",YEAR:"year",YEAR_RANGE:"year-range"},W=N(O({},Y),{DATA_DATE:"data-date",DATA_EVENT_THEME:"data-event-theme",POPUP_CONTEXT:"forge-popup-context"}),E={ALLOW_SINGLE_DATE_RANGE:"forge-calendar--allow-single-date-range",DATE:"forge-calendar__date",DATE_GRID:"forge-calendar__date-grid",DATE_INNER:"forge-calendar__date__inner",DATE_OTHER_MONTH:"forge-calendar__date--other-month",DATE_SPACER:"forge-calendar__date-spacer",DATE_SELECTED:"forge-calendar__date--selected",DATE_TODAY:"forge-calendar__date--today",DATE_VIEW:"forge-calendar__date-view",DATE_VIEW_ROW:"forge-calendar__date-view__row",DATE_WRAPPER:"forge-calendar__date-wrapper",DAY:"forge-calendar__day",EVENT:"forge-calendar__event",EVENT_OVERFLOW:"forge-calendar__event--overflow",EVENT_WRAPPER:"forge-calendar__event__wrapper",FIXED_HEIGHT:"forge-calendar--fixed-height",FOOTER:"forge-calendar__footer",HEADER:"forge-calendar__header",MDC_RIPPLE_UPGRADED_FOCUSED:"mdc-ripple-upgraded--background-focused",MONTH_MENU_OPEN:"forge-calendar--month-menu-open",PREVENT_FOCUS:"forge-calendar--prevent-focus",RANGE:"forge-calendar__range",RANGE_END:"forge-calendar__range--end",RANGE_START:"forge-calendar__range--start",RANGE_TARGET:"forge-calendar__range__target",READONLY:"forge-calendar--readonly",RTL:"forge-calendar--rtl",SHOW_OTHER_MONTHS:"forge-calendar--show-other-months",SHOW_TODAY:"forge-calendar--show-today",VIEW:"forge-calendar__view",YEAR_MENU_OPEN:"forge-calendar--year-menu-open"},d={ACCESSIBLE_HEADER:"accessible-header",ACCESSIBLE_MONTH:"accessible-month",ACCESSIBLE_YEAR:"accessible-year",CLEAR_BUTTON:"clear-button",DATE_GRID:"date-grid",DATE_VIEW:"date-view",DAY_ROW:"day-row",FOOTER:"footer",HEADER:"header",MENU:"menu",MONTH_BUTTON:"month-button",NEXT_BUTTON:"next-button",NEXT_BUTTON_TOOLTIP:"next-button-tooltip",PREVIOUS_BUTTON:"previous-button",PREVIOUS_BUTTON_TOOLTIP:"previous-button-tooltip",TODAY_BUTTON:"today-button",YEAR_BUTTON:"year-button"},V={SUNDAY:"sunday",MONDAY:"monday",TUESDAY:"tuesday",WEDNESDAY:"wednesday",THURSDAY:"thursday",FRIDAY:"friday",SATURDAY:"saturday"},G=N(O({},V),{CLEAR_BUTTON:"clear-button",DATE:"date",DATE_OTHER_MONTH:"date-other-month",DATE_VIEW:"date-view",DATE_WRAPPER:"date-wrapper",DAY:"day",EVENT:"event",EVENT_WRAPPER:"event-wrapper",FOOTER:"footer",HEADER:"header",MONTH_BUTTON:"month-button",MONTH_BUTTON_ELEMENT:"month-button-element",NEXT_BUTTON:"next-button",PREVIOUS_BUTTON:"previous-button",RANGE:"range",RANGE_END:"range-end",RANGE_START:"range-start",TODAY:"today",TODAY_BUTTON:"today-button",WEEKEND:"weekend",YEAR_BUTTON:"year-button",YEAR_BUTTON_ELEMENT:"year-button-element"}),$={ACCESSIBLE_HEADER:`#${d.ACCESSIBLE_HEADER}`,ACCESSIBLE_MONTH:`#${d.ACCESSIBLE_MONTH}`,ACCESSIBLE_YEAR:`#${d.ACCESSIBLE_YEAR}`,CALENDAR:".forge-calendar",CLEAR_BUTTON:`#${d.CLEAR_BUTTON}`,DATE:`.${E.DATE}`,DATE_GRID:`#${d.DATE_GRID}`,DATE_INNER:`.${E.DATE_INNER}`,DATE_OTHER_MONTH:`.${E.DATE_OTHER_MONTH}`,DATE_SPACER:`.${E.DATE_SPACER}`,DATE_SELECTED:`.${E.DATE_SELECTED}`,DATE_TODAY:`.${E.DATE_TODAY}`,DATE_VIEW:`#${d.DATE_VIEW}`,DATE_WRAPPER:`.${E.DATE_WRAPPER}`,DAY_ROW:`#${d.DAY_ROW}`,EVENT_WRAPPER:`.${E.EVENT_WRAPPER}`,FOOTER:`#${d.FOOTER}`,HEADER:`#${d.HEADER}`,MENU:v.elementName,MONTH_BUTTON:`#${d.MONTH_BUTTON}`,NEXT_BUTTON:`#${d.NEXT_BUTTON}`,NEXT_BUTTON_TOOLTIP:`#${d.NEXT_BUTTON_TOOLTIP}`,PREVIOUS_BUTTON:`#${d.PREVIOUS_BUTTON}`,PREVIOUS_BUTTON_TOOLTIP:`#${d.PREVIOUS_BUTTON_TOOLTIP}`,RANGE:`.${E.RANGE}`,RANGE_END:`.${E.RANGE_END}`,RANGE_START:`.${E.RANGE_START}`,TODAY_BUTTON:`#${d.TODAY_BUTTON}`,TOOLTIP:M.elementName,VIEW:"#view",YEAR_BUTTON:`#${d.YEAR_BUTTON}`},k={DATE_SELECT:`${c}-date-select`,FOCUS_CHANGE:`${c}-focus-change`,MONTH_CHANGE:`${c}-month-change`,VIEW_CHANGE:`${c}-view-change`},F={DEFAULT_MAX_YEAR_OFFSET:50,DEFAULT_MIN_YEAR_OFFSET:50,FINAL_WEEK_BEGIN_INDEX:35,MONTH_LENGTH:42,PENULTIMATE_WEEK_BEGIN_INDEX:28,WEEK_LENGTH:7,YEARS_IN_VIEW:20},a={elementName:c,attributes:W,classes:E,ids:d,parts:G,selectors:$,events:k,numbers:F},f=(o=>(o[o.Sunday=0]="Sunday",o[o.Monday=1]="Monday",o[o.Tuesday=2]="Tuesday",o[o.Wednesday=3]="Wednesday",o[o.Thursday=4]="Thursday",o[o.Friday=5]="Friday",o[o.Saturday=6]="Saturday",o))(f||{}),z=(r=>(r[r.First=1]="First",r[r.Last=2]="Last",r[r.Current=3]="Current",r))(z||{});function R(t,n,e){return e||(e=navigator.language),new Date(2017,0,t+1).toLocaleString(e,{weekday:n})}function H(t,n,e){return e||(e=navigator.language),new Date(1970,0,t).toLocaleDateString(e,{day:n})}function P(t,n,e){return e||(e=navigator.language),new Date(1970,t,1).toLocaleString(e,{month:n})}function B(t,n,e){return e||(e=navigator.language),new Date(t,0,1).toLocaleDateString(e,{year:n})}function ne(t){t||(t=navigator.language);let n=t.match(/^([a-z]{2,3})(?:-([a-z]{3})(?=$|-))?(?:-([a-z]{4})(?=$|-))?(?:-([a-z]{2}|\d{3})(?=$|-))?/i);if(!n||!n.length)return 1;let e=n[1],r=n[4],i="AEAFBHDJDZEGIQIRJOKWLYOMQASDSY".match(/../g),s="AGARASAUBDBRBSBTBWBZCACNCODMDOETGTGUHKHNIDILINJMJPKEKHKRLAMHMMMOMTMXMZNINPPAPEPHPKPRPTPYSASGSVTHTTTWUMUSVEVIWSYEZAZW".match(/../g),l=["ar","arq","arz","fa"],o="amasbndzengnguhehiidjajvkmknkolomhmlmrmtmyneomorpapssdsmsnsutatethtnurzhzu".match(/../g);return r?s&&s.includes(r)?0:i&&i.includes(r)?6:1:o&&o.includes(e)?0:l&&l.includes(e)?6:1}function ae(t){switch(t||(t=navigator.language),t.split("-")[1]){case"DZ":case"BH":case"BD":case"EG":case"IQ":case"IL":case"JO":case"KW":case"LY":case"MV":case"MR":case"NP":case"OM":case"QA":case"SA":case"SD":case"SY":case"AE":case"YE":case"AF":case"IR":return[4,5];case"BN":return[0,5];default:return[0,6]}}function re(t){return t||(t=navigator.language),["ar","arc","ckb","dv","fa","ha","he","khw","ks","ps","sd","ur","uz-AF","yi"].some(e=>t?t.startsWith(e):!1)}function X(t){return`d${t}`}function _(t){let n=String(t.getMonth()).padStart(2,"0"),e=String(t.getDate()).padStart(2,"0"),r=t.getFullYear();return["d",r,n,e].join("")}function K(t){let n=String(t.getMonth()).padStart(2,"0"),e=String(t.getDate()).padStart(2,"0"),r=t.getFullYear();return["e",r,n,e].join("")}function ue(t,n){let e=document.createElement("div");return e.classList.add(a.classes.DAY),e.id=X(t),e.setAttribute("role","columnheader"),e.setAttribute("aria-label",R(t,"long",n)),e.setAttribute("part",a.parts.DAY),e.textContent=R(t,"short",n),e}function Te(t,n,e){var i;let r=document.createElement("div");return r.classList.add(a.classes.DATE_VIEW_ROW),r.setAttribute("role","row"),n>0&&!((i=t[0])!=null&&i.thisMonth)?(t.forEach(s=>r.appendChild(U(s.date))),r.setAttribute("aria-hidden","true")):t.forEach(s=>{let l=s.thisMonth||(e==null?void 0:e.showOtherMonths)?Z(s,e==null?void 0:e.locale):U(s.date);(s.thisMonth||(e==null?void 0:e.showOtherMonths))&&(e==null?void 0:e.builder)&&(l=e.builder(s,l)),r.appendChild(l)}),r}function Z(t,n){let e=document.createElement("div"),r=document.createElement("div"),i=document.createElement("div"),s=document.createElement("div"),l=t.date.getDay();e.id=_(t.date),e.tabIndex=-1,e.classList.add(a.classes.DATE),e.classList.toggle(a.classes.DATE_TODAY,t.today),e.classList.toggle(a.classes.DATE_SELECTED,t.selected),e.classList.toggle(a.classes.DATE_OTHER_MONTH,!t.thisMonth),e.setAttribute("role","gridcell"),e.setAttribute("aria-disabled",t.disabled.toString()),e.setAttribute("aria-label",`${t.today?"Today, ":""}${t.date.toLocaleDateString(n!=null?n:navigator.language,{weekday:"long",month:"long",day:"numeric",year:"numeric"})}`),e.setAttribute("aria-selected",t.selected.toString()),e.setAttribute(a.attributes.DATA_DATE,t.date.toDateString()),e.toggleAttribute("disabled",t.disabled),e.setAttribute("part",a.parts.DATE_WRAPPER);let o="";switch(l){case 0:o=a.parts.SUNDAY;break;case 1:o=a.parts.MONDAY;break;case 2:o=a.parts.TUESDAY;break;case 3:o=a.parts.WEDNESDAY;break;case 4:o=a.parts.THURSDAY;break;case 5:o=a.parts.FRIDAY;break;case 6:o=a.parts.SATURDAY;break}return b(i,"part",o),b(i,"part",a.parts.DATE),C(i,"part",a.parts.TODAY,t.today),C(i,"part",a.parts.DATE_OTHER_MONTH,!t.thisMonth),r.classList.add(a.classes.RANGE_TARGET),e.appendChild(r),i.textContent=H(t.date.getDate(),"numeric",n),i.classList.add(a.classes.DATE_INNER),e.appendChild(i),s.classList.add("mdc-ripple-surface"),e.appendChild(s),e}function U(t){let n=document.createElement("span");return n.classList.add(a.classes.DATE_SPACER),n.id=_(t),n}function pe(t){let n=document.createElement("div");return n.classList.add(a.classes.EVENT_WRAPPER),n.id=K(t),n.setAttribute("part",a.parts.EVENT_WRAPPER),n}function me(t,n){let e=document.createElement("forge-icon");if(e.classList.add(a.classes.EVENT),e.setAttribute("part",a.parts.EVENT),n)e.classList.add(a.classes.EVENT_OVERFLOW),e.name="add";else{let r='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z" stroke="var(--forge-calendar-event-stroke-color)" stroke-width="4px" paint-order="stroke"></path></svg>';e.src=r,e.setAttribute(a.attributes.DATA_EVENT_THEME,t.color)}return e}function Ae(t){let n=document.createElement("forge-tooltip");return n.text=t,n.setAttribute("aria-hidden","true"),n}function _e(){let t=document.createElement("div");t.classList.add(a.classes.HEADER),t.id=a.ids.HEADER,t.setAttribute("part",a.parts.HEADER);let n=document.createElement("forge-icon-button"),e=document.createElement("button"),r=document.createElement("forge-icon"),i=document.createElement("forge-tooltip");n.setAttribute("part",a.parts.PREVIOUS_BUTTON),e.id=a.ids.PREVIOUS_BUTTON,e.type="button",e.setAttribute("aria-label","Previous"),r.setAttribute("name","keyboard_arrow_left"),i.id=a.ids.PREVIOUS_BUTTON_TOOLTIP,i.setAttribute("aria-hidden","true"),i.innerText="Previous",n.appendChild(e),n.appendChild(i),e.appendChild(r);let s=document.createElement("forge-icon-button"),l=document.createElement("button"),o=document.createElement("forge-icon"),u=document.createElement("forge-tooltip");s.setAttribute("part",a.parts.NEXT_BUTTON),l.id=a.ids.NEXT_BUTTON,l.type="button",l.setAttribute("aria-label","Next"),o.setAttribute("name","keyboard_arrow_right"),u.id=a.ids.NEXT_BUTTON_TOOLTIP,u.setAttribute("aria-hidden","true"),u.innerText="Next",s.appendChild(l),s.appendChild(u),l.appendChild(o);let g=document.createElement("forge-button"),T=document.createElement("button");g.setAttribute("part",a.parts.MONTH_BUTTON),T.id=a.ids.MONTH_BUTTON,T.type="button",T.setAttribute("aria-pressed","false"),g.appendChild(T);let D=document.createElement("forge-button"),p=document.createElement("button");D.setAttribute("part",a.parts.YEAR_BUTTON),p.id=a.ids.YEAR_BUTTON,p.type="button",p.setAttribute("aria-pressed","false"),D.appendChild(p);let m=document.createElement("div");return m.setAttribute("aria-live","polite"),m.appendChild(g),m.appendChild(D),t.appendChild(n),t.appendChild(m),t.appendChild(s),t}function ge(t,n){let e=document.createElement("span"),r=document.createElement("forge-icon");return e.innerHTML=P(t,"long",n),r.setAttribute("name","arrow_drop_down"),[e,r]}function De(t,n){let e=document.createElement("span"),r=document.createElement("forge-icon");return e.innerHTML=B(t,"numeric",n),r.setAttribute("name","arrow_drop_down"),[e,r]}function Oe(){let t=document.createElement("div");t.id=a.ids.ACCESSIBLE_HEADER,t.setAttribute("aria-live","polite");let n=document.createElement("span");n.id=a.ids.ACCESSIBLE_MONTH;let e=document.createElement("span");return e.id=a.ids.ACCESSIBLE_YEAR,t.appendChild(n),t.appendChild(e),t}function Ne(){let t=document.createElement("div");return t.id=a.ids.FOOTER,t.classList.add(a.classes.FOOTER),t.setAttribute("part",a.parts.FOOTER),t}function Ce(){let t=document.createElement("forge-button"),n=document.createElement("button");return t.id=a.ids.CLEAR_BUTTON,t.setAttribute("part",a.parts.CLEAR_BUTTON),n.type="button",n.innerText="Clear",t.appendChild(n),t}function be(){let t=document.createElement("forge-button"),n=document.createElement("button");return t.id=a.ids.TODAY_BUTTON,t.setAttribute("part",a.parts.TODAY_BUTTON),n.type="button",n.innerText="Today",t.appendChild(n),t}function he(t,n){let e=h(t).find(r=>r.classList&&r.classList.contains(a.classes.DATE));return!e||!n&&e.hasAttribute("disabled")?null:e}function fe(t,n){let e=h(t).find(r=>r.id===n);return e!=null?e:null}function Re(t,n,e,r){t.tabIndex=r?-1:n,t.classList.toggle(a.classes.MDC_RIPPLE_UPGRADED_FOCUSED,r&&n>-1),n>-1&&e&&!r?t.focus():t.blur()}var j={POPUP:"forge-calendar-dropdown__popup"},x={classes:j};var w=class{constructor(n,e){this._popupClasses=[];this.targetElement=n,this.id=e}get isOpen(){var n,e;return(e=(n=this.dropdownElement)==null?void 0:n.open)!=null?e:!1}get popupClasses(){return this._popupClasses}set popupClasses(n){this._popupClasses=n?I(n)?[...n]:[n]:[]}close(){!this.dropdownElement||(this.dropdownElement.open=!1,this.dropdownElement=void 0,this.calendar=void 0)}destroy(){this.close()}open(n){this.calendar=this._createCalendar(n),this._announcerElement=S(),this._announcerElement.id=`${this.id}-activedescendant`,this.dropdownElement=this._createDropdown(),this.dropdownElement.appendChild(this.calendar),this.dropdownElement.appendChild(this._announcerElement),this.dropdownElement.static=!0,this.calendar.addEventListener(a.events.FOCUS_CHANGE,e=>{var i;let r=`${this.id}-activedescendent-`;switch(e.detail.type){case"date":r+=_(e.detail.value);break;case"month":r+=`month-${e.detail.value.toString()}`;break;case"year":r+=`year-${e.detail.value.toString()}`;break}(i=this.activeChangeCallback)==null||i.call(this,r),this._announcerElement&&(this._announcerElement.id=r,this._announcerElement.setAttribute("aria-selected",e.detail.selected.toString()),this._announcerElement.textContent=e.detail.text)}),this.dropdownElement.open=!0,window.requestAnimationFrame(()=>{setTimeout(()=>{this.dropdownElement&&this.dropdownElement.open&&this.calendar&&this.calendar.isConnected&&this.calendar.layout()},A.numbers.ANIMATION_DURATION)})}propagateKeyboardEvent(n){var e;(e=this.calendar)==null||e.handleKey(n)}_createCalendar(n){let e=document.createElement(a.elementName);return Object.assign(e,n),e}_createDropdown(){let n=document.createElement(A.elementName);return n.targetElement=this.targetElement,n.placement="bottom-start",n.animationType="menu",n.classList.add(x.classes.POPUP),n.id=this.id,L(this._popupClasses,n),n.addEventListener(A.events.CLOSE,()=>{this.closeCallback&&this.closeCallback()}),n}};export{a,f as b,z as c,R as d,H as e,P as f,B as g,ne as h,ae as i,re as j,X as k,_ as l,K as m,ue as n,Te as o,Z as p,U as q,pe as r,me as s,Ae as t,_e as u,ge as v,De as w,Oe as x,Ne as y,Ce as z,be as A,he as B,fe as C,Re as D,x as E,w as F};
|
|
7
|
-
//# sourceMappingURL=chunk.DT7MZR5Y.js.map
|