@tylertech/forge 2.8.0 → 2.10.0
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 +4525 -246
- package/dist/esm/accordion/index.js +1 -34
- package/dist/esm/app-bar/help-button/index.js +1 -53
- package/dist/esm/app-bar/index.js +1 -131
- package/dist/esm/app-bar/menu-button/index.js +1 -36
- package/dist/esm/app-bar/notification-button/index.js +1 -41
- package/dist/esm/app-bar/profile-button/index.js +1 -46
- package/dist/esm/app-bar/search/index.js +1 -38
- package/dist/esm/autocomplete/index.js +1 -72
- package/dist/esm/avatar/index.js +1 -27
- package/dist/esm/backdrop/index.js +1 -22
- package/dist/esm/badge/index.js +1 -25
- package/dist/esm/banner/index.js +1 -40
- package/dist/esm/bottom-sheet/index.js +1 -40
- package/dist/esm/busy-indicator/index.js +1 -33
- package/dist/esm/button/index.js +1 -25
- package/dist/esm/button-toggle/button-toggle/index.js +1 -27
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -26
- package/dist/esm/button-toggle/index.js +1 -40
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -30
- package/dist/esm/calendar/calendar-menu/index.js +1 -43
- package/dist/esm/calendar/core/index.js +1 -7
- package/dist/esm/calendar/index.js +1 -194
- package/dist/esm/card/index.js +1 -16
- package/dist/esm/checkbox/index.js +1 -39
- package/dist/esm/chip-field/index.js +1 -46
- package/dist/esm/chips/chip/index.js +1 -37
- package/dist/esm/chips/chip-set/index.js +1 -37
- package/dist/esm/chips/index.js +1 -50
- package/dist/esm/chunks/chunk.23VA56ZY.js +7 -0
- package/dist/esm/chunks/{chunk.M3O5VPDD.js.map → chunk.23VA56ZY.js.map} +1 -1
- package/dist/esm/chunks/chunk.24D46RLZ.js +7 -0
- package/dist/esm/chunks/{chunk.HZISALRH.js.map → chunk.24D46RLZ.js.map} +1 -1
- package/dist/esm/chunks/chunk.2A3CKLXJ.js +7 -0
- package/dist/esm/chunks/{chunk.U5ECVIX5.js.map → chunk.2A3CKLXJ.js.map} +1 -1
- package/dist/esm/chunks/chunk.2GY2VPJG.js +7 -0
- package/dist/esm/chunks/{chunk.FWJ7SIFA.js.map → chunk.2GY2VPJG.js.map} +1 -1
- package/dist/esm/chunks/chunk.2YGKMENJ.js +7 -0
- package/dist/esm/chunks/chunk.2YGKMENJ.js.map +7 -0
- package/dist/esm/chunks/chunk.33Q5FK2H.js +7 -0
- package/dist/esm/chunks/{chunk.LX2HDAIF.js.map → chunk.33Q5FK2H.js.map} +2 -2
- package/dist/esm/chunks/chunk.35U4OX7S.js +7 -0
- package/dist/esm/chunks/{chunk.E26BROOG.js.map → chunk.35U4OX7S.js.map} +1 -1
- package/dist/esm/chunks/chunk.3E5QKMHL.js +7 -0
- package/dist/esm/chunks/{chunk.VK6LIH3B.js.map → chunk.3E5QKMHL.js.map} +1 -1
- package/dist/esm/chunks/chunk.444GNOS4.js +7 -0
- package/dist/esm/chunks/{chunk.FZ6KICMD.js.map → chunk.444GNOS4.js.map} +1 -1
- package/dist/esm/chunks/chunk.54QFNVMG.js +7 -0
- package/dist/esm/chunks/{chunk.6ZBFCE2A.js.map → chunk.54QFNVMG.js.map} +1 -1
- package/dist/esm/chunks/chunk.57XBS3DF.js +7 -0
- package/dist/esm/chunks/chunk.57XBS3DF.js.map +7 -0
- package/dist/esm/chunks/chunk.5HUDHTAK.js +7 -0
- package/dist/esm/chunks/chunk.5HUDHTAK.js.map +7 -0
- package/dist/esm/chunks/chunk.5QK7XR2W.js +7 -0
- package/dist/esm/chunks/{chunk.EUPO2VO2.js.map → chunk.5QK7XR2W.js.map} +1 -1
- package/dist/esm/chunks/chunk.5SRA2RH3.js +7 -0
- package/dist/esm/chunks/chunk.5SRA2RH3.js.map +7 -0
- package/dist/esm/chunks/chunk.5WMEFHVN.js +7 -0
- package/dist/esm/chunks/{chunk.35BJJH5E.js.map → chunk.5WMEFHVN.js.map} +1 -1
- package/dist/esm/chunks/chunk.5XQVZQ4U.js +7 -0
- package/dist/esm/chunks/chunk.5XQVZQ4U.js.map +7 -0
- package/dist/esm/chunks/chunk.6APYGKNX.js +7 -0
- package/dist/esm/chunks/{chunk.ZSHQMR4O.js.map → chunk.6APYGKNX.js.map} +1 -1
- package/dist/esm/chunks/chunk.6BKOGBE6.js +7 -0
- package/dist/esm/chunks/chunk.6BKOGBE6.js.map +7 -0
- package/dist/esm/chunks/chunk.6P6VQMTU.js +7 -0
- package/dist/esm/chunks/chunk.6P6VQMTU.js.map +7 -0
- package/dist/esm/chunks/chunk.7GT5LOI3.js +7 -0
- package/dist/esm/chunks/{chunk.V6Q2SM6Y.js.map → chunk.7GT5LOI3.js.map} +1 -1
- package/dist/esm/chunks/chunk.7JTKKFL4.js +7 -0
- package/dist/esm/chunks/{chunk.GWNR3UUX.js.map → chunk.7JTKKFL4.js.map} +1 -1
- package/dist/esm/chunks/chunk.7NXPOEXV.js +7 -0
- package/dist/esm/chunks/{chunk.7UAH67PT.js.map → chunk.7NXPOEXV.js.map} +1 -1
- package/dist/esm/chunks/chunk.7TQYFMM4.js +7 -0
- package/dist/esm/chunks/{chunk.WSH4S3GM.js.map → chunk.7TQYFMM4.js.map} +1 -1
- package/dist/esm/chunks/chunk.7WWP6WI6.js +7 -0
- package/dist/esm/chunks/chunk.7WWP6WI6.js.map +7 -0
- package/dist/esm/chunks/chunk.7ZS4N2FT.js +8 -0
- package/dist/esm/chunks/{chunk.WIYLQTSX.js.map → chunk.7ZS4N2FT.js.map} +1 -1
- package/dist/esm/chunks/chunk.A23NSEWA.js +7 -0
- package/dist/esm/chunks/{chunk.KZATVOA6.js.map → chunk.A23NSEWA.js.map} +1 -1
- package/dist/esm/chunks/chunk.A6I4EIPW.js +7 -0
- package/dist/esm/chunks/{chunk.L4OUV7W6.js.map → chunk.A6I4EIPW.js.map} +1 -1
- package/dist/esm/chunks/chunk.AABG6MSC.js +7 -0
- package/dist/esm/chunks/chunk.AABG6MSC.js.map +7 -0
- package/dist/esm/chunks/chunk.AFZB3MG5.js +7 -0
- package/dist/esm/chunks/{chunk.UQ3QTUUB.js.map → chunk.AFZB3MG5.js.map} +1 -1
- package/dist/esm/chunks/chunk.AHOQXJRN.js +7 -0
- package/dist/esm/chunks/{chunk.S3UVF647.js.map → chunk.AHOQXJRN.js.map} +1 -1
- package/dist/esm/chunks/chunk.AJJILT3A.js +6 -0
- package/dist/esm/chunks/{chunk.LM5TVNZY.js.map → chunk.AJJILT3A.js.map} +0 -0
- package/dist/esm/chunks/chunk.AMFXGOSA.js +7 -0
- package/dist/esm/chunks/{chunk.PBGL3BRX.js.map → chunk.AMFXGOSA.js.map} +1 -1
- package/dist/esm/chunks/chunk.AWCBH5KW.js +7 -0
- package/dist/esm/chunks/{chunk.RV3E762Y.js.map → chunk.AWCBH5KW.js.map} +1 -1
- package/dist/esm/chunks/chunk.B3IJU6XJ.js +7 -0
- package/dist/esm/chunks/{chunk.MMIZOYAS.js.map → chunk.B3IJU6XJ.js.map} +1 -1
- package/dist/esm/chunks/chunk.B5ABD4CZ.js +7 -0
- package/dist/esm/chunks/{chunk.WDD2GTIH.js.map → chunk.B5ABD4CZ.js.map} +1 -1
- package/dist/esm/chunks/chunk.BCUBTR5O.js +7 -0
- package/dist/esm/chunks/{chunk.3EHQ3YHJ.js.map → chunk.BCUBTR5O.js.map} +1 -1
- package/dist/esm/chunks/chunk.BSZ2LBJX.js +7 -0
- package/dist/esm/chunks/{chunk.35U3UPDV.js.map → chunk.BSZ2LBJX.js.map} +1 -1
- package/dist/esm/chunks/chunk.CSOY4C7A.js +7 -0
- package/dist/esm/chunks/{chunk.KNR5DXE4.js.map → chunk.CSOY4C7A.js.map} +1 -1
- package/dist/esm/chunks/chunk.CV5E5W6I.js +7 -0
- package/dist/esm/chunks/{chunk.YL2NAVJW.js.map → chunk.CV5E5W6I.js.map} +2 -2
- package/dist/esm/chunks/chunk.D3DLVPPE.js +7 -0
- package/dist/esm/chunks/{chunk.5U6ZT6MC.js.map → chunk.D3DLVPPE.js.map} +1 -1
- package/dist/esm/chunks/chunk.D4SNVKDA.js +14 -0
- package/dist/esm/chunks/{chunk.BYN27JXZ.js.map → chunk.D4SNVKDA.js.map} +1 -1
- package/dist/esm/chunks/chunk.DGDT4UQT.js +7 -0
- package/dist/esm/chunks/{chunk.IBED5TWL.js.map → chunk.DGDT4UQT.js.map} +1 -1
- package/dist/esm/chunks/chunk.DGOV5RDW.js +29 -0
- package/dist/esm/chunks/{chunk.TYU4RLZG.js.map → chunk.DGOV5RDW.js.map} +1 -1
- package/dist/esm/chunks/chunk.DGQAYNAF.js +7 -0
- package/dist/esm/chunks/{chunk.GHZ75UPO.js.map → chunk.DGQAYNAF.js.map} +1 -1
- package/dist/esm/chunks/chunk.DIYJJHWP.js +7 -0
- package/dist/esm/chunks/{chunk.THKWQXBJ.js.map → chunk.DIYJJHWP.js.map} +1 -1
- package/dist/esm/chunks/chunk.DJSOBAWA.js +7 -0
- package/dist/esm/chunks/{chunk.67B6JDOJ.js.map → chunk.DJSOBAWA.js.map} +1 -1
- package/dist/esm/chunks/chunk.DRFU6POI.js +7 -0
- package/dist/esm/chunks/{chunk.DLF5JAQO.js.map → chunk.DRFU6POI.js.map} +2 -2
- package/dist/esm/chunks/chunk.DVYJDQ55.js +7 -0
- package/dist/esm/chunks/chunk.DVYJDQ55.js.map +7 -0
- package/dist/esm/chunks/chunk.E37HEAJ5.js +7 -0
- package/dist/esm/chunks/{chunk.2NMHSTAO.js.map → chunk.E37HEAJ5.js.map} +3 -3
- package/dist/esm/chunks/chunk.E43TT4RI.js +7 -0
- package/dist/esm/chunks/{chunk.SNAZ6JSS.js.map → chunk.E43TT4RI.js.map} +1 -1
- package/dist/esm/chunks/chunk.EC6JSIQW.js +7 -0
- package/dist/esm/chunks/{chunk.EY57VTRF.js.map → chunk.EC6JSIQW.js.map} +1 -1
- package/dist/esm/chunks/chunk.EM3OQRZP.js +7 -0
- package/dist/esm/chunks/chunk.EM3OQRZP.js.map +7 -0
- package/dist/esm/chunks/chunk.ESW45SN4.js +7 -0
- package/dist/esm/chunks/chunk.ESW45SN4.js.map +7 -0
- package/dist/esm/chunks/chunk.F5I55MXD.js +7 -0
- package/dist/esm/chunks/chunk.F5I55MXD.js.map +7 -0
- package/dist/esm/chunks/chunk.G5BCWBD5.js +7 -0
- package/dist/esm/chunks/{chunk.EBC2HGO3.js.map → chunk.G5BCWBD5.js.map} +1 -1
- package/dist/esm/chunks/chunk.G76HB2FK.js +7 -0
- package/dist/esm/chunks/{chunk.MEFT5FQC.js.map → chunk.G76HB2FK.js.map} +1 -1
- package/dist/esm/chunks/chunk.GP7WDYWQ.js +7 -0
- package/dist/esm/chunks/chunk.GP7WDYWQ.js.map +7 -0
- package/dist/esm/chunks/chunk.GVQVA7P3.js +7 -0
- package/dist/esm/chunks/{chunk.6EGTLHJS.js.map → chunk.GVQVA7P3.js.map} +2 -2
- package/dist/esm/chunks/chunk.HN4PXH3D.js +7 -0
- package/dist/esm/chunks/{chunk.K2PCTUVN.js.map → chunk.HN4PXH3D.js.map} +1 -1
- package/dist/esm/chunks/chunk.I33ZJKOX.js +7 -0
- package/dist/esm/chunks/{chunk.TM46MNYN.js.map → chunk.I33ZJKOX.js.map} +1 -1
- package/dist/esm/chunks/chunk.IBQVV4HR.js +7 -0
- package/dist/esm/chunks/{chunk.MBZLA635.js.map → chunk.IBQVV4HR.js.map} +2 -2
- package/dist/esm/chunks/chunk.IGMTMR3D.js +7 -0
- package/dist/esm/chunks/{chunk.RD4RIFOZ.js.map → chunk.IGMTMR3D.js.map} +1 -1
- package/dist/esm/chunks/chunk.IJIKFXUT.js +7 -0
- package/dist/esm/chunks/{chunk.K7OLG7CS.js.map → chunk.IJIKFXUT.js.map} +1 -1
- package/dist/esm/chunks/chunk.IMK2LFWR.js +7 -0
- package/dist/esm/chunks/{chunk.Q4YMHFRY.js.map → chunk.IMK2LFWR.js.map} +1 -1
- package/dist/esm/chunks/chunk.J6ERQLHJ.js +7 -0
- package/dist/esm/chunks/chunk.J6ERQLHJ.js.map +7 -0
- package/dist/esm/chunks/chunk.JXQZMASB.js +7 -0
- package/dist/esm/chunks/{chunk.QYWAZCBX.js.map → chunk.JXQZMASB.js.map} +1 -1
- package/dist/esm/chunks/chunk.K43ZNKT2.js +7 -0
- package/dist/esm/chunks/{chunk.7FWTBD6Y.js.map → chunk.K43ZNKT2.js.map} +1 -1
- package/dist/esm/chunks/chunk.K753A3KI.js +29 -0
- package/dist/esm/chunks/{chunk.ZXIDTDRC.js.map → chunk.K753A3KI.js.map} +1 -1
- package/dist/esm/chunks/chunk.KLHXGSZU.js +7 -0
- package/dist/esm/chunks/{chunk.VXVE7KEM.js.map → chunk.KLHXGSZU.js.map} +1 -1
- package/dist/esm/chunks/chunk.KZHMDZVS.js +29 -0
- package/dist/esm/chunks/{chunk.ITQ55IPH.js.map → chunk.KZHMDZVS.js.map} +1 -1
- package/dist/esm/chunks/chunk.LZMYHIO2.js +7 -0
- package/dist/esm/chunks/{chunk.GS2AXUCN.js.map → chunk.LZMYHIO2.js.map} +1 -1
- package/dist/esm/chunks/chunk.MCIQXNKY.js +7 -0
- package/dist/esm/chunks/chunk.MCIQXNKY.js.map +7 -0
- package/dist/esm/chunks/chunk.MGTNCCW3.js +7 -0
- package/dist/esm/chunks/{chunk.KCVJDJ6K.js.map → chunk.MGTNCCW3.js.map} +1 -1
- package/dist/esm/chunks/chunk.MIYZJUXH.js +7 -0
- package/dist/esm/chunks/{chunk.WT4W2IFT.js.map → chunk.MIYZJUXH.js.map} +1 -1
- package/dist/esm/chunks/chunk.MTMZFAWU.js +7 -0
- package/dist/esm/chunks/chunk.MTMZFAWU.js.map +7 -0
- package/dist/esm/chunks/chunk.NEGJYSPB.js +7 -0
- package/dist/esm/chunks/chunk.NEGJYSPB.js.map +7 -0
- package/dist/esm/chunks/chunk.NGIBMR3Q.js +7 -0
- package/dist/esm/chunks/{chunk.4PF7WRP4.js.map → chunk.NGIBMR3Q.js.map} +1 -1
- package/dist/esm/chunks/chunk.NJHQA266.js +7 -0
- package/dist/esm/chunks/chunk.NJHQA266.js.map +7 -0
- package/dist/esm/chunks/chunk.O3G6ZLJN.js +7 -0
- package/dist/esm/chunks/{chunk.4WLVFWKI.js.map → chunk.O3G6ZLJN.js.map} +1 -1
- package/dist/esm/chunks/chunk.OAP3JDBS.js +12 -0
- package/dist/esm/chunks/chunk.OAP3JDBS.js.map +7 -0
- package/dist/esm/chunks/chunk.OHCHNL3V.js +7 -0
- package/dist/esm/chunks/{chunk.HASAPJMX.js.map → chunk.OHCHNL3V.js.map} +1 -1
- package/dist/esm/chunks/chunk.OOBE3XRM.js +29 -0
- package/dist/esm/chunks/{chunk.HMM7PGGZ.js.map → chunk.OOBE3XRM.js.map} +1 -1
- package/dist/esm/chunks/chunk.OUEF6VQ6.js +7 -0
- package/dist/esm/chunks/{chunk.OXS2O7RG.js.map → chunk.OUEF6VQ6.js.map} +2 -2
- package/dist/esm/chunks/chunk.PBTGGYKX.js +29 -0
- package/dist/esm/chunks/{chunk.V2ELLBDP.js.map → chunk.PBTGGYKX.js.map} +1 -1
- package/dist/esm/chunks/chunk.PYG4YVBA.js +73 -0
- package/dist/esm/chunks/chunk.PYG4YVBA.js.map +7 -0
- package/dist/esm/chunks/chunk.QJPH24V4.js +7 -0
- package/dist/esm/chunks/{chunk.GXTNND2M.js.map → chunk.QJPH24V4.js.map} +1 -1
- package/dist/esm/chunks/chunk.QXLPBYMX.js +7 -0
- package/dist/esm/chunks/{chunk.56BNM7F2.js.map → chunk.QXLPBYMX.js.map} +1 -1
- package/dist/esm/chunks/chunk.QZHEP4X2.js +29 -0
- package/dist/esm/chunks/{chunk.5VKAVHLM.js.map → chunk.QZHEP4X2.js.map} +1 -1
- package/dist/esm/chunks/chunk.R46EDURP.js +7 -0
- package/dist/esm/chunks/{chunk.JKC5PU23.js.map → chunk.R46EDURP.js.map} +1 -1
- package/dist/esm/chunks/chunk.R4NDFXVA.js +7 -0
- package/dist/esm/chunks/{chunk.4JURZYE4.js.map → chunk.R4NDFXVA.js.map} +1 -1
- package/dist/esm/chunks/chunk.RS5NH2NG.js +7 -0
- package/dist/esm/chunks/{chunk.PKZ43JNW.js.map → chunk.RS5NH2NG.js.map} +2 -2
- package/dist/esm/chunks/chunk.RZL6S3K3.js +7 -0
- package/dist/esm/chunks/chunk.RZL6S3K3.js.map +7 -0
- package/dist/esm/chunks/chunk.SFFYXKJW.js +7 -0
- package/dist/esm/chunks/{chunk.MUP3NY6M.js.map → chunk.SFFYXKJW.js.map} +2 -2
- package/dist/esm/chunks/chunk.SHT6BCLY.js +7 -0
- package/dist/esm/chunks/{chunk.BLZJIYMG.js.map → chunk.SHT6BCLY.js.map} +1 -1
- package/dist/esm/chunks/chunk.SNGELGOD.js +7 -0
- package/dist/esm/chunks/{chunk.5OYAJ36F.js.map → chunk.SNGELGOD.js.map} +1 -1
- package/dist/esm/chunks/{chunk.LCWRP2UI.js → chunk.STS5TIUV.js} +2 -32
- package/dist/esm/chunks/chunk.STS5TIUV.js.map +7 -0
- package/dist/esm/chunks/chunk.SVGEVCXA.js +7 -0
- package/dist/esm/chunks/{chunk.VHO7NUMI.js.map → chunk.SVGEVCXA.js.map} +1 -1
- package/dist/esm/chunks/chunk.UNTTQM6V.js +7 -0
- package/dist/esm/chunks/chunk.UNTTQM6V.js.map +7 -0
- package/dist/esm/chunks/chunk.URBXDOF7.js +7 -0
- package/dist/esm/chunks/{chunk.ELAJS33V.js.map → chunk.URBXDOF7.js.map} +1 -1
- package/dist/esm/chunks/chunk.UUX4QJ4D.js +7 -0
- package/dist/esm/chunks/{chunk.BKMWXPAS.js.map → chunk.UUX4QJ4D.js.map} +1 -1
- package/dist/esm/chunks/chunk.VEVOKTUX.js +7 -0
- package/dist/esm/chunks/{chunk.UPW5HUKB.js.map → chunk.VEVOKTUX.js.map} +1 -1
- package/dist/esm/chunks/chunk.VLTJFKGZ.js +7 -0
- package/dist/esm/chunks/{chunk.NX5SKZLU.js.map → chunk.VLTJFKGZ.js.map} +1 -1
- package/dist/esm/chunks/chunk.VMWS5OOZ.js +7 -0
- package/dist/esm/chunks/{chunk.QXZZ2MTF.js.map → chunk.VMWS5OOZ.js.map} +1 -1
- package/dist/esm/chunks/chunk.W7UTHKBF.js +7 -0
- package/dist/esm/chunks/chunk.W7UTHKBF.js.map +7 -0
- package/dist/esm/chunks/chunk.WAEWHBHE.js +7 -0
- package/dist/esm/chunks/{chunk.LK2DN5KX.js.map → chunk.WAEWHBHE.js.map} +1 -1
- package/dist/esm/chunks/chunk.WGE5R5JK.js +7 -0
- package/dist/esm/chunks/chunk.WGE5R5JK.js.map +7 -0
- package/dist/esm/chunks/chunk.WKKNDQYZ.js +7 -0
- package/dist/esm/chunks/chunk.WKKNDQYZ.js.map +7 -0
- package/dist/esm/chunks/chunk.WMO47F6Z.js +7 -0
- package/dist/esm/chunks/{chunk.CLEUHAZ6.js.map → chunk.WMO47F6Z.js.map} +1 -1
- package/dist/esm/chunks/{chunk.IUNON3UL.js → chunk.WNOSTPQQ.js} +2 -253
- package/dist/esm/chunks/{chunk.IUNON3UL.js.map → chunk.WNOSTPQQ.js.map} +1 -1
- package/dist/esm/chunks/chunk.WSGJIPQJ.js +7 -0
- package/dist/esm/chunks/{chunk.J5NUYQ4D.js.map → chunk.WSGJIPQJ.js.map} +1 -1
- package/dist/esm/chunks/chunk.WYVYTAFS.js +7 -0
- package/dist/esm/chunks/chunk.WYVYTAFS.js.map +7 -0
- package/dist/esm/chunks/chunk.WZRXUTYC.js +7 -0
- package/dist/esm/chunks/{chunk.2WBHHTUM.js.map → chunk.WZRXUTYC.js.map} +1 -1
- package/dist/esm/chunks/chunk.X2RP4QW3.js +6 -0
- package/dist/esm/chunks/chunk.X2RP4QW3.js.map +7 -0
- package/dist/esm/chunks/chunk.X77WVI2H.js +7 -0
- package/dist/esm/chunks/{chunk.ANME7BKM.js.map → chunk.X77WVI2H.js.map} +1 -1
- package/dist/esm/chunks/chunk.XURVHDKR.js +7 -0
- package/dist/esm/chunks/{chunk.3QXCVTCP.js.map → chunk.XURVHDKR.js.map} +1 -1
- package/dist/esm/chunks/chunk.XXA6KNXT.js +7 -0
- package/dist/esm/chunks/{chunk.I7BQUB7Z.js.map → chunk.XXA6KNXT.js.map} +1 -1
- package/dist/esm/chunks/chunk.XYBFFTXS.js +29 -0
- package/dist/esm/chunks/{chunk.WNVZQDNS.js.map → chunk.XYBFFTXS.js.map} +1 -1
- package/dist/esm/chunks/chunk.YFIDBZ7V.js +7 -0
- package/dist/esm/chunks/{chunk.ZLF2G3YT.js.map → chunk.YFIDBZ7V.js.map} +1 -1
- package/dist/esm/chunks/chunk.YHHIPP2F.js +7 -0
- package/dist/esm/chunks/{chunk.QHHYCB7N.js.map → chunk.YHHIPP2F.js.map} +1 -1
- package/dist/esm/chunks/chunk.ZHCQBWAG.js +7 -0
- package/dist/esm/chunks/{chunk.BEAJZPWS.js.map → chunk.ZHCQBWAG.js.map} +1 -1
- package/dist/esm/circular-progress/index.js +1 -22
- package/dist/esm/color-picker/index.js +1 -44
- package/dist/esm/core/base/index.js +1 -15
- package/dist/esm/core/delegates/index.js +1 -14
- package/dist/esm/core/index.js +1 -83
- package/dist/esm/core/mask/index.js +1 -20
- package/dist/esm/core/utils/index.js +1 -46
- package/dist/esm/date-picker/index.js +1 -57
- package/dist/esm/date-range-picker/index.js +1 -59
- package/dist/esm/dialog/index.js +1 -39
- package/dist/esm/divider/index.js +1 -16
- package/dist/esm/drawer/base/index.js +1 -20
- package/dist/esm/drawer/drawer/index.js +1 -20
- package/dist/esm/drawer/index.js +1 -51
- package/dist/esm/drawer/mini-drawer/index.js +1 -20
- package/dist/esm/drawer/modal-drawer/index.js +1 -25
- package/dist/esm/expansion-panel/index.js +1 -33
- package/dist/esm/file-picker/index.js +1 -36
- package/dist/esm/floating-action-button/index.js +1 -23
- package/dist/esm/floating-label/index.js +1 -17
- package/dist/esm/icon/index.js +1 -48
- package/dist/esm/icon-button/index.js +1 -32
- package/dist/esm/index.js +1 -1275
- package/dist/esm/inline-message/index.js +1 -16
- package/dist/esm/keyboard-shortcut/index.js +1 -35
- package/dist/esm/label-value/index.js +1 -26
- package/dist/esm/linear-progress/index.js +1 -18
- package/dist/esm/list/index.js +1 -38
- package/dist/esm/list/list/index.js +1 -27
- package/dist/esm/list/list-item/index.js +1 -25
- package/dist/esm/list-dropdown/index.js +1 -50
- package/dist/esm/menu/index.js +1 -48
- package/dist/esm/open-icon/index.js +1 -32
- package/dist/esm/page-state/index.js +1 -16
- package/dist/esm/paginator/index.js +1 -63
- package/dist/esm/popup/index.js +1 -25
- package/dist/esm/product-icon/index.js +1 -23
- package/dist/esm/profile-card/index.js +1 -33
- package/dist/esm/quantity-field/index.js +1 -41
- package/dist/esm/radio/index.js +1 -20
- package/dist/esm/ripple/index.js +1 -26
- package/dist/esm/scaffold/index.js +1 -16
- package/dist/esm/select/core/index.js +1 -55
- package/dist/esm/select/index.js +1 -109
- package/dist/esm/select/option/index.js +1 -22
- package/dist/esm/select/option-group/index.js +1 -16
- package/dist/esm/select/select/index.js +1 -58
- package/dist/esm/select/select-dropdown/index.js +1 -54
- package/dist/esm/skeleton/index.js +1 -16
- package/dist/esm/slider/index.js +1 -30
- package/dist/esm/split-view/core/index.js +7 -0
- package/dist/esm/split-view/core/index.js.map +7 -0
- package/dist/esm/split-view/index.js +7 -0
- package/dist/esm/split-view/index.js.map +7 -0
- package/dist/esm/split-view/split-view/index.js +7 -0
- package/dist/esm/split-view/split-view/index.js.map +7 -0
- package/dist/esm/split-view/split-view-panel/index.js +7 -0
- package/dist/esm/split-view/split-view-panel/index.js.map +7 -0
- package/dist/esm/stepper/index.js +1 -50
- package/dist/esm/stepper/step/index.js +1 -35
- package/dist/esm/stepper/stepper/index.js +1 -38
- package/dist/esm/switch/index.js +1 -29
- package/dist/esm/table/index.js +1 -52
- package/dist/esm/tabs/index.js +1 -56
- package/dist/esm/tabs/tab/index.js +1 -27
- package/dist/esm/tabs/tab-bar/index.js +1 -42
- package/dist/esm/text-field/index.js +1 -33
- package/dist/esm/theme/index.js +1 -11
- package/dist/esm/time-picker/index.js +1 -87
- package/dist/esm/toast/index.js +1 -37
- package/dist/esm/toolbar/index.js +1 -16
- package/dist/esm/tooltip/index.js +1 -28
- package/dist/esm/utils/index.js +1 -11
- package/dist/esm/view-switcher/index.js +1 -34
- package/dist/esm/view-switcher/view/index.js +1 -16
- package/dist/forge.css +1 -1
- package/dist/table/forge-table.css +1 -1
- package/esm/app-bar/app-bar.d.ts +3 -3
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +6 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +30 -12
- package/esm/app-bar/profile-button/app-bar-profile-button-constants.d.ts +4 -0
- package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +2 -0
- package/esm/app-bar/profile-button/app-bar-profile-button-foundation.d.ts +8 -0
- package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +22 -0
- package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +4 -0
- package/esm/app-bar/profile-button/app-bar-profile-button.js +14 -0
- package/esm/autocomplete/autocomplete-adapter.d.ts +2 -0
- package/esm/autocomplete/autocomplete-adapter.js +4 -0
- package/esm/autocomplete/autocomplete-foundation.d.ts +15 -16
- package/esm/autocomplete/autocomplete-foundation.js +21 -13
- package/esm/autocomplete/autocomplete.d.ts +9 -9
- package/esm/bottom-sheet/bottom-sheet-adapter.js +1 -1
- package/esm/calendar/calendar-foundation.d.ts +14 -14
- package/esm/calendar/calendar-foundation.js +5 -5
- package/esm/calendar/calendar-utils.d.ts +1 -1
- package/esm/calendar/calendar-utils.js +1 -1
- package/esm/calendar/calendar.d.ts +7 -7
- package/esm/calendar/core/calendar-base.d.ts +7 -7
- package/esm/chip-field/chip-field-adapter.d.ts +1 -1
- package/esm/chip-field/chip-field-adapter.js +2 -2
- package/esm/chip-field/chip-field.js +1 -1
- package/esm/chips/chip/chip-foundation.d.ts +1 -1
- package/esm/chips/chip/chip.d.ts +2 -2
- package/esm/chips/chip/chip.js +1 -1
- package/esm/color-picker/color-picker-foundation.d.ts +12 -12
- package/esm/color-picker/color-picker-foundation.js +1 -1
- package/esm/color-picker/color-picker.d.ts +8 -8
- package/esm/core/utils/date-utils.d.ts +1 -1
- package/esm/core/utils/event-utils.d.ts +1 -0
- package/esm/core/utils/event-utils.js +3 -0
- package/esm/core/utils/utils.d.ts +36 -0
- package/esm/core/utils/utils.js +57 -0
- package/esm/date-picker/base/base-date-picker-adapter.d.ts +8 -8
- package/esm/date-picker/base/base-date-picker-constants.d.ts +5 -5
- package/esm/date-picker/base/base-date-picker-foundation.d.ts +21 -21
- package/esm/date-picker/base/base-date-picker.d.ts +8 -8
- package/esm/date-picker/date-picker-foundation.d.ts +6 -6
- package/esm/date-picker/date-picker-foundation.js +3 -1
- package/esm/date-picker/date-picker.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker-foundation.d.ts +11 -11
- package/esm/date-range-picker/date-range-picker.d.ts +4 -4
- package/esm/dialog/dialog-adapter.js +2 -2
- package/esm/dialog/dialog-foundation.d.ts +6 -6
- package/esm/dialog/dialog-foundation.js +1 -1
- package/esm/dialog/dialog.d.ts +4 -4
- package/esm/field/field-adapter.d.ts +4 -4
- package/esm/field/field-adapter.js +4 -13
- package/esm/field/field-foundation.js +2 -2
- package/esm/file-picker/file-picker-adapter.d.ts +4 -4
- package/esm/file-picker/file-picker-foundation.d.ts +9 -9
- package/esm/file-picker/file-picker.d.ts +6 -6
- package/esm/floating-label/floating-label-adapter.js +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +3 -0
- package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +3 -3
- package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +0 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-utils.d.ts +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-utils.js +5 -5
- package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +6 -2
- package/esm/keyboard-shortcut/keyboard-shortcut.js +7 -0
- package/esm/menu/menu.d.ts +2 -2
- package/esm/paginator/paginator-foundation.js +15 -12
- package/esm/popup/popup.d.ts +3 -3
- package/esm/profile-card/profile-card-adapter.d.ts +4 -0
- package/esm/profile-card/profile-card-adapter.js +6 -0
- package/esm/profile-card/profile-card-constants.d.ts +4 -0
- package/esm/profile-card/profile-card-constants.js +5 -1
- package/esm/profile-card/profile-card-foundation.d.ts +6 -0
- package/esm/profile-card/profile-card-foundation.js +22 -0
- package/esm/profile-card/profile-card.d.ts +4 -0
- package/esm/profile-card/profile-card.js +15 -1
- package/esm/quantity-field/quantity-field-adapter.d.ts +0 -2
- package/esm/quantity-field/quantity-field-adapter.js +2 -14
- package/esm/quantity-field/quantity-field-foundation.js +0 -1
- package/esm/quantity-field/quantity-field.js +1 -1
- package/esm/select/select/select.js +1 -1
- package/esm/split-view/core/index.d.ts +6 -0
- package/esm/split-view/core/index.js +6 -0
- package/esm/split-view/core/split-view-base.d.ts +14 -0
- package/esm/split-view/core/split-view-base.js +6 -0
- package/esm/split-view/index.d.ts +8 -0
- package/esm/split-view/index.js +8 -0
- package/esm/split-view/split-view/index.d.ts +10 -0
- package/esm/split-view/split-view/index.js +14 -0
- package/esm/split-view/split-view/split-view-adapter.d.ts +29 -0
- package/esm/split-view/split-view/split-view-adapter.js +62 -0
- package/esm/split-view/split-view/split-view-constants.d.ts +41 -0
- package/esm/split-view/split-view/split-view-constants.js +40 -0
- package/esm/split-view/split-view/split-view-foundation.d.ts +86 -0
- package/esm/split-view/split-view/split-view-foundation.js +179 -0
- package/esm/split-view/split-view/split-view.d.ts +67 -0
- package/esm/split-view/split-view/split-view.js +103 -0
- package/esm/split-view/split-view-panel/index.d.ts +11 -0
- package/esm/split-view/split-view-panel/index.js +15 -0
- package/esm/split-view/split-view-panel/split-view-panel-adapter.d.ts +171 -0
- package/esm/split-view/split-view-panel/split-view-panel-adapter.js +295 -0
- package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +97 -0
- package/esm/split-view/split-view-panel/split-view-panel-constants.js +78 -0
- package/esm/split-view/split-view-panel/split-view-panel-foundation.d.ts +235 -0
- package/esm/split-view/split-view-panel/split-view-panel-foundation.js +667 -0
- package/esm/split-view/split-view-panel/split-view-panel-utils.d.ts +130 -0
- package/esm/split-view/split-view-panel/split-view-panel-utils.js +300 -0
- package/esm/split-view/split-view-panel/split-view-panel.d.ts +105 -0
- package/esm/split-view/split-view-panel/split-view-panel.js +173 -0
- package/esm/table/table-utils.d.ts +2 -2
- package/esm/table/table-utils.js +31 -15
- package/esm/table/table.d.ts +2 -2
- package/esm/text-field/text-field-adapter.d.ts +1 -1
- package/esm/text-field/text-field-adapter.js +2 -2
- package/esm/text-field/text-field.js +1 -1
- package/esm/time-picker/time-picker-foundation.d.ts +8 -8
- package/esm/time-picker/time-picker-foundation.js +4 -4
- package/esm/time-picker/time-picker-utils.d.ts +1 -1
- package/esm/time-picker/time-picker.d.ts +8 -8
- package/esm/tooltip/tooltip.d.ts +1 -1
- package/esm/view-switcher/view-switcher.d.ts +2 -2
- package/package.json +2 -2
- package/styles/chip-field/_base.scss +2 -2
- package/styles/chip-field/_selector.scss +1 -1
- package/styles/chip-field/_variables.scss +1 -1
- package/styles/chips/chip/_mixins.scss +4 -3
- package/styles/chips/chip/_variables.scss +3 -2
- package/styles/field/_base.scss +16 -4
- package/styles/field/_selector.scss +4 -4
- package/styles/quantity-field/_mixins.scss +1 -1
- package/styles/select/select/_selector.scss +1 -1
- package/styles/split-view/split-view/_mixins.scss +48 -0
- package/styles/split-view/split-view/split-view.scss +25 -0
- package/styles/split-view/split-view-panel/_mixins.scss +260 -0
- package/styles/split-view/split-view-panel/_variables.scss +7 -0
- package/styles/split-view/split-view-panel/split-view-panel.scss +23 -0
- package/styles/table/_mixins.scss +2 -0
- package/dist/esm/chunks/chunk.2MBI5DLT.js +0 -439
- package/dist/esm/chunks/chunk.2MBI5DLT.js.map +0 -7
- package/dist/esm/chunks/chunk.2NMHSTAO.js +0 -1473
- package/dist/esm/chunks/chunk.2WBHHTUM.js +0 -200
- package/dist/esm/chunks/chunk.35BJJH5E.js +0 -56
- package/dist/esm/chunks/chunk.35U3UPDV.js +0 -70
- package/dist/esm/chunks/chunk.3EHQ3YHJ.js +0 -52
- package/dist/esm/chunks/chunk.3QXCVTCP.js +0 -73
- package/dist/esm/chunks/chunk.46BED43J.js +0 -602
- package/dist/esm/chunks/chunk.46BED43J.js.map +0 -7
- package/dist/esm/chunks/chunk.4HQ5VELO.js +0 -793
- package/dist/esm/chunks/chunk.4HQ5VELO.js.map +0 -7
- package/dist/esm/chunks/chunk.4JURZYE4.js +0 -410
- package/dist/esm/chunks/chunk.4PF7WRP4.js +0 -450
- package/dist/esm/chunks/chunk.4WLVFWKI.js +0 -21
- package/dist/esm/chunks/chunk.56BNM7F2.js +0 -202
- package/dist/esm/chunks/chunk.5OYAJ36F.js +0 -21
- package/dist/esm/chunks/chunk.5U6ZT6MC.js +0 -296
- package/dist/esm/chunks/chunk.5VKAVHLM.js +0 -610
- package/dist/esm/chunks/chunk.67B6JDOJ.js +0 -654
- package/dist/esm/chunks/chunk.6EGTLHJS.js +0 -16
- package/dist/esm/chunks/chunk.6ZBFCE2A.js +0 -52
- package/dist/esm/chunks/chunk.7FWTBD6Y.js +0 -21
- package/dist/esm/chunks/chunk.7I2XNJBL.js +0 -593
- package/dist/esm/chunks/chunk.7I2XNJBL.js.map +0 -7
- package/dist/esm/chunks/chunk.7UAH67PT.js +0 -634
- package/dist/esm/chunks/chunk.ANME7BKM.js +0 -293
- package/dist/esm/chunks/chunk.BEAJZPWS.js +0 -72
- package/dist/esm/chunks/chunk.BKMWXPAS.js +0 -439
- package/dist/esm/chunks/chunk.BLZJIYMG.js +0 -55
- package/dist/esm/chunks/chunk.BVGJFMEG.js +0 -760
- package/dist/esm/chunks/chunk.BVGJFMEG.js.map +0 -7
- package/dist/esm/chunks/chunk.BYN27JXZ.js +0 -51
- package/dist/esm/chunks/chunk.CLEUHAZ6.js +0 -732
- package/dist/esm/chunks/chunk.D33KLIFD.js +0 -422
- package/dist/esm/chunks/chunk.D33KLIFD.js.map +0 -7
- package/dist/esm/chunks/chunk.DLF5JAQO.js +0 -552
- package/dist/esm/chunks/chunk.E26BROOG.js +0 -291
- package/dist/esm/chunks/chunk.EBC2HGO3.js +0 -372
- package/dist/esm/chunks/chunk.ELAJS33V.js +0 -145
- package/dist/esm/chunks/chunk.EUPO2VO2.js +0 -462
- package/dist/esm/chunks/chunk.EY57VTRF.js +0 -33
- package/dist/esm/chunks/chunk.FJJVIMZ2.js +0 -176
- package/dist/esm/chunks/chunk.FJJVIMZ2.js.map +0 -7
- package/dist/esm/chunks/chunk.FWJ7SIFA.js +0 -433
- package/dist/esm/chunks/chunk.FZ6KICMD.js +0 -297
- package/dist/esm/chunks/chunk.GHZ75UPO.js +0 -342
- package/dist/esm/chunks/chunk.GS2AXUCN.js +0 -150
- package/dist/esm/chunks/chunk.GWNR3UUX.js +0 -658
- package/dist/esm/chunks/chunk.GXTNND2M.js +0 -221
- package/dist/esm/chunks/chunk.HASAPJMX.js +0 -110
- package/dist/esm/chunks/chunk.HAWYW54W.js +0 -728
- package/dist/esm/chunks/chunk.HAWYW54W.js.map +0 -7
- package/dist/esm/chunks/chunk.HMM7PGGZ.js +0 -505
- package/dist/esm/chunks/chunk.HZISALRH.js +0 -20
- package/dist/esm/chunks/chunk.I6PJGNJS.js +0 -401
- package/dist/esm/chunks/chunk.I6PJGNJS.js.map +0 -7
- package/dist/esm/chunks/chunk.I7BQUB7Z.js +0 -212
- package/dist/esm/chunks/chunk.IBED5TWL.js +0 -649
- package/dist/esm/chunks/chunk.IGBDDH3J.js +0 -1203
- package/dist/esm/chunks/chunk.IGBDDH3J.js.map +0 -7
- package/dist/esm/chunks/chunk.IJW2YKP3.js +0 -1347
- package/dist/esm/chunks/chunk.IJW2YKP3.js.map +0 -7
- package/dist/esm/chunks/chunk.ITQ55IPH.js +0 -1335
- package/dist/esm/chunks/chunk.J5NUYQ4D.js +0 -840
- package/dist/esm/chunks/chunk.JC2PZ4TS.js +0 -463
- package/dist/esm/chunks/chunk.JC2PZ4TS.js.map +0 -7
- package/dist/esm/chunks/chunk.JKC5PU23.js +0 -42
- package/dist/esm/chunks/chunk.K2PCTUVN.js +0 -139
- package/dist/esm/chunks/chunk.K7OLG7CS.js +0 -244
- package/dist/esm/chunks/chunk.KCVJDJ6K.js +0 -105
- package/dist/esm/chunks/chunk.KNR5DXE4.js +0 -445
- package/dist/esm/chunks/chunk.KZATVOA6.js +0 -68
- package/dist/esm/chunks/chunk.L4OUV7W6.js +0 -236
- package/dist/esm/chunks/chunk.LCWRP2UI.js.map +0 -7
- package/dist/esm/chunks/chunk.LHWZ4KZU.js +0 -559
- package/dist/esm/chunks/chunk.LHWZ4KZU.js.map +0 -7
- package/dist/esm/chunks/chunk.LK2DN5KX.js +0 -72
- package/dist/esm/chunks/chunk.LM5TVNZY.js +0 -71
- package/dist/esm/chunks/chunk.LX2HDAIF.js +0 -458
- package/dist/esm/chunks/chunk.M3O5VPDD.js +0 -742
- package/dist/esm/chunks/chunk.MBZLA635.js +0 -684
- package/dist/esm/chunks/chunk.MEFT5FQC.js +0 -158
- package/dist/esm/chunks/chunk.MMIZOYAS.js +0 -147
- package/dist/esm/chunks/chunk.MUP3NY6M.js +0 -912
- package/dist/esm/chunks/chunk.NX5SKZLU.js +0 -50
- package/dist/esm/chunks/chunk.OXS2O7RG.js +0 -476
- package/dist/esm/chunks/chunk.PBGL3BRX.js +0 -27
- package/dist/esm/chunks/chunk.PKZ43JNW.js +0 -344
- package/dist/esm/chunks/chunk.PM7D2SUE.js +0 -297
- package/dist/esm/chunks/chunk.PM7D2SUE.js.map +0 -7
- package/dist/esm/chunks/chunk.PNKLV3BK.js +0 -513
- package/dist/esm/chunks/chunk.PNKLV3BK.js.map +0 -7
- package/dist/esm/chunks/chunk.Q4YMHFRY.js +0 -155
- package/dist/esm/chunks/chunk.QD7EPCL6.js +0 -144
- package/dist/esm/chunks/chunk.QD7EPCL6.js.map +0 -7
- package/dist/esm/chunks/chunk.QHHYCB7N.js +0 -56
- package/dist/esm/chunks/chunk.QWW6A7AF.js +0 -603
- package/dist/esm/chunks/chunk.QWW6A7AF.js.map +0 -7
- package/dist/esm/chunks/chunk.QXZZ2MTF.js +0 -52
- package/dist/esm/chunks/chunk.QYWAZCBX.js +0 -258
- package/dist/esm/chunks/chunk.RD4RIFOZ.js +0 -307
- package/dist/esm/chunks/chunk.RL7ZFLMG.js +0 -801
- package/dist/esm/chunks/chunk.RL7ZFLMG.js.map +0 -7
- package/dist/esm/chunks/chunk.RV3E762Y.js +0 -73
- package/dist/esm/chunks/chunk.S3UVF647.js +0 -168
- package/dist/esm/chunks/chunk.SNAZ6JSS.js +0 -22
- package/dist/esm/chunks/chunk.THKWQXBJ.js +0 -52
- package/dist/esm/chunks/chunk.TIUNGGBF.js +0 -964
- package/dist/esm/chunks/chunk.TIUNGGBF.js.map +0 -7
- package/dist/esm/chunks/chunk.TM46MNYN.js +0 -417
- package/dist/esm/chunks/chunk.TYU4RLZG.js +0 -648
- package/dist/esm/chunks/chunk.U37G47LH.js +0 -2994
- package/dist/esm/chunks/chunk.U37G47LH.js.map +0 -7
- package/dist/esm/chunks/chunk.U5ECVIX5.js +0 -561
- package/dist/esm/chunks/chunk.UFMUXBT4.js +0 -317
- package/dist/esm/chunks/chunk.UFMUXBT4.js.map +0 -7
- package/dist/esm/chunks/chunk.UPW5HUKB.js +0 -136
- package/dist/esm/chunks/chunk.UQ3QTUUB.js +0 -173
- package/dist/esm/chunks/chunk.V2ELLBDP.js +0 -1591
- package/dist/esm/chunks/chunk.V6Q2SM6Y.js +0 -187
- package/dist/esm/chunks/chunk.VHO7NUMI.js +0 -37
- package/dist/esm/chunks/chunk.VK6LIH3B.js +0 -13
- package/dist/esm/chunks/chunk.VXAPRFMK.js +0 -978
- package/dist/esm/chunks/chunk.VXAPRFMK.js.map +0 -7
- package/dist/esm/chunks/chunk.VXVE7KEM.js +0 -248
- package/dist/esm/chunks/chunk.WDD2GTIH.js +0 -73
- package/dist/esm/chunks/chunk.WIYLQTSX.js +0 -3550
- package/dist/esm/chunks/chunk.WNVZQDNS.js +0 -540
- package/dist/esm/chunks/chunk.WSH4S3GM.js +0 -507
- package/dist/esm/chunks/chunk.WT4W2IFT.js +0 -92
- package/dist/esm/chunks/chunk.XE7ZMJBZ.js +0 -2430
- package/dist/esm/chunks/chunk.XE7ZMJBZ.js.map +0 -7
- package/dist/esm/chunks/chunk.YL2NAVJW.js +0 -244
- package/dist/esm/chunks/chunk.ZLF2G3YT.js +0 -350
- package/dist/esm/chunks/chunk.ZSHQMR4O.js +0 -59
- package/dist/esm/chunks/chunk.ZXIDTDRC.js +0 -419
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/menu/menu-constants.ts", "../../src/menu/menu-adapter.ts", "../../src/menu/menu-foundation.ts", "../../src/menu/menu.ts", "../../src/menu/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { IListDropdownOption, IListDropdownOptionGroup } from '../list-dropdown';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}menu`;\n\nconst classes = {\n POPUP: 'forge-menu__popup',\n MENU: 'mdc-menu'\n};\n\nconst selectors = {\n TOGGLE: `.${COMPONENT_NAME_PREFIX}menu__toggle, [${elementName}-toggle], button, [type=button]`,\n MENU_LIST: 'forge-list'\n};\n\nconst attributes = {\n OPEN: 'open',\n PLACEMENT: 'placement',\n SELECTED_INDEX: 'selected-index',\n SELECTED_VALUE: 'selected-value',\n DENSE: 'dense',\n ICON_CLASS: 'icon-class',\n PERSIST_SELECTION: 'persist-selection',\n MODE: 'mode',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold'\n};\n\nconst events = {\n SELECT: `${elementName}-select`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n ACTIVE_CHANGE: `${elementName}-active-change`\n};\n\nconst numbers = {\n CHILD_MOUSE_LEAVE_TIMEOUT: 300,\n POPUP_MOUSE_LEAVE_TIMEOUT: 500\n};\n\nexport const MENU_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IMenuSelectEventData<T = any, K = any> {\n index: number;\n value?: T;\n parentValue?: K;\n}\n\nexport interface IMenuActiveChangeEventData {\n id: string;\n}\n\nexport interface IMenuOption<T = any> extends IListDropdownOption<T> {\n icon?: string;\n selected?: boolean;\n}\n\nexport interface IMenuOptionGroup extends IListDropdownOptionGroup {}\n\nexport type MenuOptionBuilder = (option: IMenuOption, parentElement: HTMLElement) => HTMLElement | string | void;\nexport type MenuOptionFactory = (() => IMenuOption[]) | (() => Promise<IMenuOption[]>);\nexport type MenuMode = 'click' | 'cascade';\n", "import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IMenuOption } from './index';\nimport { IMenuComponent } from './menu';\nimport { MENU_CONSTANTS, IMenuSelectEventData } from './menu-constants';\nimport { IListDropdownConfig, IListDropdown, ListDropdown } from '../list-dropdown';\nimport { IListComponent, IListItemComponent, LIST_CONSTANTS, LIST_ITEM_CONSTANTS } from '../list';\n\nexport interface IMenuAdapter extends IBaseAdapter {\n getDropdownElement(): HTMLElement | null;\n initializeTarget(): void;\n initializeAccessibility(id: string): void;\n hasTargetElement(): boolean;\n addTargetListener(event: string, callback: (event: Event) => void, bubbles?: boolean): void;\n removeTargetListener(event: string, callback: (event: Event) => void): void;\n attachMenu(config: IListDropdownConfig): void;\n detachMenu(): void;\n setOptions(options: IMenuOption[]): void;\n getActiveOptionIndex(): number;\n setActiveOption(index: number): void;\n activateFirstOption(): void;\n propagateKey(key: string): void;\n proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void;\n toggleChildMenu(index: number, open?: boolean): void;\n focusTarget(): void;\n isTargetFocused(): boolean;\n updateActiveDescendant(id: string): void;\n isOwnElement(element: Element): boolean;\n addDropdownListener(type: string, listener: (evt: any) => void): void;\n createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent;\n closeOtherChildMenus(excludeIndex?: number): void;\n setSelectedValues(values: any[]): void;\n}\n\nexport class MenuAdapter extends BaseAdapter<IMenuComponent> implements IMenuAdapter {\n private _targetElement: HTMLElement | null;\n private _listDropdown?: IListDropdown;\n private _childMenus = new Map<number, IMenuComponent>();\n\n constructor(component: IMenuComponent) {\n super(component);\n }\n\n public getDropdownElement(): HTMLElement | null {\n return this._listDropdown?.dropdownElement ?? null;\n }\n\n public hasTargetElement(): boolean {\n return !!this._targetElement;\n }\n\n public initializeTarget(): void {\n this._targetElement = this._component.querySelector(MENU_CONSTANTS.selectors.TOGGLE);\n if (!this._targetElement) {\n this._targetElement = this._component.firstElementChild as HTMLElement;\n }\n }\n\n public initializeAccessibility(id: string): void {\n if (!this._targetElement) {\n return;\n }\n\n this._targetElement.setAttribute('aria-atomic', 'true');\n this._targetElement.setAttribute('aria-live', 'assertive');\n this._targetElement.setAttribute('aria-haspopup', 'true');\n this._targetElement.setAttribute('aria-expanded', 'false');\n\n if (!this._targetElement.hasAttribute('aria-label')) {\n this._targetElement.setAttribute('aria-label', this._targetElement.textContent || '');\n }\n }\n\n public addTargetListener(event: string, callback: (event: Event) => void, bubbles = false): void {\n if (this._targetElement) {\n this._targetElement.addEventListener(event, callback, bubbles);\n }\n }\n\n public removeTargetListener(event: string, callback: (event: Event) => void): void {\n if (this._targetElement) {\n this._targetElement.removeEventListener(event, callback);\n }\n }\n\n public attachMenu(config: IListDropdownConfig): void {\n if (this._listDropdown || !this._targetElement) {\n return;\n }\n this._listDropdown = new ListDropdown(this._targetElement as HTMLElement, config);\n this._listDropdown.open();\n this._targetElement.setAttribute('aria-expanded', 'true');\n this._targetElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n }\n\n public setOptions(options: IMenuOption[]): void {\n if (this._listDropdown) {\n this._listDropdown.setOptions(options);\n }\n }\n\n public detachMenu(): void {\n if (this._targetElement) {\n this._targetElement.removeAttribute('aria-activedescendant');\n this._targetElement.removeAttribute('aria-expanded');\n this._targetElement.removeAttribute('aria-controls');\n }\n\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n }\n\n public setActiveOption(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public getActiveOptionIndex(): number {\n return this._listDropdown?.getActiveOptionIndex() ?? -1;\n }\n\n public focusTarget(): void {\n if (this._targetElement) {\n this._targetElement.focus();\n }\n }\n\n public isTargetFocused(): boolean {\n return document.activeElement === this._targetElement;\n }\n\n public updateActiveDescendant(id: string): void {\n if (!this._targetElement) {\n return;\n }\n if (id) {\n this._targetElement.setAttribute('aria-activedescendant', id);\n } else {\n this._targetElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public addDropdownListener(type: string, listener: (evt: any) => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n this._listDropdown.dropdownElement.addEventListener(type, listener);\n }\n\n public isOwnElement(el: Element): boolean {\n if (!this._targetElement || !this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._targetElement.contains(el) || !!this._listDropdown.dropdownElement.contains(el);\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void {\n if (!this.getDropdownElement()) {\n return;\n }\n const openMenu = this._getOpenChildMenu(id);\n if (openMenu) {\n openMenu.propagateKeyEvent(evt);\n }\n }\n\n public toggleChildMenu(index: number, open?: boolean): void {\n const listItems = this._getListItems();\n const listItem = listItems[index];\n const childMenu = listItem.parentElement as IMenuComponent;\n if (childMenu && childMenu.tagName.toLowerCase() === MENU_CONSTANTS.elementName) {\n if (open === undefined) {\n childMenu.open = !childMenu.open;\n } else {\n childMenu.open = open;\n }\n }\n }\n\n public createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent {\n const menu = document.createElement('forge-menu');\n menu.style.display = 'block';\n\n // Set listeners to notify the parent menu when anything important happens within a child menu that needs to be propagated to the root menu\n menu.addEventListener(MENU_CONSTANTS.events.OPEN, () => {\n this._childMenus.set(index, menu);\n openCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.CLOSE, () => {\n this._childMenus.delete(index);\n closeCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.SELECT, (evt: CustomEvent<IMenuSelectEventData>) => {\n evt.stopPropagation();\n selectCb({ ...evt.detail, parentValue });\n });\n\n return menu;\n }\n\n public closeOtherChildMenus(excludeIndex?: number): void {\n const menusToRemove: number[] = [];\n this._childMenus.forEach((menu, index) => {\n if (index !== excludeIndex) {\n menu.open = false;\n menusToRemove.push(index);\n }\n });\n menusToRemove.forEach(index => this._childMenus.delete(index));\n }\n\n public setSelectedValues(values: any[]): void {\n this._listDropdown?.setSelectedValues(values);\n }\n\n private _getOpenChildMenu(id: string): IMenuComponent | null {\n if (!this.getDropdownElement()) {\n return null;\n }\n const list = this._getOwnList(id);\n return list ? list.querySelector(`${MENU_CONSTANTS.elementName}[${MENU_CONSTANTS.attributes.OPEN}]`) : null;\n }\n\n private _getOwnList(id: string): IListComponent | null {\n const popup = this.getDropdownElement();\n if (!popup) {\n return null;\n }\n return popup.querySelector(`${LIST_CONSTANTS.elementName}[id=\"list-dropdown-list-${id}\"]`);\n }\n\n private _getListItems(): IListItemComponent[] {\n const popup = this.getDropdownElement();\n if (!popup) {\n return [];\n }\n const listElement = popup.querySelector(LIST_CONSTANTS.elementName);\n if (listElement) {\n return Array.from(listElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[];\n }\n return [];\n }\n}\n", "import { ICustomElementFoundation, isArray, randomChars } from '@tylertech/forge-core';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { CascadingListDropdownAwareFoundation, IListDropdownCascadingElementFactoryConfig, IListDropdownConfig, ListDropdownAsyncStyle, ListDropdownType } from '../list-dropdown';\nimport { isListDropdownOptionType, ListDropdownOptionType } from '../list-dropdown/list-dropdown-utils';\nimport { IPopupPosition, PopupPlacement } from '../popup';\nimport { IMenuOption } from './index';\nimport { IMenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\n\nexport interface IMenuFoundation extends ICustomElementFoundation {\n initialize(): void;\n disconnect(): void;\n onKeydown(evt: KeyboardEvent): void;\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup>;\n optionsFactory: MenuOptionFactory | undefined;\n selectedIndex: number;\n selectedValue: any;\n placement: string;\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n}\n\nexport class MenuFoundation extends CascadingListDropdownAwareFoundation<IMenuOption | IMenuOptionGroup> implements IMenuFoundation {\n private _optionsFactory: MenuOptionFactory | undefined;\n private _placement: PopupPlacement = 'bottom-start';\n private _dense = false;\n private _selectedValue: any;\n private _iconClass = ICON_CLASS_NAME;\n private _persistSelection = false;\n private _mode: MenuMode = 'click';\n private _popupOffset: IPopupPosition;\n private _optionBuilder: MenuOptionBuilder | undefined;\n private _identifier: string;\n private _clickListener: (evt: MouseEvent) => void;\n private _blurListener: (evt: MouseEvent) => void;\n private _selectListener: (value: any) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _activeChangeListener: (id: string) => void;\n \n constructor(private _adapter: IMenuAdapter) {\n super({\n popupTimeout: MENU_CONSTANTS.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,\n targetTimeout: MENU_CONSTANTS.numbers.CHILD_MOUSE_LEAVE_TIMEOUT\n });\n this._identifier = randomChars();\n this._clickListener = evt => this._onTargetClick(evt);\n this._blurListener = evt => this._onTargetBlur(evt);\n this._selectListener = value => this._handleSelectEvent(value);\n this._keydownListener = evt => this.onKeydown(evt);\n this._activeChangeListener = id => this._onActiveOptionChanged(id);\n }\n\n public initialize(): void {\n this._adapter.initializeTarget();\n this._adapter.initializeAccessibility(this._identifier);\n this._initializeInteractionListeners();\n }\n\n public disconnect(): void {\n if (this._open) {\n this._closeDropdown();\n }\n this._destroyInteractionListeners();\n }\n\n private _applyMode(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n\n if (this._mode !== 'cascade') {\n this._adapter.addTargetListener('click', this._clickListener);\n } else {\n this._attachCascadingListeners();\n }\n }\n\n private _initializeInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._applyMode();\n this._adapter.addTargetListener('keydown', this._keydownListener, true);\n this._adapter.addTargetListener('blur', this._blurListener);\n }\n\n private _destroyInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._adapter.removeTargetListener('keydown', this._clickListener);\n this._adapter.removeTargetListener('blur', this._blurListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._detachCascadingListeners();\n }\n\n protected _attachCascadingListeners(): void {\n this._adapter.addTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.addTargetListener('mouseleave', this._targetMouseLeaveListener);\n\n // We listen for document mousemove events only to track mouse coords for use when determining\n // if popups should open/close after specific delays\n this._adapter.addDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n protected _detachCascadingListeners(): void {\n this._adapter.removeTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.removeTargetListener('mouseleave', this._targetMouseLeaveListener);\n this._adapter.removeDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n private get _nonDividerOptions(): IMenuOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n\n private get _flatOptions(): IMenuOption[] {\n if (isListDropdownOptionType(this._options, ListDropdownOptionType.Group)) {\n return (this._options as IMenuOptionGroup[]).reduce((previousValue, currentValue) => previousValue.concat(currentValue.options), [] as IMenuOption[]) as IMenuOption[];\n }\n return this._options as IMenuOption[];\n }\n\n private _onTargetClick(evt: MouseEvent): void {\n if (this._open) {\n this._closeDropdown();\n return;\n }\n this.open = !this._open;\n if (this._open) {\n this._adapter.focusTarget();\n }\n }\n\n private _onTargetBlur(evt: Event): void {\n if (this._open) {\n this._closeDropdown();\n }\n }\n\n private _onActiveOptionChanged(id: string): void {\n // We need to dispatch an event when the active descendant changes to propagate that to the proper target element\n const data: IMenuActiveChangeEventData = { id };\n const canSetActiveDescendant = this._adapter.emitHostEvent(MENU_CONSTANTS.events.ACTIVE_CHANGE, data, true, true);\n if (this._mode !== 'cascade' && canSetActiveDescendant) {\n this._adapter.updateActiveDescendant(id);\n }\n }\n\n public onKeydown(evt: KeyboardEvent): void {\n // If we have any child menus open, we need to proxy the keyboard events to those and exit\n if (this._childOpen) {\n // If escape is pressed while other menus are open then we need to close everything\n if (evt.code === 'Escape') {\n evt.preventDefault();\n this._adapter.closeOtherChildMenus();\n this._closeDropdown();\n return;\n }\n this._adapter.proxyKeyboardEventToChild(evt, this._identifier);\n return;\n }\n\n switch (evt.code) {\n case 'Tab':\n if (this._open) {\n this._selectActiveOption();\n }\n break;\n case 'Escape':\n if (this._open) {\n evt.preventDefault();\n this._closeDropdown();\n }\n break;\n case 'Space':\n evt.preventDefault();\n\n if (this._open) {\n this._closeDropdown();\n } else {\n this._openDropdown();\n }\n break;\n case 'Home':\n case 'End':\n if (this._open) {\n evt.preventDefault();\n this._adapter.propagateKey(evt.code);\n }\n break;\n case 'Enter':\n if (!this._open) {\n return;\n }\n\n evt.stopImmediatePropagation();\n evt.preventDefault();\n\n this._adapter.propagateKey(evt.code);\n\n // Check if we need to toggle the child menu open state\n const activeIndex = this._adapter.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeIndex];\n if (activeOption && activeOption.options && activeOption.options.length) {\n this._adapter.toggleChildMenu(activeIndex);\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n\n evt.preventDefault();\n\n if (!this._open && evt.code === 'ArrowDown') {\n this._openDropdown();\n this._adapter.activateFirstOption();\n return;\n }\n\n this._adapter.propagateKey(evt.code);\n break;\n case 'ArrowLeft':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (this._mode === 'cascade' && this._open) {\n this._closeDropdown();\n }\n break;\n case 'ArrowRight':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (!this._open) {\n return;\n }\n const hoveredIndex = this._adapter.getActiveOptionIndex();\n const hoveredOption = this._nonDividerOptions[hoveredIndex];\n if (hoveredOption && hoveredOption.options) {\n this._adapter.toggleChildMenu(hoveredIndex, evt.code === 'ArrowRight');\n return;\n }\n break;\n }\n }\n\n private async _openMenu(): Promise<void> {\n this._open = true;\n let options: IMenuOption[] = [];\n\n if (typeof this._optionsFactory === 'function') {\n this._loadOptionsAsync();\n this._options = [];\n } else {\n if (!this._options || !this._options.length) {\n return;\n }\n options = this._options as IMenuOption[];\n }\n\n if (!this._persistSelection) {\n options.forEach(o => o.selected = false);\n }\n\n const flatOptions = this._flatOptions;\n\n // Map the old \"icon\" property to the new \"leadingIcon\" property (if exists)\n flatOptions.filter(o => o.icon).forEach(o => o.leadingIcon = o.icon);\n\n const selectedValues = this._persistSelection ? this._getSelectedValues() : [];\n\n const config: IListDropdownConfig = {\n id: this._identifier,\n type: ListDropdownType.Menu,\n options: this._options,\n selectedValues,\n iconClass: this._iconClass,\n dense: this._dense,\n multiple: false,\n popupStatic: true,\n allowBusy: true,\n asyncStyle: ListDropdownAsyncStyle.Spinner,\n optionBuilder: this._optionBuilder,\n optionLimit: this._optionLimit,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n popupPlacement: this._placement,\n activeStartIndex: this._mode === 'cascade' ? 0 : undefined,\n popupClasses: [\n MENU_CONSTANTS.classes.POPUP,\n MENU_CONSTANTS.classes.MENU,\n ...this._popupClasses as string[]\n ],\n syncWidth: this._syncPopupWidth,\n activeChangeCallback: this._activeChangeListener,\n selectCallback: this._selectListener,\n popupOffset: this._popupOffset,\n cascadingElementFactory: params => this._createCascadingElement(params)\n };\n\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.OPEN, '');\n this._adapter.attachMenu(config);\n\n // If this menu is in a hover mode, we need to listen for mouse enter/leave events to know when the user is hovering over the popup\n if (this._mode === 'cascade') {\n this._adapter.addDropdownListener('mouseenter', this._childPopupMouseEnterListener);\n this._adapter.addDropdownListener('mouseleave', this._childPopupMouseLeaveListener);\n }\n \n this._adapter.addDropdownListener(MENU_CONSTANTS.events.ACTIVE_CHANGE, (evt: CustomEvent<IMenuActiveChangeEventData>) => {\n this._onActiveOptionChanged(evt.detail.id);\n });\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.OPEN);\n }\n\n private _closeMenu(): void {\n this._open = false;\n this._childOpen = false;\n this._adapter.detachMenu();\n\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n\n this._adapter.removeHostAttribute(MENU_CONSTANTS.attributes.OPEN);\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.CLOSE);\n }\n\n private _loadOptionsAsync(): Promise<void> {\n if (!this._optionsFactory) {\n if (this._open) {\n this._closeMenu();\n }\n return Promise.resolve();\n }\n\n return Promise.resolve(this._optionsFactory())\n .then(results => {\n if (!this._persistSelection) {\n results.forEach(o => o.selected = false);\n }\n\n if (this._open) {\n if (results && isArray(results) && results.length) {\n this._options = results;\n this._adapter.setOptions(results);\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n } else if (this._open) {\n this._closeDropdown();\n }\n }\n })\n .catch(e => {\n console.error('An unexpected error ocurred while opening the menu:', e);\n if (this._open) {\n this._closeDropdown();\n }\n });\n }\n\n private _handleSelectEvent(value: any): void {\n const index = this._nonDividerOptions.findIndex(o => o.value === value);\n if (index < 0) {\n return;\n }\n this._selectOptionByIndex(index);\n }\n\n private _selectActiveOption(): void {\n const index = this._adapter.getActiveOptionIndex();\n if (index >= 0 && this._nonDividerOptions[index]) {\n this._selectOptionByIndex(index);\n }\n }\n\n private _selectOptionByIndex(index: number): void {\n const { options, value } = this._nonDividerOptions[index];\n\n // We ignore selections if the option has child options\n if (options) {\n this._adapter.setActiveOption(index);\n return;\n }\n\n this._closeDropdown();\n \n const data: IMenuSelectEventData = { index, value };\n const isCancelled = !this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data, true, true);\n if (!isCancelled) {\n this._selectedValue = this._persistSelection ? value : undefined;\n }\n }\n\n private _getSelectedValues(): any[] {\n const values = this._flatOptions.filter(o => o.selected).map(o => o.value);\n if (this._selectedValue !== undefined) {\n values.push(this._selectedValue);\n }\n return values;\n }\n\n /** Called when a child menu option is selected. */\n protected _onCascadingOptionSelected(data: IMenuSelectEventData): void {\n if (this._persistSelection) {\n this._selectedValue = data.value;\n }\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data);\n this._closeDropdown();\n }\n\n /** Called when a child menu is opened off of one of our menu options. */\n protected _onCascadingChildOpen(index: number): void {\n super._clearMouseLeaveTimeout();\n this._adapter.closeOtherChildMenus(index);\n this._childOpen = true;\n this._adapter.setActiveOption(index);\n }\n\n /** Called when a child menu is closed off of one of our menu options. */\n protected _onCascadingChildClose(): void {\n this._childOpen = false;\n }\n\n protected _closeDropdown(): void {\n this._closeMenu();\n }\n\n protected _openDropdown(): void {\n this._openMenu();\n }\n\n protected _isOwnElement(element: Element): boolean {\n return this._adapter.isOwnElement(element);\n }\n\n private _createCascadingElement({ index, options, parentValue }: IListDropdownCascadingElementFactoryConfig): HTMLElement {\n const menu = this._adapter.createChildMenu(\n index,\n parentValue,\n this._onCascadingChildOpen.bind(this),\n this._onCascadingChildClose.bind(this),\n this._onCascadingOptionSelected.bind(this)\n );\n menu.mode = 'cascade';\n menu.popupOffset = { x: 0, y: -8 };\n menu.dense = this._dense;\n menu.placement = 'right-start';\n menu.persistSelection = this._persistSelection;\n if (this._persistSelection) {\n menu.selectedValue = this._selectedValue;\n }\n menu.options = options;\n menu.optionBuilder = this._optionBuilder;\n menu.iconClass = this._iconClass;\n\n return menu;\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n value = Boolean(value);\n if (this._open !== value) {\n this._open = value;\n if (value) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n\n public set options(options: IMenuOption[]) {\n if (typeof options === 'function') {\n this.optionsFactory = options;\n } else {\n this.optionsFactory = undefined;\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n // The typical JSON.parse(JSON.stringify(object)) will not work here. If this becomes an issue we'll add a deepClone\n // function to the core library.\n this._options = options.map(o => ({ ...o }));\n \n if (this._open) {\n this._adapter.setOptions(this._options as IMenuOption[]);\n if (this._persistSelection) {\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n }\n }\n }\n }\n public get options(): IMenuOption[] {\n if (!this._options) {\n return [];\n }\n\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n // The typical JSON.parse(JSON.stringify(object)) will not work here. If this becomes an issue we'll add a deepClone\n // function to the core library.\n return this._flatOptions.map(o => ({ ...o }));\n }\n\n public set optionsFactory(factory: MenuOptionFactory | undefined) {\n this._optionsFactory = factory;\n }\n\n public set selectedIndex(value: number) {\n const option = this._nonDividerOptions[value];\n if (option && option.value !== this._selectedValue) {\n this.selectedValue = option.value;\n }\n }\n public get selectedIndex(): number {\n return this._selectedValue !== undefined ? this._nonDividerOptions.findIndex(o => o.value === this._selectedValue) : -1;\n }\n\n public set selectedValue(value: any) {\n if (this._selectedValue !== value) {\n this._selectedValue = value;\n this._adapter.setSelectedValues(this._selectedValue);\n }\n }\n public get selectedValue(): any {\n return this._selectedValue;\n }\n\n public get placement(): PopupPlacement {\n return this._placement;\n }\n public set placement(value: PopupPlacement) {\n if (this._placement !== value) {\n this._placement = value || 'bottom-start';\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.PLACEMENT, this._placement);\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n this._dense = value;\n }\n\n public get iconClass(): string {\n return this._iconClass;\n }\n public set iconClass(value: string) {\n this._iconClass = value;\n }\n\n public get persistSelection(): boolean {\n return this._persistSelection;\n }\n public set persistSelection(value: boolean) {\n if (this._persistSelection === value) {\n return;\n }\n\n this._persistSelection = value;\n this._adapter.toggleHostAttribute(MENU_CONSTANTS.attributes.PERSIST_SELECTION, this._persistSelection);\n\n if (!this._persistSelection) {\n this._flatOptions.forEach(o => o.selected = false);\n this._selectedValue = undefined;\n }\n }\n\n public get mode(): MenuMode {\n return this._mode;\n }\n public set mode(value: MenuMode) {\n if (this._mode !== value) {\n this._mode = value;\n this._destroyInteractionListeners();\n this._applyMode();\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.MODE, this._mode);\n }\n }\n\n public get popupOffset(): IPopupPosition {\n return this._popupOffset;\n }\n public set popupOffset(value: IPopupPosition) {\n this._popupOffset = value;\n }\n\n public get optionBuilder(): MenuOptionBuilder | undefined {\n return this._optionBuilder;\n }\n public set optionBuilder(cb: MenuOptionBuilder | undefined) {\n this._optionBuilder = cb;\n }\n\n public get popupElement(): HTMLElement | null {\n return this._adapter.getDropdownElement();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, ensureChildren, FoundationProperty, isDefined } from '@tylertech/forge-core';\nimport { tylIconArrowRight } from '@tylertech/tyler-icons/standard';\nimport { CircularProgressComponent } from '../circular-progress';\nimport { IconRegistry } from '../icon';\nimport { LinearProgressComponent } from '../linear-progress';\nimport { ListComponent } from '../list';\nimport { IListDropdownAware, ListDropdownAware } from '../list-dropdown/list-dropdown-aware';\nimport { IPopupPosition, PopupComponent, PopupPlacement } from '../popup';\nimport { MenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOption, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\nimport { MenuFoundation } from './menu-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:inline-block}:host([hidden]){display:none}';\n\nexport interface IMenuComponent extends IListDropdownAware {\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n selectedIndex: number;\n selectedValue: number;\n placement: PopupPlacement;\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n popupElement: HTMLElement | undefined;\n propagateKeyEvent(evt: KeyboardEvent): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-menu': IMenuComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-menu-select': CustomEvent<IMenuSelectEventData>;\n 'forge-menu-open': CustomEvent<void>;\n 'forge-menu-close': CustomEvent<void>;\n 'forge-menu-active-change': CustomEvent<IMenuActiveChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-menu>` custom element.\n * \n * @tag forge-menu\n */\n@CustomElement({\n name: MENU_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n ListComponent,\n CircularProgressComponent,\n LinearProgressComponent\n ]\n})\nexport class MenuComponent extends ListDropdownAware implements IMenuComponent {\n public static get observedAttributes(): string[] {\n return [\n MENU_CONSTANTS.attributes.OPEN,\n MENU_CONSTANTS.attributes.PLACEMENT,\n MENU_CONSTANTS.attributes.SELECTED_INDEX,\n MENU_CONSTANTS.attributes.SELECTED_VALUE,\n MENU_CONSTANTS.attributes.DENSE,\n MENU_CONSTANTS.attributes.ICON_CLASS,\n MENU_CONSTANTS.attributes.PERSIST_SELECTION,\n MENU_CONSTANTS.attributes.MODE,\n MENU_CONSTANTS.attributes.SYNC_POPUP_WIDTH,\n MENU_CONSTANTS.attributes.POPUP_CLASSES,\n MENU_CONSTANTS.attributes.OPTION_LIMIT,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD\n ];\n }\n\n private _foundation: MenuFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconArrowRight);\n this._foundation = new MenuFoundation(new MenuAdapter(this));\n attachShadowTemplate(this, template, styles);\n }\n\n public connectedCallback(): void {\n if (this.children.length) {\n this._foundation.initialize();\n } else {\n ensureChildren(this).then(() => this._foundation.initialize());\n }\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case MENU_CONSTANTS.attributes.OPEN:\n this._foundation.open = isDefined(newValue);\n break;\n case MENU_CONSTANTS.attributes.PLACEMENT:\n this._foundation.placement = newValue as PopupPlacement;\n break;\n case MENU_CONSTANTS.attributes.SELECTED_INDEX:\n this._foundation.selectedIndex = Number(newValue);\n break;\n case MENU_CONSTANTS.attributes.SELECTED_VALUE:\n this._foundation.selectedValue = newValue;\n break;\n case MENU_CONSTANTS.attributes.DENSE:\n this._foundation.dense = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.ICON_CLASS:\n this._foundation.iconClass = newValue;\n break;\n case MENU_CONSTANTS.attributes.PERSIST_SELECTION:\n this.persistSelection = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.MODE:\n this.mode = newValue as MenuMode;\n break;\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n /** Gets/sets the open state. */\n @FoundationProperty()\n public open: boolean;\n\n /** Gets/sets the array of options to display in the menu. */\n @FoundationProperty()\n public options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n\n /** Gets/sets the selected option to the index. Does not support cascading menus. */\n @FoundationProperty()\n public selectedIndex: number;\n\n /** Gets/sets the value of the option to select. */\n @FoundationProperty()\n public selectedValue: any;\n\n /** Gets/sets the menu placement (default is bottom-left). */\n @FoundationProperty()\n public placement: PopupPlacement;\n\n /** Gets/sets dense state of the list options used in the menu popup. */\n @FoundationProperty()\n public dense: boolean;\n\n /** Gets/sets the class name to use for option icons. */\n @FoundationProperty()\n public iconClass: string;\n\n /**\n * Gets/sets whether selection of menu items is persisted.\n * @deprecated Please use `<forge-select-dropdown>` for handling selection states.\n */\n @FoundationProperty()\n public persistSelection: boolean;\n\n /** Gets/sets the mode that this menu is using. */\n @FoundationProperty()\n public mode: MenuMode;\n\n /** Sets the position adustment on the internal popup element. */\n @FoundationProperty()\n public popupOffset: IPopupPosition;\n\n /** Sets the callback that will be executed for each option in the dropdown for producing custom option templates. */\n @FoundationProperty()\n public optionBuilder: MenuOptionBuilder;\n\n /** Gets/sets whether selection of menu items is persisted. */\n @FoundationProperty({ set: false })\n public popupElement: HTMLElement | undefined;\n\n /** Force propagates the key event from another element this component. */\n public propagateKeyEvent(evt: KeyboardEvent): void {\n this._foundation.onKeydown(evt);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { MenuComponent } from './menu';\n\nexport * from './menu-adapter';\nexport * from './menu-constants';\nexport * from './menu-foundation';\nexport * from './menu';\n\nexport function defineMenuComponent(): void {\n defineCustomElement(MenuComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { IListDropdownOption, IListDropdownOptionGroup } from '../list-dropdown';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}menu`;\n\nconst classes = {\n POPUP: 'forge-menu__popup',\n MENU: 'mdc-menu'\n};\n\nconst selectors = {\n TOGGLE: `.${COMPONENT_NAME_PREFIX}menu__toggle, [${elementName}-toggle], button, [type=button]`,\n MENU_LIST: 'forge-list'\n};\n\nconst attributes = {\n OPEN: 'open',\n PLACEMENT: 'placement',\n SELECTED_INDEX: 'selected-index',\n SELECTED_VALUE: 'selected-value',\n DENSE: 'dense',\n ICON_CLASS: 'icon-class',\n PERSIST_SELECTION: 'persist-selection',\n MODE: 'mode',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold'\n};\n\nconst events = {\n SELECT: `${elementName}-select`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n ACTIVE_CHANGE: `${elementName}-active-change`\n};\n\nconst numbers = {\n CHILD_MOUSE_LEAVE_TIMEOUT: 300,\n POPUP_MOUSE_LEAVE_TIMEOUT: 500\n};\n\nexport const MENU_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IMenuSelectEventData<T = any, K = any> {\n index: number;\n value?: T;\n parentValue?: K;\n}\n\nexport interface IMenuActiveChangeEventData {\n id: string;\n}\n\nexport interface IMenuOption<T = any> extends IListDropdownOption<T> {\n icon?: string;\n selected?: boolean;\n}\n\nexport interface IMenuOptionGroup extends IListDropdownOptionGroup {}\n\nexport type MenuOptionBuilder = (option: IMenuOption, parentElement: HTMLElement) => HTMLElement | string | void;\nexport type MenuOptionFactory = (() => IMenuOption[]) | (() => Promise<IMenuOption[]>);\nexport type MenuMode = 'click' | 'cascade';\n", "import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IMenuOption } from './index';\nimport { IMenuComponent } from './menu';\nimport { MENU_CONSTANTS, IMenuSelectEventData } from './menu-constants';\nimport { IListDropdownConfig, IListDropdown, ListDropdown } from '../list-dropdown';\nimport { IListComponent, IListItemComponent, LIST_CONSTANTS, LIST_ITEM_CONSTANTS } from '../list';\n\nexport interface IMenuAdapter extends IBaseAdapter {\n getDropdownElement(): HTMLElement | null;\n initializeTarget(): void;\n initializeAccessibility(id: string): void;\n hasTargetElement(): boolean;\n addTargetListener(event: string, callback: (event: Event) => void, bubbles?: boolean): void;\n removeTargetListener(event: string, callback: (event: Event) => void): void;\n attachMenu(config: IListDropdownConfig): void;\n detachMenu(): void;\n setOptions(options: IMenuOption[]): void;\n getActiveOptionIndex(): number;\n setActiveOption(index: number): void;\n activateFirstOption(): void;\n propagateKey(key: string): void;\n proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void;\n toggleChildMenu(index: number, open?: boolean): void;\n focusTarget(): void;\n isTargetFocused(): boolean;\n updateActiveDescendant(id: string): void;\n isOwnElement(element: Element): boolean;\n addDropdownListener(type: string, listener: (evt: any) => void): void;\n createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent;\n closeOtherChildMenus(excludeIndex?: number): void;\n setSelectedValues(values: any[]): void;\n}\n\nexport class MenuAdapter extends BaseAdapter<IMenuComponent> implements IMenuAdapter {\n private _targetElement: HTMLElement | null;\n private _listDropdown?: IListDropdown;\n private _childMenus = new Map<number, IMenuComponent>();\n\n constructor(component: IMenuComponent) {\n super(component);\n }\n\n public getDropdownElement(): HTMLElement | null {\n return this._listDropdown?.dropdownElement ?? null;\n }\n\n public hasTargetElement(): boolean {\n return !!this._targetElement;\n }\n\n public initializeTarget(): void {\n this._targetElement = this._component.querySelector(MENU_CONSTANTS.selectors.TOGGLE);\n if (!this._targetElement) {\n this._targetElement = this._component.firstElementChild as HTMLElement;\n }\n }\n\n public initializeAccessibility(id: string): void {\n if (!this._targetElement) {\n return;\n }\n\n this._targetElement.setAttribute('aria-atomic', 'true');\n this._targetElement.setAttribute('aria-live', 'assertive');\n this._targetElement.setAttribute('aria-haspopup', 'true');\n this._targetElement.setAttribute('aria-expanded', 'false');\n\n if (!this._targetElement.hasAttribute('aria-label')) {\n this._targetElement.setAttribute('aria-label', this._targetElement.textContent || '');\n }\n }\n\n public addTargetListener(event: string, callback: (event: Event) => void, bubbles = false): void {\n if (this._targetElement) {\n this._targetElement.addEventListener(event, callback, bubbles);\n }\n }\n\n public removeTargetListener(event: string, callback: (event: Event) => void): void {\n if (this._targetElement) {\n this._targetElement.removeEventListener(event, callback);\n }\n }\n\n public attachMenu(config: IListDropdownConfig): void {\n if (this._listDropdown || !this._targetElement) {\n return;\n }\n this._listDropdown = new ListDropdown(this._targetElement as HTMLElement, config);\n this._listDropdown.open();\n this._targetElement.setAttribute('aria-expanded', 'true');\n this._targetElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n }\n\n public setOptions(options: IMenuOption[]): void {\n if (this._listDropdown) {\n this._listDropdown.setOptions(options);\n }\n }\n\n public detachMenu(): void {\n if (this._targetElement) {\n this._targetElement.removeAttribute('aria-activedescendant');\n this._targetElement.removeAttribute('aria-expanded');\n this._targetElement.removeAttribute('aria-controls');\n }\n\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n }\n\n public setActiveOption(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public getActiveOptionIndex(): number {\n return this._listDropdown?.getActiveOptionIndex() ?? -1;\n }\n\n public focusTarget(): void {\n if (this._targetElement) {\n this._targetElement.focus();\n }\n }\n\n public isTargetFocused(): boolean {\n return document.activeElement === this._targetElement;\n }\n\n public updateActiveDescendant(id: string): void {\n if (!this._targetElement) {\n return;\n }\n if (id) {\n this._targetElement.setAttribute('aria-activedescendant', id);\n } else {\n this._targetElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public addDropdownListener(type: string, listener: (evt: any) => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n this._listDropdown.dropdownElement.addEventListener(type, listener);\n }\n\n public isOwnElement(el: Element): boolean {\n if (!this._targetElement || !this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._targetElement.contains(el) || !!this._listDropdown.dropdownElement.contains(el);\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void {\n if (!this.getDropdownElement()) {\n return;\n }\n const openMenu = this._getOpenChildMenu(id);\n if (openMenu) {\n openMenu.propagateKeyEvent(evt);\n }\n }\n\n public toggleChildMenu(index: number, open?: boolean): void {\n const listItems = this._getListItems();\n const listItem = listItems[index];\n const childMenu = listItem.parentElement as IMenuComponent;\n if (childMenu && childMenu.tagName.toLowerCase() === MENU_CONSTANTS.elementName) {\n if (open === undefined) {\n childMenu.open = !childMenu.open;\n } else {\n childMenu.open = open;\n }\n }\n }\n\n public createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent {\n const menu = document.createElement('forge-menu');\n menu.style.display = 'block';\n\n // Set listeners to notify the parent menu when anything important happens within a child menu that needs to be propagated to the root menu\n menu.addEventListener(MENU_CONSTANTS.events.OPEN, () => {\n this._childMenus.set(index, menu);\n openCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.CLOSE, () => {\n this._childMenus.delete(index);\n closeCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.SELECT, (evt: CustomEvent<IMenuSelectEventData>) => {\n evt.stopPropagation();\n selectCb({ ...evt.detail, parentValue });\n });\n\n return menu;\n }\n\n public closeOtherChildMenus(excludeIndex?: number): void {\n const menusToRemove: number[] = [];\n this._childMenus.forEach((menu, index) => {\n if (index !== excludeIndex) {\n menu.open = false;\n menusToRemove.push(index);\n }\n });\n menusToRemove.forEach(index => this._childMenus.delete(index));\n }\n\n public setSelectedValues(values: any[]): void {\n this._listDropdown?.setSelectedValues(values);\n }\n\n private _getOpenChildMenu(id: string): IMenuComponent | null {\n if (!this.getDropdownElement()) {\n return null;\n }\n const list = this._getOwnList(id);\n return list ? list.querySelector(`${MENU_CONSTANTS.elementName}[${MENU_CONSTANTS.attributes.OPEN}]`) : null;\n }\n\n private _getOwnList(id: string): IListComponent | null {\n const popup = this.getDropdownElement();\n if (!popup) {\n return null;\n }\n return popup.querySelector(`${LIST_CONSTANTS.elementName}[id=\"list-dropdown-list-${id}\"]`);\n }\n\n private _getListItems(): IListItemComponent[] {\n const popup = this.getDropdownElement();\n if (!popup) {\n return [];\n }\n const listElement = popup.querySelector(LIST_CONSTANTS.elementName);\n if (listElement) {\n return Array.from(listElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[];\n }\n return [];\n }\n}\n", "import { ICustomElementFoundation, isArray, randomChars } from '@tylertech/forge-core';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { CascadingListDropdownAwareFoundation, IListDropdownCascadingElementFactoryConfig, IListDropdownConfig, ListDropdownAsyncStyle, ListDropdownType } from '../list-dropdown';\nimport { isListDropdownOptionType, ListDropdownOptionType } from '../list-dropdown/list-dropdown-utils';\nimport { IPopupPosition, PopupPlacement } from '../popup';\nimport { IMenuOption } from './index';\nimport { IMenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\n\nexport interface IMenuFoundation extends ICustomElementFoundation {\n initialize(): void;\n disconnect(): void;\n onKeydown(evt: KeyboardEvent): void;\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup>;\n optionsFactory: MenuOptionFactory | undefined;\n selectedIndex: number;\n selectedValue: any;\n placement: string;\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n}\n\nexport class MenuFoundation extends CascadingListDropdownAwareFoundation<IMenuOption | IMenuOptionGroup> implements IMenuFoundation {\n private _optionsFactory: MenuOptionFactory | undefined;\n private _placement: PopupPlacement = 'bottom-start';\n private _dense = false;\n private _selectedValue: any;\n private _iconClass = ICON_CLASS_NAME;\n private _persistSelection = false;\n private _mode: MenuMode = 'click';\n private _popupOffset: IPopupPosition;\n private _optionBuilder: MenuOptionBuilder | undefined;\n private _identifier: string;\n private _clickListener: (evt: MouseEvent) => void;\n private _blurListener: (evt: MouseEvent) => void;\n private _selectListener: (value: any) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _activeChangeListener: (id: string) => void;\n \n constructor(private _adapter: IMenuAdapter) {\n super({\n popupTimeout: MENU_CONSTANTS.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,\n targetTimeout: MENU_CONSTANTS.numbers.CHILD_MOUSE_LEAVE_TIMEOUT\n });\n this._identifier = randomChars();\n this._clickListener = evt => this._onTargetClick(evt);\n this._blurListener = evt => this._onTargetBlur(evt);\n this._selectListener = value => this._handleSelectEvent(value);\n this._keydownListener = evt => this.onKeydown(evt);\n this._activeChangeListener = id => this._onActiveOptionChanged(id);\n }\n\n public initialize(): void {\n this._adapter.initializeTarget();\n this._adapter.initializeAccessibility(this._identifier);\n this._initializeInteractionListeners();\n }\n\n public disconnect(): void {\n if (this._open) {\n this._closeDropdown();\n }\n this._destroyInteractionListeners();\n }\n\n private _applyMode(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n\n if (this._mode !== 'cascade') {\n this._adapter.addTargetListener('click', this._clickListener);\n } else {\n this._attachCascadingListeners();\n }\n }\n\n private _initializeInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._applyMode();\n this._adapter.addTargetListener('keydown', this._keydownListener, true);\n this._adapter.addTargetListener('blur', this._blurListener);\n }\n\n private _destroyInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._adapter.removeTargetListener('keydown', this._clickListener);\n this._adapter.removeTargetListener('blur', this._blurListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._detachCascadingListeners();\n }\n\n protected _attachCascadingListeners(): void {\n this._adapter.addTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.addTargetListener('mouseleave', this._targetMouseLeaveListener);\n\n // We listen for document mousemove events only to track mouse coords for use when determining\n // if popups should open/close after specific delays\n this._adapter.addDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n protected _detachCascadingListeners(): void {\n this._adapter.removeTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.removeTargetListener('mouseleave', this._targetMouseLeaveListener);\n this._adapter.removeDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n private get _nonDividerOptions(): IMenuOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n\n private get _flatOptions(): IMenuOption[] {\n if (isListDropdownOptionType(this._options, ListDropdownOptionType.Group)) {\n return (this._options as IMenuOptionGroup[]).reduce((previousValue, currentValue) => previousValue.concat(currentValue.options), [] as IMenuOption[]) as IMenuOption[];\n }\n return this._options as IMenuOption[];\n }\n\n private _onTargetClick(evt: MouseEvent): void {\n if (this._open) {\n this._closeDropdown();\n return;\n }\n this.open = !this._open;\n if (this._open) {\n this._adapter.focusTarget();\n }\n }\n\n private _onTargetBlur(evt: Event): void {\n if (this._open) {\n this._closeDropdown();\n }\n }\n\n private _onActiveOptionChanged(id: string): void {\n // We need to dispatch an event when the active descendant changes to propagate that to the proper target element\n const data: IMenuActiveChangeEventData = { id };\n const canSetActiveDescendant = this._adapter.emitHostEvent(MENU_CONSTANTS.events.ACTIVE_CHANGE, data, true, true);\n if (this._mode !== 'cascade' && canSetActiveDescendant) {\n this._adapter.updateActiveDescendant(id);\n }\n }\n\n public onKeydown(evt: KeyboardEvent): void {\n // If we have any child menus open, we need to proxy the keyboard events to those and exit\n if (this._childOpen) {\n // If escape is pressed while other menus are open then we need to close everything\n if (evt.code === 'Escape') {\n evt.preventDefault();\n this._adapter.closeOtherChildMenus();\n this._closeDropdown();\n return;\n }\n this._adapter.proxyKeyboardEventToChild(evt, this._identifier);\n return;\n }\n\n switch (evt.code) {\n case 'Tab':\n if (this._open) {\n this._selectActiveOption();\n }\n break;\n case 'Escape':\n if (this._open) {\n evt.preventDefault();\n this._closeDropdown();\n }\n break;\n case 'Space':\n evt.preventDefault();\n\n if (this._open) {\n this._closeDropdown();\n } else {\n this._openDropdown();\n }\n break;\n case 'Home':\n case 'End':\n if (this._open) {\n evt.preventDefault();\n this._adapter.propagateKey(evt.code);\n }\n break;\n case 'Enter':\n if (!this._open) {\n return;\n }\n\n evt.stopImmediatePropagation();\n evt.preventDefault();\n\n this._adapter.propagateKey(evt.code);\n\n // Check if we need to toggle the child menu open state\n const activeIndex = this._adapter.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeIndex];\n if (activeOption && activeOption.options && activeOption.options.length) {\n this._adapter.toggleChildMenu(activeIndex);\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n\n evt.preventDefault();\n\n if (!this._open && evt.code === 'ArrowDown') {\n this._openDropdown();\n this._adapter.activateFirstOption();\n return;\n }\n\n this._adapter.propagateKey(evt.code);\n break;\n case 'ArrowLeft':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (this._mode === 'cascade' && this._open) {\n this._closeDropdown();\n }\n break;\n case 'ArrowRight':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (!this._open) {\n return;\n }\n const hoveredIndex = this._adapter.getActiveOptionIndex();\n const hoveredOption = this._nonDividerOptions[hoveredIndex];\n if (hoveredOption && hoveredOption.options) {\n this._adapter.toggleChildMenu(hoveredIndex, evt.code === 'ArrowRight');\n return;\n }\n break;\n }\n }\n\n private async _openMenu(): Promise<void> {\n this._open = true;\n let options: IMenuOption[] = [];\n\n if (typeof this._optionsFactory === 'function') {\n this._loadOptionsAsync();\n this._options = [];\n } else {\n if (!this._options || !this._options.length) {\n return;\n }\n options = this._options as IMenuOption[];\n }\n\n if (!this._persistSelection) {\n options.forEach(o => o.selected = false);\n }\n\n const flatOptions = this._flatOptions;\n\n // Map the old \"icon\" property to the new \"leadingIcon\" property (if exists)\n flatOptions.filter(o => o.icon).forEach(o => o.leadingIcon = o.icon);\n\n const selectedValues = this._persistSelection ? this._getSelectedValues() : [];\n\n const config: IListDropdownConfig = {\n id: this._identifier,\n type: ListDropdownType.Menu,\n options: this._options,\n selectedValues,\n iconClass: this._iconClass,\n dense: this._dense,\n multiple: false,\n popupStatic: true,\n allowBusy: true,\n asyncStyle: ListDropdownAsyncStyle.Spinner,\n optionBuilder: this._optionBuilder,\n optionLimit: this._optionLimit,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n popupPlacement: this._placement,\n activeStartIndex: this._mode === 'cascade' ? 0 : undefined,\n popupClasses: [\n MENU_CONSTANTS.classes.POPUP,\n MENU_CONSTANTS.classes.MENU,\n ...this._popupClasses as string[]\n ],\n syncWidth: this._syncPopupWidth,\n activeChangeCallback: this._activeChangeListener,\n selectCallback: this._selectListener,\n popupOffset: this._popupOffset,\n cascadingElementFactory: params => this._createCascadingElement(params)\n };\n\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.OPEN, '');\n this._adapter.attachMenu(config);\n\n // If this menu is in a hover mode, we need to listen for mouse enter/leave events to know when the user is hovering over the popup\n if (this._mode === 'cascade') {\n this._adapter.addDropdownListener('mouseenter', this._childPopupMouseEnterListener);\n this._adapter.addDropdownListener('mouseleave', this._childPopupMouseLeaveListener);\n }\n \n this._adapter.addDropdownListener(MENU_CONSTANTS.events.ACTIVE_CHANGE, (evt: CustomEvent<IMenuActiveChangeEventData>) => {\n this._onActiveOptionChanged(evt.detail.id);\n });\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.OPEN);\n }\n\n private _closeMenu(): void {\n this._open = false;\n this._childOpen = false;\n this._adapter.detachMenu();\n\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n\n this._adapter.removeHostAttribute(MENU_CONSTANTS.attributes.OPEN);\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.CLOSE);\n }\n\n private _loadOptionsAsync(): Promise<void> {\n if (!this._optionsFactory) {\n if (this._open) {\n this._closeMenu();\n }\n return Promise.resolve();\n }\n\n return Promise.resolve(this._optionsFactory())\n .then(results => {\n if (!this._persistSelection) {\n results.forEach(o => o.selected = false);\n }\n\n if (this._open) {\n if (results && isArray(results) && results.length) {\n this._options = results;\n this._adapter.setOptions(results);\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n } else if (this._open) {\n this._closeDropdown();\n }\n }\n })\n .catch(e => {\n console.error('An unexpected error ocurred while opening the menu:', e);\n if (this._open) {\n this._closeDropdown();\n }\n });\n }\n\n private _handleSelectEvent(value: any): void {\n const index = this._nonDividerOptions.findIndex(o => o.value === value);\n if (index < 0) {\n return;\n }\n this._selectOptionByIndex(index);\n }\n\n private _selectActiveOption(): void {\n const index = this._adapter.getActiveOptionIndex();\n if (index >= 0 && this._nonDividerOptions[index]) {\n this._selectOptionByIndex(index);\n }\n }\n\n private _selectOptionByIndex(index: number): void {\n const { options, value } = this._nonDividerOptions[index];\n\n // We ignore selections if the option has child options\n if (options) {\n this._adapter.setActiveOption(index);\n return;\n }\n\n this._closeDropdown();\n \n const data: IMenuSelectEventData = { index, value };\n const isCancelled = !this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data, true, true);\n if (!isCancelled) {\n this._selectedValue = this._persistSelection ? value : undefined;\n }\n }\n\n private _getSelectedValues(): any[] {\n const values = this._flatOptions.filter(o => o.selected).map(o => o.value);\n if (this._selectedValue !== undefined) {\n values.push(this._selectedValue);\n }\n return values;\n }\n\n /** Called when a child menu option is selected. */\n protected _onCascadingOptionSelected(data: IMenuSelectEventData): void {\n if (this._persistSelection) {\n this._selectedValue = data.value;\n }\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data);\n this._closeDropdown();\n }\n\n /** Called when a child menu is opened off of one of our menu options. */\n protected _onCascadingChildOpen(index: number): void {\n super._clearMouseLeaveTimeout();\n this._adapter.closeOtherChildMenus(index);\n this._childOpen = true;\n this._adapter.setActiveOption(index);\n }\n\n /** Called when a child menu is closed off of one of our menu options. */\n protected _onCascadingChildClose(): void {\n this._childOpen = false;\n }\n\n protected _closeDropdown(): void {\n this._closeMenu();\n }\n\n protected _openDropdown(): void {\n this._openMenu();\n }\n\n protected _isOwnElement(element: Element): boolean {\n return this._adapter.isOwnElement(element);\n }\n\n private _createCascadingElement({ index, options, parentValue }: IListDropdownCascadingElementFactoryConfig): HTMLElement {\n const menu = this._adapter.createChildMenu(\n index,\n parentValue,\n this._onCascadingChildOpen.bind(this),\n this._onCascadingChildClose.bind(this),\n this._onCascadingOptionSelected.bind(this)\n );\n menu.mode = 'cascade';\n menu.popupOffset = { x: 0, y: -8 };\n menu.dense = this._dense;\n menu.placement = 'right-start';\n menu.persistSelection = this._persistSelection;\n if (this._persistSelection) {\n menu.selectedValue = this._selectedValue;\n }\n menu.options = options;\n menu.optionBuilder = this._optionBuilder;\n menu.iconClass = this._iconClass;\n\n return menu;\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n value = Boolean(value);\n if (this._open !== value) {\n this._open = value;\n if (value) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n\n public set options(options: IMenuOption[]) {\n if (typeof options === 'function') {\n this.optionsFactory = options;\n } else {\n this.optionsFactory = undefined;\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n // The typical JSON.parse(JSON.stringify(object)) will not work here. If this becomes an issue we'll add a deepClone\n // function to the core library.\n this._options = options.map(o => ({ ...o }));\n \n if (this._open) {\n this._adapter.setOptions(this._options as IMenuOption[]);\n if (this._persistSelection) {\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n }\n }\n }\n }\n public get options(): IMenuOption[] {\n if (!this._options) {\n return [];\n }\n\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n // The typical JSON.parse(JSON.stringify(object)) will not work here. If this becomes an issue we'll add a deepClone\n // function to the core library.\n return this._flatOptions.map(o => ({ ...o }));\n }\n\n public set optionsFactory(factory: MenuOptionFactory | undefined) {\n this._optionsFactory = factory;\n }\n\n public set selectedIndex(value: number) {\n const option = this._nonDividerOptions[value];\n if (option && option.value !== this._selectedValue) {\n this.selectedValue = option.value;\n }\n }\n public get selectedIndex(): number {\n return this._selectedValue !== undefined ? this._nonDividerOptions.findIndex(o => o.value === this._selectedValue) : -1;\n }\n\n public set selectedValue(value: any) {\n if (this._selectedValue !== value) {\n this._selectedValue = value;\n this._adapter.setSelectedValues(this._selectedValue);\n }\n }\n public get selectedValue(): any {\n return this._selectedValue;\n }\n\n public get placement(): PopupPlacement {\n return this._placement;\n }\n public set placement(value: PopupPlacement) {\n if (this._placement !== value) {\n this._placement = value || 'bottom-start';\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.PLACEMENT, this._placement);\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n this._dense = value;\n }\n\n public get iconClass(): string {\n return this._iconClass;\n }\n public set iconClass(value: string) {\n this._iconClass = value;\n }\n\n public get persistSelection(): boolean {\n return this._persistSelection;\n }\n public set persistSelection(value: boolean) {\n if (this._persistSelection === value) {\n return;\n }\n\n this._persistSelection = value;\n this._adapter.toggleHostAttribute(MENU_CONSTANTS.attributes.PERSIST_SELECTION, this._persistSelection);\n\n if (!this._persistSelection) {\n this._flatOptions.forEach(o => o.selected = false);\n this._selectedValue = undefined;\n }\n }\n\n public get mode(): MenuMode {\n return this._mode;\n }\n public set mode(value: MenuMode) {\n if (this._mode !== value) {\n this._mode = value;\n this._destroyInteractionListeners();\n this._applyMode();\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.MODE, this._mode);\n }\n }\n\n public get popupOffset(): IPopupPosition {\n return this._popupOffset;\n }\n public set popupOffset(value: IPopupPosition) {\n this._popupOffset = value;\n }\n\n public get optionBuilder(): MenuOptionBuilder | undefined {\n return this._optionBuilder;\n }\n public set optionBuilder(cb: MenuOptionBuilder | undefined) {\n this._optionBuilder = cb;\n }\n\n public get popupElement(): HTMLElement | null {\n return this._adapter.getDropdownElement();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, ensureChildren, FoundationProperty, isDefined } from '@tylertech/forge-core';\nimport { tylIconArrowRight } from '@tylertech/tyler-icons/standard';\nimport { CircularProgressComponent } from '../circular-progress';\nimport { IconRegistry } from '../icon';\nimport { LinearProgressComponent } from '../linear-progress';\nimport { ListComponent } from '../list';\nimport { IListDropdownAware, ListDropdownAware } from '../list-dropdown/list-dropdown-aware';\nimport { IPopupPosition, PopupComponent, PopupPlacement } from '../popup';\nimport { MenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOption, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\nimport { MenuFoundation } from './menu-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:inline-block}:host([hidden]){display:none}';\n\nexport interface IMenuComponent extends IListDropdownAware {\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n selectedIndex: number;\n selectedValue: number;\n placement: PopupPlacement;\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n popupElement: HTMLElement | undefined;\n propagateKeyEvent(evt: KeyboardEvent): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-menu': IMenuComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-menu-select': CustomEvent<IMenuSelectEventData>;\n 'forge-menu-open': CustomEvent<void>;\n 'forge-menu-close': CustomEvent<void>;\n 'forge-menu-active-change': CustomEvent<IMenuActiveChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-menu>` custom element.\n * \n * @tag forge-menu\n */\n@CustomElement({\n name: MENU_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n ListComponent,\n CircularProgressComponent,\n LinearProgressComponent\n ]\n})\nexport class MenuComponent extends ListDropdownAware implements IMenuComponent {\n public static get observedAttributes(): string[] {\n return [\n MENU_CONSTANTS.attributes.OPEN,\n MENU_CONSTANTS.attributes.PLACEMENT,\n MENU_CONSTANTS.attributes.SELECTED_INDEX,\n MENU_CONSTANTS.attributes.SELECTED_VALUE,\n MENU_CONSTANTS.attributes.DENSE,\n MENU_CONSTANTS.attributes.ICON_CLASS,\n MENU_CONSTANTS.attributes.PERSIST_SELECTION,\n MENU_CONSTANTS.attributes.MODE,\n MENU_CONSTANTS.attributes.SYNC_POPUP_WIDTH,\n MENU_CONSTANTS.attributes.POPUP_CLASSES,\n MENU_CONSTANTS.attributes.OPTION_LIMIT,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD\n ];\n }\n\n private _foundation: MenuFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconArrowRight);\n this._foundation = new MenuFoundation(new MenuAdapter(this));\n attachShadowTemplate(this, template, styles);\n }\n\n public connectedCallback(): void {\n if (this.children.length) {\n this._foundation.initialize();\n } else {\n ensureChildren(this).then(() => this._foundation.initialize());\n }\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case MENU_CONSTANTS.attributes.OPEN:\n this._foundation.open = isDefined(newValue);\n break;\n case MENU_CONSTANTS.attributes.PLACEMENT:\n this._foundation.placement = newValue as PopupPlacement;\n break;\n case MENU_CONSTANTS.attributes.SELECTED_INDEX:\n this._foundation.selectedIndex = Number(newValue);\n break;\n case MENU_CONSTANTS.attributes.SELECTED_VALUE:\n this._foundation.selectedValue = newValue;\n break;\n case MENU_CONSTANTS.attributes.DENSE:\n this._foundation.dense = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.ICON_CLASS:\n this._foundation.iconClass = newValue;\n break;\n case MENU_CONSTANTS.attributes.PERSIST_SELECTION:\n this.persistSelection = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.MODE:\n this.mode = newValue as MenuMode;\n break;\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n /** Gets/sets the open state. */\n @FoundationProperty()\n public open: boolean;\n\n /** Gets/sets the array of options to display in the menu. */\n @FoundationProperty()\n public options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n\n /** Gets/sets the selected option to the index. Does not support cascading menus. */\n @FoundationProperty()\n public selectedIndex: number;\n\n /** Gets/sets the value of the option to select. */\n @FoundationProperty()\n public selectedValue: any;\n\n /** Gets/sets the menu placement (default is bottom-left). */\n @FoundationProperty()\n public placement: `${PopupPlacement}`;\n\n /** Gets/sets dense state of the list options used in the menu popup. */\n @FoundationProperty()\n public dense: boolean;\n\n /** Gets/sets the class name to use for option icons. */\n @FoundationProperty()\n public iconClass: string;\n\n /**\n * Gets/sets whether selection of menu items is persisted.\n * @deprecated Please use `<forge-select-dropdown>` for handling selection states.\n */\n @FoundationProperty()\n public persistSelection: boolean;\n\n /** Gets/sets the mode that this menu is using. */\n @FoundationProperty()\n public mode: MenuMode;\n\n /** Sets the position adustment on the internal popup element. */\n @FoundationProperty()\n public popupOffset: IPopupPosition;\n\n /** Sets the callback that will be executed for each option in the dropdown for producing custom option templates. */\n @FoundationProperty()\n public optionBuilder: MenuOptionBuilder;\n\n /** Gets the currently active popup element when the dropdown is open. */\n @FoundationProperty({ set: false })\n public popupElement: HTMLElement | undefined;\n\n /** Force propagates the key event from another element this component. */\n public propagateKeyEvent(evt: KeyboardEvent): void {\n this._foundation.onKeydown(evt);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { MenuComponent } from './menu';\n\nexport * from './menu-adapter';\nexport * from './menu-constants';\nexport * from './menu-foundation';\nexport * from './menu';\n\nexport function defineMenuComponent(): void {\n defineCustomElement(MenuComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{b as i,c as d,d as s}from"./chunk.IJIKFXUT.js";import{a,b as n}from"./chunk.BSZ2LBJX.js";import{a as o,e as t}from"./chunk.HN4PXH3D.js";import{f as e}from"./chunk.MCIQXNKY.js";var c=`${n}drawer`,l={elementName:c};var f='<template><div class="forge-drawer" part="root"><slot name="header"></slot><div class="forge-drawer__content" part="content"><slot></slot></div><slot name="footer"></slot></div></template>',b='.forge-drawer{width:256px;width:var(--forge-drawer-width,256px);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer__content{overflow-x:auto;-webkit-overflow-scrolling:"touch";display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;grid-row:2}.forge-drawer__content::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-drawer__content::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-drawer__content::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-drawer__content::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-drawer__content::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-drawer__content::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}.forge-drawer--left{border-right-width:1px;border-right-style:solid}.forge-drawer--right{border-left-width:1px;border-left-style:solid}.forge-drawer--right.forge-drawer--closing{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--right.forge-drawer--closed{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer--closing{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--closed{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer--no-transition{-webkit-transition:none!important;transition:none!important}:host{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;overflow:hidden!important}@media not all and (-webkit-min-device-pixel-ratio:0),not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){:host([open]){-webkit-transform:translateZ(0);transform:translateZ(0)}}}',r=class extends s{constructor(){super();t(this,f,b),this._foundation=new d(new i(this))}};r=e([a({name:l.elementName})],r);function E(){o(r)}export{l as a,r as b,E as c};
|
|
7
|
+
//# sourceMappingURL=chunk.SHT6BCLY.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/drawer/drawer/drawer-constants.ts", "../../src/drawer/drawer/drawer.ts", "../../src/drawer/drawer/index.ts"],
|
|
4
4
|
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}drawer`;\n\nexport const DRAWER_CONSTANTS = {\n elementName\n};\n", "import { CustomElement, attachShadowTemplate } from '@tylertech/forge-core';\nimport { DRAWER_CONSTANTS } from './drawer-constants';\nimport { BaseDrawerAdapter, BaseDrawerComponent, BaseDrawerFoundation, IBaseDrawerComponent } from '../base';\n\nconst template = '<template><div class=\\\"forge-drawer\\\" part=\\\"root\\\"><slot name=\\\"header\\\"></slot><div class=\\\"forge-drawer__content\\\" part=\\\"content\\\"><slot></slot></div><slot name=\\\"footer\\\"></slot></div></template>';\nconst styles = '.forge-drawer{width:256px;width:var(--forge-drawer-width,256px);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer__content{overflow-x:auto;-webkit-overflow-scrolling:\\\"touch\\\";display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;grid-row:2}.forge-drawer__content::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-drawer__content::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-drawer__content::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-drawer__content::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-drawer__content::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-drawer__content::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}.forge-drawer--left{border-right-width:1px;border-right-style:solid}.forge-drawer--right{border-left-width:1px;border-left-style:solid}.forge-drawer--right.forge-drawer--closing{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--right.forge-drawer--closed{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer--closing{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--closed{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer--no-transition{-webkit-transition:none!important;transition:none!important}:host{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;overflow:hidden!important}@media not all and (-webkit-min-device-pixel-ratio:0),not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){:host([open]){-webkit-transform:translateZ(0);transform:translateZ(0)}}}';\n\nexport interface IDrawerComponent extends IBaseDrawerComponent {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-drawer': IDrawerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-drawer-after-open': CustomEvent<void>;\n 'forge-drawer-after-close': CustomEvent<void>;\n }\n}\n\n/**\n * The web component class behind the `<forge-drawer>` custom element.\n * \n * @tag forge-drawer\n */\n@CustomElement({\n name: DRAWER_CONSTANTS.elementName\n})\nexport class DrawerComponent extends BaseDrawerComponent<BaseDrawerFoundation> implements IDrawerComponent {\n protected _foundation: BaseDrawerFoundation;\n \n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new BaseDrawerFoundation(new BaseDrawerAdapter(this));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DrawerComponent } from './drawer';\n\nexport * from './drawer-constants';\nexport * from './drawer';\n\nexport function defineDrawerComponent(): void {\n defineCustomElement(DrawerComponent);\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "uLAEA,GAAM,GAA2C,GAAG,UAEvC,EAAmB,CAC9B,aACF,ECFA,GAAM,GAAW,+LACX,EAAS,o/GAuBF,EAAN,aAA8B,EAAsE,CAGzG,aAAc,CACZ,MAAM,EACN,EAAqB,KAAM,EAAU,CAAM,EAC3C,KAAK,YAAc,GAAI,GAAqB,GAAI,GAAkB,IAAI,CAAC,CACzE,CACF,EARa,EAAN,GAHP,AAAC,EAAc,CACb,KAAM,EAAiB,WACzB,CAAC,GACY,GCtBN,YAAuC,CAC5C,EAAoB,CAAe,CACrC",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/chips/chip/index.ts"],
|
|
4
4
|
"sourcesContent": ["import { defineCustomElement } from '@tylertech/forge-core';\r\n\r\nimport { ChipComponent } from './chip';\r\n\r\nexport * from './chip-adapter';\r\nexport * from './chip-constants';\r\nexport * from './chip-foundation';\r\nexport * from './chip';\r\n\r\nexport function defineChipComponent(): void {\r\n defineCustomElement(ChipComponent);\r\n}\r\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "2EASO,YAAqC,CAC1C,EAAoB,CAAa,CACnC",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,37 +3,7 @@
|
|
|
3
3
|
* Copyright 2022 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
var cssPropertyNameMap = {
|
|
8
|
-
animation: {
|
|
9
|
-
prefixed: "-webkit-animation",
|
|
10
|
-
standard: "animation"
|
|
11
|
-
},
|
|
12
|
-
transform: {
|
|
13
|
-
prefixed: "-webkit-transform",
|
|
14
|
-
standard: "transform"
|
|
15
|
-
},
|
|
16
|
-
transition: {
|
|
17
|
-
prefixed: "-webkit-transition",
|
|
18
|
-
standard: "transition"
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
function isWindow(windowObj) {
|
|
22
|
-
return Boolean(windowObj.document) && typeof windowObj.document.createElement === "function";
|
|
23
|
-
}
|
|
24
|
-
function getCorrectPropertyName(windowObj, cssProperty) {
|
|
25
|
-
if (isWindow(windowObj) && cssProperty in cssPropertyNameMap) {
|
|
26
|
-
var el = windowObj.document.createElement("div");
|
|
27
|
-
var _a = cssPropertyNameMap[cssProperty], standard = _a.standard, prefixed = _a.prefixed;
|
|
28
|
-
var isStandard = standard in el.style;
|
|
29
|
-
return isStandard ? standard : prefixed;
|
|
30
|
-
}
|
|
31
|
-
return cssProperty;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export {
|
|
35
|
-
getCorrectPropertyName
|
|
36
|
-
};
|
|
6
|
+
var r={animation:{prefixed:"-webkit-animation",standard:"animation"},transform:{prefixed:"-webkit-transform",standard:"transform"},transition:{prefixed:"-webkit-transition",standard:"transition"}};function s(t){return Boolean(t.document)&&typeof t.document.createElement=="function"}function m(t,n){if(s(t)&&n in r){var e=t.document.createElement("div"),i=r[n],a=i.standard,o=i.prefixed,d=a in e.style;return d?a:o}return n}export{m as a};
|
|
37
7
|
/**
|
|
38
8
|
* @license
|
|
39
9
|
* Copyright 2016 Google Inc.
|
|
@@ -56,4 +26,4 @@ export {
|
|
|
56
26
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
57
27
|
* THE SOFTWARE.
|
|
58
28
|
*/
|
|
59
|
-
//# sourceMappingURL=chunk.
|
|
29
|
+
//# sourceMappingURL=chunk.STS5TIUV.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../node_modules/@material/animation/util.ts"],
|
|
4
|
+
"sourcesContent": [null],
|
|
5
|
+
"mappings": "AAAA,AA6BA,GAAM,GAA2C,CAC/C,UAAW,CACT,SAAU,oBACV,SAAU,aAEZ,UAAW,CACT,SAAU,oBACV,SAAU,aAEZ,WAAY,CACV,SAAU,qBACV,SAAU,eA2Bd,WAAkB,EAAiB,CACjC,MAAO,SAAQ,EAAU,QAAQ,GAAK,MAAO,GAAU,SAAS,eAAkB,UACpF,CAEM,WAAiC,EAAmB,EAAoC,CAE5F,GAAI,EAAS,CAAS,GAAK,IAAe,GAAoB,CAC5D,GAAM,GAAK,EAAU,SAAS,cAAc,KAAK,EAC3C,EAAuB,EAAmB,GAAzC,EAAQ,EAAA,SAAE,EAAQ,EAAA,SACnB,EAAa,IAAY,GAAG,MAClC,MAAO,GAAa,EAAW,EAEjC,MAAO,EACT",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{a as e}from"./chunk.2GY2VPJG.js";function l(){let o="0123456789ABCDEF".split(""),r="#";for(let t=0;t<6;t++)r+=o[Math.floor(Math.random()*16)];return r}function i(o){(!o||typeof o!="string")&&(o="");let r;if(o.charCodeAt(0)<65)r=l();else{let t=Math.floor((o.charCodeAt(0)-65)%e.letterColors.length);r=e.letterColors[t]}return r}export{l as a,i as b};
|
|
7
|
+
//# sourceMappingURL=chunk.SVGEVCXA.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/color-utils.ts"],
|
|
4
4
|
"sourcesContent": ["import { COLOR_CONSTANTS } from '../theme';\n\n/**\n * Gets a random hex color.\n * @returns {string} The CSS-compatible hex color string.\n */\nexport function randomHexColor(): string {\n const letters = '0123456789ABCDEF'.split('');\n let color = '#';\n\n for (let i = 0; i < 6; i++) {\n color += letters[Math.floor(Math.random() * 16)];\n }\n\n return color;\n}\n\n/**\n * Gets the color for the provided letter.\n */\nexport function getTextColor(text?: string): string {\n if (!text || typeof text !== 'string') {\n text = '';\n }\n\n let color: string;\n\n if (text.charCodeAt(0) < 65) {\n color = randomHexColor();\n } else {\n const colorIndex = Math.floor((text.charCodeAt(0) - 65) % COLOR_CONSTANTS.letterColors.length);\n color = COLOR_CONSTANTS.letterColors[colorIndex];\n }\n\n return color;\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "wCAMO,YAAkC,CACvC,GAAM,GAAU,mBAAmB,MAAM,EAAE,EACvC,EAAQ,IAEZ,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,GAAS,EAAQ,KAAK,MAAM,KAAK,OAAO,EAAI,EAAE,GAGhD,MAAO,EACT,CAKO,WAAsB,EAAuB,CAClD,AAAI,EAAC,GAAQ,MAAO,IAAS,WAC3B,GAAO,IAGT,GAAI,GAEJ,GAAI,EAAK,WAAW,CAAC,EAAI,GACvB,EAAQ,EAAe,MAClB,CACL,GAAM,GAAa,KAAK,MAAO,GAAK,WAAW,CAAC,EAAI,IAAM,EAAgB,aAAa,MAAM,EAC7F,EAAQ,EAAgB,aAAa,EACvC,CAEA,MAAO,EACT",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{d as F}from"./chunk.IBQVV4HR.js";import{b as G}from"./chunk.G5BCWBD5.js";import{n as y,r as B,s as N,u as z}from"./chunk.LZMYHIO2.js";import{d as w}from"./chunk.OUEF6VQ6.js";import{d as O,l as k}from"./chunk.7TQYFMM4.js";import{a as x}from"./chunk.A23NSEWA.js";import{a as p}from"./chunk.B3IJU6XJ.js";import{a as S,b as I}from"./chunk.BSZ2LBJX.js";import{a as T}from"./chunk.3E5QKMHL.js";import{a as A,e as L,g as r,j as d}from"./chunk.HN4PXH3D.js";import{d as v,f as _,g as P,t as E}from"./chunk.R4NDFXVA.js";import{b,i as m,k as l,l as c}from"./chunk.G76HB2FK.js";import{f as n}from"./chunk.MCIQXNKY.js";var R=`${I}paginator`,g={LABEL:"forge-paginator__label",PAGE_SIZE_OPTIONS:"forge-paginator__page-size-options",RANGE_LABEL:"forge-paginator__range-label",RANGE_LABEL_ALTERNATIVE:"forge-paginator__range-label--alternative",FIRST_PAGE_BUTTON:"forge-paginator__first-page",PREVIOUS_PAGE_BUTTON:"forge-paginator__previous-page",NEXT_PAGE_BUTTON:"forge-paginator__next-page",LAST_PAGE_BUTTON:"forge-paginator__last-page",ROOT:"forge-paginator",ALTERNATIVE:"forge-paginator--alternative",ALIGNMENT_START:"forge-paginator--alignment-start",ALIGNMENT_SPACE_BETWEEN:"forge-paginator--alignment-center",ALIGNMENT_END:"forge-paginator--alignment-end"},U={LABEL:`.${g.LABEL}`,PAGE_SIZE_SELECT:`.${g.PAGE_SIZE_OPTIONS}`,RANGE_LABEL:`.${g.RANGE_LABEL}`,FIRST_PAGE_BUTTON:`.${g.FIRST_PAGE_BUTTON} > button`,FIRST_PAGE_ICON_BUTTON:`.${g.FIRST_PAGE_BUTTON}`,PREVIOUS_PAGE_BUTTON:`.${g.PREVIOUS_PAGE_BUTTON} > button`,NEXT_PAGE_BUTTON:`.${g.NEXT_PAGE_BUTTON} > button`,LAST_PAGE_BUTTON:`.${g.LAST_PAGE_BUTTON} > button`,LAST_PAGE_ICON_BUTTON:`.${g.LAST_PAGE_BUTTON}`,ROOT:`.${g.ROOT}`,RANGE_LABEL_ALTERNATIVE:`.${g.RANGE_LABEL_ALTERNATIVE}`},M={PAGE_INDEX:"page-index",PAGE_SIZE:"page-size",OFFSET:"offset",PAGE_SIZE_OPTIONS:"page-size-options",TOTAL:"total",LABEL:"label",FIRST_LAST:"first-last",FIRST:"first",DISABLED:"disabled",ALTERNATIVE:"alternative",ALIGNMENT:"alignment"},D={CHANGE:`${R}-change`},H={DEFAULT_PAGE_INDEX:0,DEFAULT_TOTAL:0,DEFAULT_PAGE_SIZE:25,DEFAULT_PAGE_SIZE_OPTIONS:[5,15,25,50,100]},$={DEFAULT_LABEL:"Rows per page:",RANGE_SEPARATOR_LABEL:"of",FIRST_PAGE:"first-page",PREVIOUS_PAGE:"previous-page",NEXT_PAGE:"next-page",LAST_PAGE:"last-page",PAGE_SIZE:"page-size"},e={elementName:R,classes:g,selectors:U,attributes:M,events:D,numbers:H,strings:$};var h=class{constructor(i){this._adapter=i;this._pageIndex=e.numbers.DEFAULT_PAGE_INDEX;this._pageSize=e.numbers.DEFAULT_PAGE_SIZE;this._total=e.numbers.DEFAULT_TOTAL;this._pageSizeOptions=[];this._label=e.strings.DEFAULT_LABEL;this._firstLast=!1;this._first=!1;this._disabled=!1;this._alignment="space-between";this._pageSizeListener=t=>this._onPageSizeChanged(t),this._firstPageListener=t=>this._onFirstPage(t),this._previousPageListener=t=>this._onPreviousPage(t),this._nextPageListener=t=>this._onNextPage(t),this._lastPageListener=t=>this._onLastPage(t),this._pageSizeOptions=e.numbers.DEFAULT_PAGE_SIZE_OPTIONS.map(t=>({label:t.toString(),value:t.toString()}))}set pageIndex(i){this._pageIndex!==i&&(b(i)?(this._pageIndex=i,this._update(),this._adapter.setHostAttribute(e.attributes.PAGE_INDEX,this._pageIndex.toString())):this._adapter.removeHostAttribute(e.attributes.PAGE_INDEX))}get pageIndex(){return this._pageIndex}set pageSize(i){this._pageSize!==i&&(this._pageSize=i,this._adapter.setPageSize(this._pageSize),this._update(),this._adapter.setHostAttribute(e.attributes.PAGE_SIZE,this._pageSize.toString()))}get pageSize(){return this._pageSize}set offset(i){i>=this._total&&(this._total>=this._pageSize?i=this._total-this._pageSize:i=0);let t=Math.min(Math.max(i,0),this._total);this.pageIndex=Math.floor(t/this._pageSize)}get offset(){return this._pageIndex*this._pageSize}set total(i){this._total!==i&&(this._total=i,this._update(),this._adapter.setHostAttribute(e.attributes.TOTAL,this._total.toString()))}get total(){return this._total}set pageSizeOptions(i){m(i)?(this._pageSizeOptions=i.map(t=>({label:t.toString(),value:t.toString()})).sort((t,s)=>c(t.value)-c(s.value)),this._adapter.setPageSizeOptions(this._pageSizeOptions),this._adapter.attachPageSizeChangeListener(this._pageSizeListener),this._adapter.setPageSizeVisibility(!0),b(this._pageSize)&&this._pageSizeOptions.length&&!this._pageSizeOptions.find(t=>c(t.value)===this._pageSize)&&(this.pageSize=c(this._pageSizeOptions[0].value))):i.toString().toLowerCase()==="false"&&(this._adapter.detachPageSizeChangeListener(this._pageSizeListener),this._adapter.setPageSizeVisibility(!1))}get pageSizeOptions(){return this._pageSizeOptions.map(i=>Number(i.value))}set label(i){this._label!==i&&(this._label=i,this._adapter.setLabel(this._label),this._adapter.setHostAttribute(e.attributes.LABEL,b(this._label)?this._label.toString():""))}get label(){return this._label}set firstLast(i){this._firstLast!==i&&(this._firstLast=i,this._toggleFirstLastButtons(),this._firstLast?this._adapter.setHostAttribute(e.attributes.FIRST_LAST):this._adapter.removeHostAttribute(e.attributes.FIRST_LAST))}get firstLast(){return this._firstLast}set first(i){this._first!==i&&(this._first=i,this._toggleFirstButton(),this._first?this._adapter.setHostAttribute(e.attributes.FIRST):this._adapter.removeHostAttribute(e.attributes.FIRST))}get first(){return this._first}set disabled(i){this._disabled!==i&&(this._disabled=i,this._update(),this._disabled?this._adapter.setHostAttribute(e.attributes.DISABLED):this._adapter.removeHostAttribute(e.attributes.DISABLED))}get disabled(){return this._disabled}get alternative(){return this._alternative}set alternative(i){i!==this._alternative&&(this._alternative=i,this._applyAlternative())}get alignment(){return this._alignment}set alignment(i){i!==this._alignment&&(this._alignment=i,this._applyAlternativeAlignment())}_applyAlternativeAlignment(){this._adapter.setHostAttribute(e.attributes.ALIGNMENT,this._alignment),this._adapter.setAlignment(this._alignment)}_applyAlternative(){this._adapter.toggleHostAttribute(e.attributes.ALTERNATIVE,this._alternative),this._adapter.setAlternative(this._alternative),this._applyAlternativeAlignment()}initialize(){this._update(),this._adapter.setLabel(this._label),this._adapter.setPageSizeOptions(this._pageSizeOptions),this._adapter.setPageSize(this._pageSize),this._attachListeners(),this._toggleFirstLastButtons()}disconnect(){this._detachListeners()}_attachListeners(){this._adapter.attachPageSizeChangeListener(this._pageSizeListener),this._adapter.attachFirstPageListener(this._firstPageListener),this._adapter.attachPreviousPageListener(this._previousPageListener),this._adapter.attachNextPageListener(this._nextPageListener),this._adapter.attachLastPageListener(this._lastPageListener)}_detachListeners(){this._adapter.detachPageSizeChangeListener(this._pageSizeListener),this._adapter.detachFirstPageListener(this._firstPageListener),this._adapter.detachPreviousPageListener(this._previousPageListener),this._adapter.detachNextPageListener(this._nextPageListener),this._adapter.detachLastPageListener(this._lastPageListener)}_onFirstPage(i){if(i.stopPropagation(),!this._hasFirstPage())return;let t=0;this._emitChangeEvent(e.strings.FIRST_PAGE,{pageIndex:t})&&(this.pageIndex=t)}_onPreviousPage(i){if(i.stopPropagation(),!this._hasPreviousPage())return;let t=this._pageIndex-1;this._emitChangeEvent(e.strings.PREVIOUS_PAGE,{pageIndex:t})&&(this.pageIndex=t)}_onNextPage(i){if(i.stopPropagation(),!this._hasNextPage())return;let t=this._pageIndex+1;this._emitChangeEvent(e.strings.NEXT_PAGE,{pageIndex:t})&&(this.pageIndex=t)}_onLastPage(i){if(i.stopPropagation(),!this._hasLastPage())return;let t=this._getMaxPages();this._emitChangeEvent(e.strings.LAST_PAGE,{pageIndex:t})&&(this.pageIndex=t)}_onPageSizeChanged(i){i.stopPropagation();let t=Number(i.detail);this._emitChangeEvent(e.strings.PAGE_SIZE,{pageIndex:0,pageSize:t})&&(this.pageIndex=0,this.pageSize=t,i.preventDefault())}_emitChangeEvent(i,{pageSize:t=this._pageSize,pageIndex:s=this._pageIndex}={}){let o=s*t,C={type:i,pageSize:t,pageIndex:s,offset:o};return this._adapter.emitHostEvent(e.events.CHANGE,C,!0,!0)}_getMaxPages(){return Math.ceil(this._total/this._pageSize)-1}_update(){if(this.pageSize>1){let i=this._pageIndex*this._pageSize,s=(Math.floor(i/this._pageSize)||0)*this._pageSize+1,o=i<this._total?Math.min(i+this._pageSize,this._total):i+this._pageSize;this._rangeLabel=`${s}-${o} ${e.strings.RANGE_SEPARATOR_LABEL} ${this._total}`}else this._rangeLabel=`${this._pageIndex+1} ${e.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;this._adapter.setRangeLabel(this._rangeLabel),this.disabled?(this._adapter.disablePageSizeSelect(),this._adapter.disableFirstPageButton(),this._adapter.disablePreviousPageButton(),this._adapter.disableNextPageButton(),this._adapter.disableLastPageButton()):(this._adapter.enablePageSizeSelect(),this._hasFirstPage()?this._adapter.enableFirstPageButton():this._adapter.disableFirstPageButton(),this._hasPreviousPage()?this._adapter.enablePreviousPageButton():this._adapter.disablePreviousPageButton(),this._hasNextPage()?this._adapter.enableNextPageButton():this._adapter.disableNextPageButton(),this._hasLastPage()?this._adapter.enableLastPageButton():this._adapter.disableLastPageButton())}_toggleFirstLastButtons(){this._toggleFirstButton(),this._firstLast?this._adapter.hasLastPageButton()||this._adapter.showLastPageButton():this._adapter.hasLastPageButton()&&this._adapter.hideLastPageButton()}_toggleFirstButton(){this._first||this._firstLast?this._adapter.hasFirstPageButton()||this._adapter.showFirstPageButton():this._adapter.hasFirstPageButton()&&this._adapter.hideFirstPageButton()}_hasFirstPage(){return this._hasPreviousPage()}_hasPreviousPage(){return this._pageIndex>=1&&this._pageSize!==0}_hasNextPage(){let i=this._getMaxPages();return this._pageIndex<i&&this._pageSize!==0}_hasLastPage(){return this._hasNextPage()}};var u=class extends x{constructor(t){super(t);this._labelElement=r(t,e.selectors.LABEL),this._root=r(t,e.selectors.ROOT),this._pageSizeSelect=r(t,e.selectors.PAGE_SIZE_SELECT),this._rangeLabel=r(t,e.selectors.RANGE_LABEL),this._rangeLabelAlternative=r(t,e.selectors.RANGE_LABEL_ALTERNATIVE),this._firstPageButton=r(t,e.selectors.FIRST_PAGE_BUTTON),this._firstPageIconButton=r(t,e.selectors.FIRST_PAGE_ICON_BUTTON),this._previousPageButton=r(t,e.selectors.PREVIOUS_PAGE_BUTTON),this._nextPageButton=r(t,e.selectors.NEXT_PAGE_BUTTON),this._lastPageButton=r(t,e.selectors.LAST_PAGE_BUTTON),this._lastPageIconButton=r(t,e.selectors.LAST_PAGE_ICON_BUTTON)}setLabel(t){this._labelElement.textContent=t}setPageSizeOptions(t){v(this._pageSizeSelect),this._pageSizeSelect.options=t}setPageSize(t){this._pageSizeSelect.value=t.toString()}setRangeLabel(t){this._rangeLabel.innerText=t,this._rangeLabelAlternative.innerText=t}hasFirstPageButton(){return!!r(this._component,e.selectors.FIRST_PAGE_ICON_BUTTON)}showFirstPageButton(){this._firstPagePlaceholder=d(this._component,!0,e.elementName,e.selectors.FIRST_PAGE_ICON_BUTTON,this._firstPageIconButton,this._firstPagePlaceholder)}hideFirstPageButton(){this._firstPagePlaceholder=d(this._component,!1,e.elementName,e.selectors.FIRST_PAGE_ICON_BUTTON,this._firstPageIconButton,this._firstPagePlaceholder)}hasLastPageButton(){return!!r(this._component,e.selectors.LAST_PAGE_ICON_BUTTON)}showLastPageButton(){this._lastPagePlaceholder=d(this._component,!0,e.elementName,e.selectors.LAST_PAGE_ICON_BUTTON,this._lastPageIconButton,this._lastPagePlaceholder)}hideLastPageButton(){this._lastPagePlaceholder=d(this._component,!1,e.elementName,e.selectors.LAST_PAGE_ICON_BUTTON,this._lastPageIconButton,this._lastPagePlaceholder)}attachPageSizeChangeListener(t){this._pageSizeSelect.addEventListener("change",t)}attachFirstPageListener(t){this._firstPageButton.addEventListener("click",t)}attachPreviousPageListener(t){this._previousPageButton.addEventListener("click",t)}attachNextPageListener(t){this._nextPageButton.addEventListener("click",t)}attachLastPageListener(t){this._lastPageButton.addEventListener("click",t)}detachPageSizeChangeListener(t){this._pageSizeSelect.removeEventListener("change",t)}detachFirstPageListener(t){this._firstPageButton.removeEventListener("click",t)}detachPreviousPageListener(t){this._previousPageButton.removeEventListener("click",t)}detachNextPageListener(t){this._nextPageButton.removeEventListener("click",t)}detachLastPageListener(t){this._lastPageButton.removeEventListener("click",t)}disableFirstPageButton(){this._firstPageButton.setAttribute("disabled","disabled")}enableFirstPageButton(){this._firstPageButton.removeAttribute("disabled")}disablePreviousPageButton(){this._previousPageButton.setAttribute("disabled","disabled")}enablePreviousPageButton(){this._previousPageButton.removeAttribute("disabled")}disableNextPageButton(){this._nextPageButton.setAttribute("disabled","disabled")}enableNextPageButton(){this._nextPageButton.removeAttribute("disabled")}disablePageSizeSelect(){this._pageSizeSelect.setAttribute("disabled","disabled")}enablePageSizeSelect(){this._pageSizeSelect.removeAttribute("disabled")}setPageSizeVisibility(t){t?this._pageSizeSelect.style.removeProperty("display"):this._pageSizeSelect.style.display="none"}disableLastPageButton(){this._lastPageButton.setAttribute("disabled","disabled")}enableLastPageButton(){this._lastPageButton.removeAttribute("disabled")}setAlternative(t){E(this._root,t,e.classes.ALTERNATIVE)}setAlignment(t){switch(P([e.classes.ALIGNMENT_SPACE_BETWEEN,e.classes.ALIGNMENT_START,e.classes.ALIGNMENT_END],this._root),t){case"start":_(e.classes.ALIGNMENT_START,this._root);break;case"end":_(e.classes.ALIGNMENT_END,this._root);break;case"space-between":default:_(e.classes.ALIGNMENT_SPACE_BETWEEN,this._root);break}}};var Z='<template><div class="forge-paginator" part="root"><div class="forge-paginator__container" part="container"><div class="forge-paginator__label" part="label"></div><forge-select class="forge-paginator__page-size-options" aria-label="Choose page size" density="dense" part="page-size-options"></forge-select><div class="forge-paginator__range-label" part="range-label"></div><forge-icon-button class="forge-paginator__first-page" part="first-page-button"><button aria-label="First Page" part="first-page-button-element"><forge-icon name="first_page" part="first-page-icon"></forge-icon></button><forge-tooltip position="top">Go to the first page</forge-tooltip></forge-icon-button><forge-icon-button class="forge-paginator__previous-page" part="previous-page-button"><button aria-label="Previous Page" part="previous-page-button-element"><forge-icon name="keyboard_arrow_left" part="previous-page-button-icon"></forge-icon></button><forge-tooltip position="top">Go to the previous page</forge-tooltip></forge-icon-button><div class="forge-paginator__range-label--alternative" part="range-label-alternative"></div><forge-icon-button class="forge-paginator__next-page" part="next-page-button"><button aria-label="Next Page" part="next-page-button-element"><forge-icon name="keyboard_arrow_right" part="next-page-icon"></forge-icon></button><forge-tooltip position="top">Go to the next page</forge-tooltip></forge-icon-button><forge-icon-button class="forge-paginator__last-page" part="last-page-button"><button aria-label="Last Page" part="last-page-button-element"><forge-icon name="last_page" part="last-page-icon"></forge-icon></button><forge-tooltip position="top">Go to the last page</forge-tooltip></forge-icon-button></div></div></template>',X='.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-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}}.forge-icon-button{--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}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-icon-button::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-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.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-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.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-icon-button.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-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.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%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.forge-paginator{display:inline-block}.forge-paginator--alternative{display:-webkit-box;display:flex}.forge-paginator--alternative .forge-paginator__label,.forge-paginator--alternative .forge-paginator__page-size-options,.forge-paginator--alternative .forge-paginator__range-label{display:none}.forge-paginator--alternative .forge-paginator__range-label--alternative{display:inline-block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);margin:0 12px}.forge-paginator__range-label--alternative{display:none}.forge-paginator__container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.forge-paginator__label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);margin-right:16px}.forge-paginator__page-size-options{margin-right:16px}.forge-paginator__range-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);margin-right:8px}.forge-paginator__first-page,.forge-paginator__last-page,.forge-paginator__next-page,.forge-paginator__previous-page{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}:host{display:inline-block}:host([hidden]){display:none}:host([alternative]) .forge-paginator--alignment-center .forge-paginator__container{-webkit-box-pack:center;justify-content:center}:host([alternative]) .forge-paginator--alignment-center .forge-paginator__range-label--alternative{margin:0 auto}:host([alternative]) .forge-paginator--alignment-start .forge-paginator__container{-webkit-box-pack:start;justify-content:flex-start}:host([alternative]) .forge-paginator--alignment-end .forge-paginator__container{-webkit-box-pack:end;justify-content:flex-end}:host([alternative]) .forge-paginator .forge-paginator__container{-webkit-box-flex:1;flex:1}',a=class extends T{constructor(){super();O.define([y,B,N,z]),L(this,Z,X),this._foundation=new h(new u(this))}static get observedAttributes(){return[e.attributes.PAGE_INDEX,e.attributes.PAGE_SIZE,e.attributes.OFFSET,e.attributes.TOTAL,e.attributes.PAGE_SIZE_OPTIONS,e.attributes.LABEL,e.attributes.FIRST_LAST,e.attributes.FIRST,e.attributes.DISABLED,e.attributes.ALTERNATIVE,e.attributes.ALIGNMENT]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,s,o){switch(t){case e.attributes.PAGE_INDEX:this.pageIndex=Number(o)||e.numbers.DEFAULT_PAGE_INDEX;break;case e.attributes.PAGE_SIZE:this.pageSize=Number(o)||e.numbers.DEFAULT_PAGE_SIZE;break;case e.attributes.OFFSET:this.offset=Number(o);break;case e.attributes.TOTAL:this.total=Number(o)||e.numbers.DEFAULT_TOTAL;break;case e.attributes.PAGE_SIZE_OPTIONS:this.pageSizeOptions=o;break;case e.attributes.LABEL:this.label=o;break;case e.attributes.FIRST_LAST:this.firstLast=l(o);break;case e.attributes.FIRST:this.first=l(o);break;case e.attributes.DISABLED:this.disabled=l(o);break;case e.attributes.ALTERNATIVE:this.alternative=l(o);break;case e.attributes.ALIGNMENT:this.alignment=o;break}}};n([p()],a.prototype,"pageIndex",2),n([p()],a.prototype,"pageSize",2),n([p()],a.prototype,"offset",2),n([p()],a.prototype,"total",2),n([p()],a.prototype,"pageSizeOptions",2),n([p()],a.prototype,"label",2),n([p()],a.prototype,"firstLast",2),n([p()],a.prototype,"first",2),n([p()],a.prototype,"disabled",2),n([p()],a.prototype,"alternative",2),n([p()],a.prototype,"alignment",2),a=n([S({name:e.elementName,dependencies:[G,F,k,w]})],a);function At(){A(a)}export{e as a,h as b,u as c,a as d,At as e};
|
|
7
|
+
//# sourceMappingURL=chunk.UNTTQM6V.js.map
|