@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
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/button-toggle/button-toggle-group/button-toggle-group-constants.ts", "../../src/button-toggle/button-toggle-group/button-toggle-group-adapter.ts", "../../src/button-toggle/button-toggle-group/button-toggle-group-foundation.ts", "../../src/button-toggle/button-toggle-group/button-toggle-group.ts", "../../src/button-toggle/button-toggle-group/index.ts"],
|
|
4
4
|
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}button-toggle-group`;\n\nconst attributes = {\n VALUE: 'value',\n MULTIPLE: 'multiple',\n MANDATORY: 'mandatory',\n VERTICAL: 'vertical',\n STRETCH: 'stretch',\n DISABLED: 'disabled',\n DENSE: 'dense'\n};\n\nconst classes = {\n VERTICAL: 'forge-button-toggle-group--vertical',\n STRETCH: 'forge-button-toggle-group--stretch'\n};\n\nconst selectors = {\n ROOT: '.forge-button-toggle-group'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`\n};\n\nexport const BUTTON_TOGGLE_GROUP_CONSTANTS = {\n elementName,\n attributes,\n classes,\n selectors,\n events\n};\n\nexport type IButtonToggleGroupChangeEventData<T> = T;\n\nexport interface IButtonToggleOption {\n label?: string;\n icon?: string;\n value: any;\n leadingIcon?: string;\n trailingIcon?: string;\n}\n", "import { getShadowElement, removeAllChildren } from '@tylertech/forge-core';\nimport { ICON_CLASS_NAME } from '../../constants';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IButtonToggleComponent } from '../button-toggle/button-toggle';\nimport { BUTTON_TOGGLE_CONSTANTS } from '../button-toggle/button-toggle-constants';\nimport { IButtonToggleGroupComponent } from './button-toggle-group';\nimport { BUTTON_TOGGLE_GROUP_CONSTANTS, IButtonToggleOption } from './button-toggle-group-constants';\n\nexport interface IButtonToggleGroupAdapter extends IBaseAdapter {\n addListener(type: string, listener: (evt: Event) => void): void;\n removeListener(type: string, listener: (evt: Event) => void): void;\n addSlotChangeListener(listener: (evt: Event) => void): void;\n removeSlotChangeListener(listener: (evt: Event) => void): void;\n deselect(selectedToggle: IButtonToggleComponent): void;\n applyAdjacentSelections(isVertical: boolean): void;\n setVertical(isVertical: boolean): void;\n setStretch(value: boolean): void;\n setDense(value: boolean): void;\n setDisabled(value: boolean): void;\n getSelectedValues(): any[];\n applyValues(values: any[]): void;\n createOptions(options: IButtonToggleOption[]): void;\n}\n\nexport class ButtonToggleGroupAdapter extends BaseAdapter<IButtonToggleGroupComponent> implements IButtonToggleGroupAdapter {\n private _rootElement: HTMLElement;\n private _slotElement: HTMLSlotElement;\n\n constructor(component: IButtonToggleGroupComponent) {\n super(component);\n this._rootElement = getShadowElement(component, BUTTON_TOGGLE_GROUP_CONSTANTS.selectors.ROOT);\n this._slotElement = this._rootElement.querySelector('slot') as HTMLSlotElement;\n }\n\n public addListener(type: string, listener: (evt: Event) => void): void {\n this._rootElement.addEventListener(type, listener);\n }\n\n public removeListener(type: string, listener: (evt: Event) => void): void {\n this._rootElement.removeEventListener(type, listener);\n }\n\n public addSlotChangeListener(listener: EventListener): void {\n this._slotElement.addEventListener('slotchange', listener);\n }\n public removeSlotChangeListener(listener: EventListener): void {\n this._slotElement.addEventListener('slotchange', listener);\n }\n\n public deselect(selectedToggle: IButtonToggleComponent): void {\n const toggles = this._getButtonToggleElements();\n toggles.filter(t => t !== selectedToggle).forEach(t => t.selected = false);\n }\n\n public applyAdjacentSelections(isVertical: boolean): void {\n const toggles = this._getButtonToggleElements();\n for (let i = toggles.length - 1; i > 0; i--) {\n toggles[i].removeAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED_ADJACENT);\n toggles[i].removeAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED_ADJACENT_VERTICAL);\n if (toggles[i].selected && toggles[i - 1].selected) {\n const attr = isVertical ? BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED_ADJACENT_VERTICAL : BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED_ADJACENT;\n toggles[i].setAttribute(attr, '');\n }\n }\n }\n\n public setVertical(isVertical: boolean): void {\n if (isVertical) {\n this._rootElement.classList.add(BUTTON_TOGGLE_GROUP_CONSTANTS.classes.VERTICAL);\n } else {\n this._rootElement.classList.remove(BUTTON_TOGGLE_GROUP_CONSTANTS.classes.VERTICAL);\n }\n }\n\n public setStretch(value: boolean): void {\n if (value) {\n this._rootElement.classList.add(BUTTON_TOGGLE_GROUP_CONSTANTS.classes.STRETCH);\n } else {\n this._rootElement.classList.remove(BUTTON_TOGGLE_GROUP_CONSTANTS.classes.STRETCH);\n }\n\n const toggles = this._getButtonToggleElements();\n toggles.forEach(toggle => {\n if (value) {\n toggle.setAttribute('stretch', '');\n } else {\n toggle.removeAttribute('stretch');\n }\n });\n }\n\n public setDense(value: boolean): void {\n const toggles = this._getButtonToggleElements();\n toggles.forEach(t => t.dense = value);\n }\n\n public setDisabled(value: boolean): void {\n const toggles = this._getButtonToggleElements();\n toggles.forEach(t => t.disabled = value);\n }\n\n public getSelectedValues(): any[] {\n const toggles = this._getButtonToggleElements();\n return toggles.filter(t => t.selected).map(t => t.value);\n }\n\n public applyValues(values: any[]): void {\n const toggles = this._getButtonToggleElements();\n toggles.forEach(t => t.selected = values.indexOf(t.value) >= 0);\n }\n\n public createOptions(options: IButtonToggleOption[]): void {\n removeAllChildren(this._component);\n options.forEach(o => {\n this._component.appendChild(this._createButtonToggle(o));\n });\n }\n\n private _createButtonToggle(option: IButtonToggleOption): IButtonToggleComponent {\n const buttonToggle = document.createElement(BUTTON_TOGGLE_CONSTANTS.elementName) as IButtonToggleComponent;\n buttonToggle.value = option.value;\n\n if (option.label) {\n buttonToggle.textContent = option.label;\n } else if (option.icon) {\n const icon = document.createElement('i');\n icon.textContent = option.icon;\n icon.classList.add(ICON_CLASS_NAME);\n icon.setAttribute('aria-hidden', 'true');\n buttonToggle.appendChild(icon);\n }\n\n if (option.leadingIcon) {\n const leadingIcon = document.createElement('i');\n leadingIcon.slot = 'leading';\n leadingIcon.textContent = option.leadingIcon;\n leadingIcon.classList.add(ICON_CLASS_NAME);\n leadingIcon.setAttribute('aria-hidden', 'true');\n buttonToggle.appendChild(leadingIcon);\n }\n\n if (option.trailingIcon) {\n const trailingIcon = document.createElement('i');\n trailingIcon.slot = 'trailing';\n trailingIcon.textContent = option.trailingIcon;\n trailingIcon.classList.add(ICON_CLASS_NAME);\n trailingIcon.setAttribute('aria-hidden', 'true');\n buttonToggle.appendChild(trailingIcon);\n }\n\n return buttonToggle;\n }\n\n private _getButtonToggleElements(): IButtonToggleComponent[] {\n return Array.from(this._component.querySelectorAll(BUTTON_TOGGLE_CONSTANTS.elementName));\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IButtonToggleComponent } from '../button-toggle/button-toggle';\nimport { BUTTON_TOGGLE_CONSTANTS, IButtonToggleSelectEventData } from '../button-toggle/button-toggle-constants';\nimport { IButtonToggleGroupAdapter } from './button-toggle-group-adapter';\nimport { BUTTON_TOGGLE_GROUP_CONSTANTS, IButtonToggleOption } from './button-toggle-group-constants';\n\nexport interface IButtonToggleGroupFoundation extends ICustomElementFoundation {\n value: any;\n multiple: boolean;\n stretch: boolean;\n mandatory: boolean;\n vertical: boolean;\n dense: boolean;\n disabled: boolean;\n options: IButtonToggleOption[];\n}\n\nexport class ButtonToggleGroupFoundation implements IButtonToggleGroupFoundation {\n private _isInitialized = false;\n private _multiple = false;\n private _mandatory = false;\n private _vertical = false;\n private _stretch = false;\n private _dense = false;\n private _disabled = false;\n private _options: IButtonToggleOption[] = [];\n private _values: any[] = [];\n private _originalValue: any;\n private _selectListener: (evt: CustomEvent<IButtonToggleSelectEventData>) => void;\n private _slotListener: () => void;\n\n constructor(private _adapter: IButtonToggleGroupAdapter) {\n this._selectListener = evt => this._onSelect(evt);\n this._slotListener = () => this._synchronize();\n }\n\n public initialize(): void {\n if (this._options && this._options.length) {\n this._applyOptions(false);\n }\n\n this._adapter.addListener(BUTTON_TOGGLE_CONSTANTS.events.SELECT, this._selectListener);\n this._adapter.addSlotChangeListener(this._slotListener);\n this._adapter.setVertical(this._vertical);\n this._adapter.setStretch(this._stretch);\n this._adapter.setDense(this._dense);\n this._adapter.setDisabled(this._disabled);\n this._adapter.applyAdjacentSelections(this._vertical);\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n this._adapter.removeListener(BUTTON_TOGGLE_CONSTANTS.events.SELECT, this._selectListener);\n this._adapter.removeSlotChangeListener(this._slotListener);\n }\n\n private _synchronize(): void {\n if (!this._multiple) {\n const selectedValues = this._adapter.getSelectedValues().concat(this._values);\n this.value = selectedValues.length ? selectedValues[selectedValues.length - 1] : null;\n } else {\n const selectedValues = new Set(this._adapter.getSelectedValues().concat(this._values));\n this._applyValue(Array.from(selectedValues));\n }\n }\n\n private _onSelect(evt: CustomEvent<IButtonToggleSelectEventData>): void {\n const target = evt.target as IButtonToggleComponent;\n\n // When in mandatory mode we need to ensure at least one element is selected. If there are no selections\n // then we need to reselect the target toggle because it was deselected\n if (this._mandatory) {\n const values = this._adapter.getSelectedValues();\n if (!values.length) {\n target.selected = true;\n return;\n }\n }\n\n // When not in multiple mode, we deselect all toggles, except for the one that was just changed\n if (!this._multiple) {\n this._adapter.deselect(target);\n }\n\n this._adapter.applyAdjacentSelections(this._vertical);\n this._adapter.emitHostEvent(BUTTON_TOGGLE_GROUP_CONSTANTS.events.CHANGE, this._getValue());\n }\n\n private _getValue(): any {\n const selections = this._adapter.getSelectedValues();\n return this._multiple ? Array.from(new Set(selections)) : selections.slice(0, 1)[0] ?? null;\n }\n\n private _applyValue(value: any): void {\n let values = value instanceof Array ? value : [value];\n if (!this._multiple && values.length > 1) {\n values = values[0];\n }\n this._values = values;\n this._adapter.applyValues(values);\n if (this._multiple) {\n this._adapter.applyAdjacentSelections(this._vertical);\n }\n }\n\n private _applyOptions(init = true): void {\n if (this._options) {\n this._adapter.createOptions(this._options);\n\n if (init) {\n this._adapter.setStretch(this._stretch);\n this._adapter.setDense(this._dense);\n this._adapter.setDisabled(this._disabled);\n this._adapter.applyAdjacentSelections(this._vertical);\n }\n }\n }\n\n public get value(): any {\n if (!this._isInitialized) {\n return this._originalValue;\n }\n return this._getValue();\n }\n public set value(value: any) {\n this._originalValue = value;\n this._applyValue(value);\n }\n\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n if (this._multiple !== value) {\n this._multiple = value;\n this._adapter.setHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.MULTIPLE, this._multiple as any);\n }\n }\n\n public get mandatory(): boolean {\n return this._mandatory;\n }\n public set mandatory(value: boolean) {\n if (this._mandatory !== value) {\n this._mandatory = value;\n if (this._mandatory) {\n this._adapter.setHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.MANDATORY);\n } else {\n this._adapter.removeHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.MANDATORY);\n }\n }\n }\n\n public get vertical(): boolean {\n return this._vertical;\n }\n public set vertical(value: boolean) {\n if (this._vertical !== value) {\n this._vertical = value;\n this._adapter.setVertical(this._vertical);\n this._adapter.applyAdjacentSelections(this._vertical);\n if (this._vertical) {\n this._adapter.setHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.VERTICAL);\n } else {\n this._adapter.removeHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.VERTICAL);\n }\n }\n }\n\n public get stretch(): boolean {\n return this._stretch;\n }\n public set stretch(value: boolean) {\n if (this._stretch !== value) {\n this._stretch = value;\n this._adapter.setStretch(this._stretch);\n if (this._stretch) {\n this._adapter.setHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.STRETCH);\n } else {\n this._adapter.removeHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.STRETCH);\n }\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n if (this._dense !== value) {\n this._dense = value;\n this._adapter.setDense(this._dense);\n if (this._dense) {\n this._adapter.setHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.DENSE);\n } else {\n this._adapter.removeHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.DENSE);\n }\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.setDisabled(this._disabled);\n if (this._disabled) {\n this._adapter.setHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.DISABLED);\n } else {\n this._adapter.removeHostAttribute(BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.DISABLED);\n }\n }\n }\n\n public get options(): IButtonToggleOption[] {\n return this._options.map(o => ({ ...o }));\n }\n public set options(value: IButtonToggleOption[]) {\n this._options = value.map(o => ({ ...o }));\n if (this._isInitialized) {\n this._applyOptions();\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\nimport { ButtonToggleComponent } from '../button-toggle/button-toggle';\nimport { ButtonToggleGroupAdapter } from './button-toggle-group-adapter';\nimport { BUTTON_TOGGLE_GROUP_CONSTANTS, IButtonToggleOption } from './button-toggle-group-constants';\nimport { ButtonToggleGroupFoundation } from './button-toggle-group-foundation';\n\nconst template = '<template><div class=\\\"forge-button-toggle-group\\\" role=\\\"group\\\" aria-label=\\\"Button group\\\" part=\\\"root\\\"><slot></slot></div></template>';\nconst styles = '.forge-button-toggle-group{display:-webkit-box;display:flex}.forge-button-toggle-group ::slotted(:not(:last-child)){--forge-button-toggle-border-right-width:0;--forge-button-toggle-border-top-left-radius:0;--forge-button-toggle-border-bottom-left-radius:0;--forge-button-toggle-border-top-right-radius:0;--forge-button-toggle-border-bottom-right-radius:0}.forge-button-toggle-group ::slotted(:first-child){--forge-button-toggle-border-top-left-radius:4px;--forge-button-toggle-border-bottom-left-radius:4px}.forge-button-toggle-group ::slotted(:last-child){--forge-button-toggle-border-top-left-radius:0;--forge-button-toggle-border-bottom-left-radius:0;--forge-button-toggle-border-top-right-radius:4px;--forge-button-toggle-border-bottom-right-radius:4px}.forge-button-toggle-group--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-button-toggle-group--vertical ::slotted(:not(:last-child)){--forge-button-toggle-border-right-width:1px;--forge-button-toggle-border-bottom-width:0;--forge-button-toggle-border-top-left-radius:0;--forge-button-toggle-border-bottom-left-radius:0;--forge-button-toggle-border-top-right-radius:0;--forge-button-toggle-border-bottom-right-radius:0}.forge-button-toggle-group--vertical ::slotted(:first-child){--forge-button-toggle-border-top-left-radius:4px;--forge-button-toggle-border-top-right-radius:4px}.forge-button-toggle-group--vertical ::slotted(:last-child){--forge-button-toggle-border-top-left-radius:0;--forge-button-toggle-border-top-right-radius:0;--forge-button-toggle-border-bottom-left-radius:4px;--forge-button-toggle-border-bottom-right-radius:4px}.forge-button-toggle-group ::slotted(:only-child){--forge-button-toggle-border-top-left-radius:4px;--forge-button-toggle-border-bottom-left-radius:4px;--forge-button-toggle-border-top-right-radius:4px;--forge-button-toggle-border-bottom-right-radius:4px}.forge-button-toggle-group--stretch{width:100%}:host{display:block}:host([hidden]){display:none}';\n\nexport interface IButtonToggleGroupComponent extends IBaseComponent {\n value: any;\n multiple: boolean;\n stretch: boolean;\n mandatory: boolean;\n vertical: boolean;\n disabled: boolean;\n dense: boolean;\n options: IButtonToggleOption[];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-button-toggle-group': IButtonToggleGroupComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-button-toggle-group>` custom element.\n * \n * @tag forge-button-toggle-group\n */\n@CustomElement({\n name: BUTTON_TOGGLE_GROUP_CONSTANTS.elementName,\n dependencies: [ButtonToggleComponent]\n})\nexport class ButtonToggleGroupComponent extends BaseComponent implements IButtonToggleGroupComponent {\n public static get observedAttributes(): string[] {\n return [\n BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.VALUE,\n BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.MULTIPLE,\n BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.MANDATORY,\n BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.VERTICAL,\n BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.STRETCH,\n BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.DISABLED,\n BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.DENSE\n ];\n }\n\n private _foundation: ButtonToggleGroupFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ButtonToggleGroupFoundation(new ButtonToggleGroupAdapter(this));\n }\n\n public initializedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n case BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.MANDATORY:\n this.mandatory = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.VERTICAL:\n this.vertical = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.STRETCH:\n this.stretch = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_GROUP_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public value: any;\n\n @FoundationProperty()\n public multiple: boolean;\n\n @FoundationProperty()\n public mandatory: boolean;\n\n @FoundationProperty()\n public vertical: boolean;\n\n @FoundationProperty()\n public stretch: boolean;\n\n @FoundationProperty()\n public dense: boolean;\n\n @FoundationProperty()\n public disabled: boolean;\n\n @FoundationProperty()\n public options: IButtonToggleOption[];\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { ButtonToggleGroupComponent } from './button-toggle-group';\n\nexport * from './button-toggle-group-adapter';\nexport * from './button-toggle-group-constants';\nexport * from './button-toggle-group-foundation';\nexport * from './button-toggle-group';\n\nexport function defineButtonToggleGroupComponent(): void {\n defineCustomElement(ButtonToggleGroupComponent);\n}\n"],
|
|
5
|
-
"mappings": "
|
|
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{a as rt}from"./chunk.E37HEAJ5.js";import{d as at}from"./chunk.57XBS3DF.js";import{a as f,b as nt}from"./chunk.IMK2LFWR.js";import{h as st}from"./chunk.WGE5R5JK.js";import{c as et}from"./chunk.D3DLVPPE.js";import{e as tt}from"./chunk.7JTKKFL4.js";import{e as it}from"./chunk.DRFU6POI.js";import{a as E,b as ot}from"./chunk.G5BCWBD5.js";import{j as K}from"./chunk.LZMYHIO2.js";import{a as F}from"./chunk.D4SNVKDA.js";import{a as Q,d as Z,l as w}from"./chunk.7TQYFMM4.js";import{a as $}from"./chunk.24D46RLZ.js";import{g as J}from"./chunk.7ZS4N2FT.js";import{j as b,k as X,m as G,n as q,o as Y,p as j}from"./chunk.AABG6MSC.js";import{a as z}from"./chunk.A23NSEWA.js";import{a as u}from"./chunk.B3IJU6XJ.js";import{a as R,b as B}from"./chunk.BSZ2LBJX.js";import{a as W}from"./chunk.3E5QKMHL.js";import{a as N,e as H,g as V,i as U}from"./chunk.HN4PXH3D.js";import{m as A,s as P,u as x}from"./chunk.R4NDFXVA.js";import{a as S,k as c,l as L,o as y}from"./chunk.G76HB2FK.js";import{a as k,f as p}from"./chunk.MCIQXNKY.js";var h=`${B}time-picker`,lt={TOGGLE:"forge-time-picker-toggle",VALUE:"value",OPEN:"open",ALLOW_SECONDS:"allow-seconds",MASKED:"masked",SHOW_MASK_FORMAT:"show-mask-format",USE_24_HOUR_TIME:"use-24-hour-time",ALLOW_INVALID_TIME:"allow-invalid-time",MIN:"min",MAX:"max",START_TIME:"start-time",STEP:"step",ALLOW_INPUT:"allow-input",SHOW_NOW:"show-now",SHOW_HOUR_OPTIONS:"show-hour-options",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",ALLOW_DROPDOWN:"allow-dropdown"},ft={INPUT:"input, input[forge-time-picker-input]",TOGGLE:`[${lt.TOGGLE}]`},gt={OPEN:`${h}-open`,CLOSE:`${h}-close`,INPUT:`${h}-input`,CHANGE:`${h}-change`},vt={DEFAULT_MINUTE_STEP:60,MAX_DAY_MILLIS:864e5,MAX_DAY_MINUTES:1440},s={elementName:h,attributes:lt,selectors:ft,events:gt,numbers:vt};var g=class extends z{constructor(e){super(e)}initialize(){this._inputElement=this._component.querySelector(s.selectors.INPUT)}initializeMask(e){this._inputMask&&this._inputMask.destroy(),this._inputMask=new J(this._inputElement,e)}destroy(){this._targetElement=void 0,this._toggleElement=void 0,this._inputElement=void 0}destroyMask(){this._inputMask&&(this._inputMask.destroy(),this._inputMask=void 0)}initializeAccessibility(e){this._inputElement.setAttribute("autocomplete","off"),this._inputElement.setAttribute("autocorrect","off"),this._inputElement.setAttribute("autocapitalize","off"),this._inputElement.setAttribute("spellcheck","false"),this._inputElement.setAttribute("role","combobox"),this._inputElement.setAttribute("aria-live","assertive"),this._inputElement.setAttribute("aria-atomic","true"),this._inputElement.setAttribute("aria-haspopup","true"),this._inputElement.setAttribute("aria-expanded","false")}addInputListener(e,i,n){this._inputElement.addEventListener(e,i,{capture:n})}removeInputListener(e,i,n){this._inputElement&&this._inputElement.removeEventListener(e,i,{capture:n})}addToggleListener(e,i){this._toggleElement&&this._toggleElement.addEventListener(e,i)}removeToggleListener(e,i){this._toggleElement&&this._toggleElement.removeEventListener(e,i)}hasInputElement(){return!!this._inputElement}tryCreateToggle(){let e=this._component.querySelector(f.elementName),i=this._component.querySelector(s.selectors.TOGGLE);if(e){let n=e.querySelector(`${E.elementName}[slot=trailing]`);if(n||i){this._toggleElement=n||i;return}let l=document.createElement(E.elementName);l.slot="trailing",l.dense=!0,l.densityLevel=3,l.style.marginRight="4px";let o=document.createElement("button");o.type="button",o.tabIndex=-1,o.setAttribute("aria-label","Toggle time dropdown");let d=document.createElement(Q.elementName);d.name="clock_outline",o.appendChild(d),l.appendChild(o),e.appendChild(l),this._toggleElement=l}else i&&(this._toggleElement=i)}tryFocusInput(){this._inputElement.select()}tryBlurInput(){this._inputElement.blur()}selectInputText(){this._inputElement.select()}isInputDisabled(){return this._inputElement.disabled}isInputFocused(){return P()===this._inputElement}setInputValue(e,i){this._inputElement.value!==e&&(this._inputElement.value=e,this._inputMask&&this._inputMask.update(),i&&(this._emitInputEvent("change"),this._emitInputEvent("input")))}getInputValue(){return this._inputMask?this._inputMask.maskedValue:this._inputElement.value}setDisabled(e){this._inputElement.disabled=e,this._inputElement.setAttribute("aria-disabled",e.toString()),this.setToggleDisabled(e)}attachDropdown(e){this._listDropdown=new st(this._inputElement,e),this._listDropdown.open(),this._inputElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`)}detachDropdown(){this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0),this._inputElement.removeAttribute("aria-controls")}propagateKey(e){var i;(i=this._listDropdown)==null||i.handleKey(e)}setActiveDescendant(e){x(this._inputElement,!!e,"aria-activedescendant",e)}getTargetElementWidth(e){return this._getTargetElement(e).getBoundingClientRect().width}_emitInputEvent(e){this._inputElement.dispatchEvent(new Event(e))}emitInputEvent(e,i){U(this._inputElement,e,i)}setInputReadonly(e){this._inputElement.readOnly=e}setToggleDisabled(e){if(this._toggleElement)if(this._toggleElement.setAttribute("aria-disabled",e.toString()),"disabled"in this._toggleElement)this._toggleElement.disabled=e;else{let i=this._toggleElement.querySelector("button");i&&(i.disabled=e)}}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}getActiveOption(){var e;return(e=this._listDropdown)==null?void 0:e.getActiveOption()}_getTargetElement(e){return this._targetElement?this._targetElement:(this._targetElement=e?this._component.querySelector(e)||this._getDefaultTargetElement():this._getDefaultTargetElement(),this._targetElement)}_getDefaultTargetElement(){let e=this._component.querySelector(f.elementName);if(e&&e.shadowRoot){let i=V(e,f.selectors.ROOT);if(i)return i}return this._component}};function C(a,t,e){if(!a||/^\s*$/.test(a))return null;let i=0,n=0,l=0;if(b.test(a)){let o=G(a);i=+o.hours||0,n=+o.minutes||0,l=+o.seconds||0}else if(X.test(a)){let o=q(a);i=+o.hours||0,n=+o.minutes||0,l=+o.seconds||0,i===12&&o.meridiem==="AM"&&(i=0),i<12&&o.meridiem==="PM"&&(i+=12)}else return null;return dt(i)+I(n)+(e?O(l):0)}function m(a,t,e){if(typeof a!="number"||a<0)return null;let i=Math.min(pt(a),23),n=Math.min(ut(a),59),o=a/(1e3*60)<720?"AM":"PM";t||(i=i<=12?i:i-12,i===0&&(i=12));let d=`${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`;if(e){let _=Math.min(M(a),59);d+=`:${String(_).padStart(2,"0")}`}return t||(d+=` ${o}`),d}function pt(a){return Math.abs(Math.floor(a/(1e3*60*60)))}function ut(a){return Math.abs(Math.floor(v(a)%60))}function v(a){return a/(1e3*60)}function M(a){return Math.abs(Math.floor(It(a)%60))}function It(a){return a/1e3}function dt(a){return a*60*60*1e3}function I(a){return a*60*1e3}function O(a){return a*1e3}function mt(a){return a-O(M(a))}function D(a){let t=new Date,e=t.getHours(),i=t.getMinutes();return dt(e)+I(i)+(a?O(t.getSeconds()):0)}function Rt(a,t,e=!1){a||(a=new Date);let i=C(t,!0,e);if(!i)return a.setHours(0,0,0),a;let n=pt(i),l=828e5;n>l?n=l:n<0&&(n=0);let o=ut(i),d=e?M(i):0;return a.setHours(n,o,d),a}var T=class{constructor(t){this._adapter=t;this._value=null;this._masked=!0;this._use24HourTime=!1;this._showMaskFormat=!1;this._min=null;this._max=null;this._restrictedTimes=[];this._startTime=null;this._step=s.numbers.DEFAULT_MINUTE_STEP;this._allowInput=!0;this._open=!1;this._allowSeconds=!1;this._allowInvalidTime=!1;this._showNow=!1;this._showHourOptions=!0;this._customOptions=[];this._disabled=!1;this._popupClasses=[];this._allowDropdown=!0;this._isInitialized=!1;this._identifier=S(),this._inputListener=e=>this._onInput(e),this._inputKeydownListener=e=>this._onInputKeydown(e),this._toggleMousedownListener=e=>this._onToggleMousedown(e),this._inputFocusListener=e=>this._onInputFocus(e),this._inputBlurListener=e=>this._onInputBlur(e),this._inputMousedownListener=e=>this._onInputMousedown(e)}initialize(){if(this._adapter.initialize(),!this._adapter.hasInputElement())throw new Error("Unable to locate <input> element to attach to.");if(this._adapter.initializeAccessibility(this._identifier),!this._value){let t=this._adapter.getInputValue();this._setValue(this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds))}this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._formatInputValue(!1),typeof this._value=="number"&&this._applyValue(this._value,!1),this._applyAllowInput(),this._applyAllowDropdown(),this._applyDisabled(),this._applyMask(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._adapter.removeInputListener("input",this._inputListener),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._masked&&this._adapter.destroyMask(),this._closeDropdown(),this._adapter.destroy()}_onInput(t){this._handleInput(this._adapter.getInputValue())}_onInputKeydown(t){if(t.shiftKey)switch(t.code){case"Backspace":case"Delete":t.preventDefault(),this._trySetValue(null)&&this._formatInputValue();return}switch(t.code){case"Tab":this._open&&this._selectActiveOption();break;case"Esc":case"Escape":this._open&&(t.preventDefault(),this._closeDropdown(!0));break;case"Down":case"ArrowDown":this._allowDropdown&&(t.preventDefault(),this._open?this._adapter.propagateKey(t.code):(this._openDropdown(),this._adapter.activateFirstOption()));break;case"Up":case"ArrowUp":this._allowDropdown&&(t.preventDefault(),this._open&&this._adapter.propagateKey(t.code));break;case"Enter":case"Home":case"End":this._open&&(t.code==="Enter"&&t.stopPropagation(),t.preventDefault(),this._adapter.propagateKey(t.code));break;case"KeyN":t.preventDefault();let e=D(this._allowSeconds);if(this._value!==e){let i=m(e,!0,this._allowSeconds);this._emitChangeEvent(i)&&(this._applyValue(e),this._selectInputText())}break}}_selectActiveOption(){let t=this._adapter.getActiveOption();t&&this._onSelect(t.value)}_onToggleMousedown(t){this._disabled||!this.allowDropdown||(t.stopPropagation(),!this._adapter.isInputDisabled()&&(t.preventDefault(),this._open?this._closeDropdown(!0):(F.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openDropdown())))}_onInputFocus(t){this._allowInput&&this._adapter.selectInputText()}_onInputBlur(t){this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeDropdown(!0)}_onInputMousedown(t){!this._allowInput&&!this._open&&(this._openDropdown(),this._adapter.tryFocusInput(),window.requestAnimationFrame(()=>this._adapter.selectInputText()))}_applyDisabled(){this._adapter.setDisabled(this._disabled)}_applyMask(){if(this._masked&&this._allowInput){let t={showMaskFormat:this._showMaskFormat,use24HourTime:this._use24HourTime,showSeconds:this._allowSeconds,prepareCallback:this._prepareMaskCallback,onChange:y(e=>this._handleInput(e),0,!0)};this._adapter.initializeMask(t)}else this._adapter.destroyMask(),this._formatInputValue()}_applyAllowInput(){this._adapter.setInputReadonly(!this._allowInput),this._allowInput?(this._adapter.removeInputListener("mousedown",this._inputMousedownListener),this._masked||this._adapter.addInputListener("input",this._inputListener)):(this._adapter.addInputListener("mousedown",this._inputMousedownListener),this._adapter.removeInputListener("input",this._inputListener))}_applyAllowDropdown(){this._adapter.setToggleDisabled(!this._allowDropdown),this._allowDropdown?(this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.tryCreateToggle(),this._adapter.addToggleListener("mousedown",this._toggleMousedownListener)):this._open&&this._closeDropdown(!0)}_applyAllowSeconds(){let t=this._value;if(this._allowSeconds){if(this._isInitialized&&t!==this._value){let e=m(this._value,!0,!0);this._emitChangeEvent(e)}}else{if(typeof this._value!="number")return;if(this._setValue(mt(this._value)),this._isInitialized&&t!==this._value){let e=m(this._value,!0,!1);this._emitChangeEvent(e)}}}_handleInput(t){let e=t;if(!this._allowInput)return;this._open&&this._closeDropdown(!0),t=j(t,this._use24HourTime,this._allowSeconds),typeof this._coercionCallback=="function"&&(t=this._coercionCallback.call(null,e,t,this._allowSeconds)),this._isValidTimeFormat(t)||(t="");let i;!this._masked&&typeof this._parseCallback=="function"?i=this._parseCallback.call(null,t):i=this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds),i=this._validateMillis(i),this._trySetValue(i)}_emitChangeEvent(t,e=!1){return this._adapter.emitHostEvent(s.events.CHANGE,t,!0,!e)}_trySetValue(t){if(t===this._value)return!1;let e=m(t,!0,this._allowSeconds);return this._masked&&this._adapter.emitInputEvent(s.events.INPUT,e),this._value!==t&&this._emitChangeEvent(e)?(this._setValue(t),!0):!1}_setValue(t){this._value=this._normalizeTimeValue(t)}_validateMillis(t){if(typeof t=="number"){let e=typeof this._min=="number"&&t<this._min,i=typeof this._max=="number"&&t>this._max;(e||i)&&(t=null)}return typeof t=="number"&&this._restrictedTimes.length&&this._restrictedTimes.includes(t)&&(t=null),t}_isValidTimeFormat(t){return!this._masked&&typeof this._validationCallback=="function"?this._validationCallback.call(this,t):Y(t)}_isValidInputValue(t){return b.test(t)}_onSelect(t){if(this._closeDropdown(!0),!t.isCustom&&t.metadata==="now"&&(t.time=D(this._allowSeconds)),t.isCustom)if(typeof t.customCallback=="function"){let n=t.customCallback.call(null,t.metadata);if(typeof n!="number")throw new Error("Custom options must provide a time of day value in milliseconds.");t.time=n}else throw new Error("You must implement a `toMilliseconds` callback that returns the time value to use for this custom option.");if(this._value===t.time)return;let e=m(t.time,!0,this._allowSeconds);!this._emitChangeEvent(e)||(this._applyValue(t.time),this._selectInputText())}_selectInputText(){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.isInputFocused()&&this._adapter.selectInputText()})})}_applyValue(t,e=!0){this._setValue(t);let i=this._formatValue(this._value);this._adapter.getInputValue()!==i&&this._adapter.setInputValue(i,e)}_normalizeTimeValue(t){return t==null?null:t<0?0:t>s.numbers.MAX_DAY_MILLIS?s.numbers.MAX_DAY_MILLIS:t}_openDropdown(){let t=this._generateTimeOptions();if(!this.allowDropdown||!t.length)return;this._formatInputValue(),this._open=!0,this._adapter.setHostAttribute(s.attributes.OPEN);let e=t.filter(o=>!o.divider&&!o.disabled),i=[],n;if(t.length){if(this._value!=null){let o=this._findClosestOptionIndex(this._value,e);o>=0&&(e[o].value.time===this._value?i=[e[o].value]:n=o)}else if(typeof this._startTime=="number"){let o=this._findClosestOptionIndex(this._startTime,e);o>=0&&o<e.length&&(n=o)}}let l={id:`forge-time-picker-${this._identifier}`,selectedValues:i,syncWidth:!0,activeStartIndex:n,popupClasses:this._popupClasses,popupStatic:!0,type:"standard",options:t,selectCallback:o=>this._onSelect(o),closeCallback:()=>this._closeDropdown(!0),activeChangeCallback:o=>this._adapter.setActiveDescendant(o),targetWidthCallback:()=>this._adapter.getTargetElementWidth(this._popupTarget)};this._adapter.attachDropdown(l),this._adapter.emitHostEvent(s.events.OPEN,void 0,!1)}_closeDropdown(t=!1){this._open=!1,this._adapter.removeHostAttribute(s.attributes.OPEN),this._adapter.detachDropdown(),t&&this._adapter.emitHostEvent(s.events.CLOSE,!0,!1)}_findClosestOptionIndex(t,e){let i=e.reduce((n,l)=>Math.abs((l.value.time||0)-t)<Math.abs((n.value.time||0)-t)?l:n);return e.indexOf(i)}_formatInputValue(t=!0){let e=this._adapter.getInputValue();if(this._allowInvalidTime&&!this._masked&&e&&!this._value)return;let i=this._formatValue(this._value);e!==i&&this._adapter.setInputValue(i,t)}_generateTimeOptions(){let t=this._min!=null?Math.max(v(this._min),0):0,e=this._max!=null?Math.min(v(this._max),s.numbers.MAX_DAY_MINUTES):s.numbers.MAX_DAY_MINUTES,i=this._step,n=[],l=[];if(this._showHourOptions){for(let d=t;d<=e&&d!==s.numbers.MAX_DAY_MINUTES;d+=i){let _=I(d),_t=this._restrictedTimes.includes(_),ht=m(_,this._use24HourTime,!1)||"",bt={time:_};n.push({label:ht,value:bt,disabled:_t})}let o=n.findIndex(d=>d.value.time/1e3/60>=720);o>=0&&o<n.length-1&&n.splice(o,0,{label:"",value:null,divider:!0})}if(this._showNow){let o={time:null,metadata:"now"};l.push({label:"Now",value:o})}if(Array.isArray(this._customOptions)&&this._customOptions.length){let o=this._customOptions.map(d=>{let _={time:null,metadata:d.value,isCustom:!0,customCallback:d.toMilliseconds};return{label:d.label,value:_}});l=[...l,...o]}return l.length&&(n.length&&n.splice(0,0,{label:"",value:null,divider:!0}),l.forEach((o,d)=>n.splice(d,0,o))),n}_convertTimeStringToMillis(t,e,i){return(!t||!this._isValidTimeFormat(t))&&(t=""),C(t,e,i)}_formatValue(t){return!this._masked&&typeof this._formatCallback=="function"?this._formatCallback.call(null,t,this._use24HourTime,this._allowSeconds):m(this._value,this._use24HourTime,this._allowSeconds)||""}_warnInvalidFormat(t){console.warn(`The specified value "${t}" does not conform to the required format. The format is "HH:mm", "HH:mm:ss" where HH is 00-23, mm is 00-59, and ss is 00-59.`)}get open(){return this._open}set open(t){this._open!==t&&this._isInitialized&&(this._open=t,this._open?this._openDropdown():this._closeDropdown())}get masked(){return this._masked}set masked(t){this._masked!==t&&(this._masked=t,this._isInitialized&&(this._masked?(this._adapter.removeInputListener("input",this._inputListener),this._applyMask()):(this._adapter.destroyMask(),this._formatInputValue(),this._adapter.addInputListener("input",this._inputListener))))}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(t){this._showMaskFormat!==t&&(this._showMaskFormat=t,this._isInitialized&&this._applyMask())}get allowSeconds(){return this._allowSeconds}set allowSeconds(t){this._allowSeconds!==t&&(this._allowSeconds=!!t,this._applyAllowSeconds(),this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.ALLOW_SECONDS,`${!!t}`))}get use24HourTime(){return this._use24HourTime}set use24HourTime(t){this._use24HourTime!==t&&(this._use24HourTime=!!t,this._isInitialized&&(this._adapter.destroyMask(),this._formatInputValue(),this._applyMask()),this._adapter.setHostAttribute(s.attributes.USE_24_HOUR_TIME,`${!!t}`))}get allowInvalidTime(){return this._allowInvalidTime}set allowInvalidTime(t){this._allowInvalidTime!==t&&(this._allowInvalidTime=!!t,this._adapter.setHostAttribute(s.attributes.ALLOW_INVALID_TIME,`${!!t}`))}get value(){return m(this._value,!0,this._allowSeconds)}set value(t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}let e=this._validateMillis(this._convertTimeStringToMillis(t,!0,!0));this._setValue(e),this._isInitialized&&this._applyValue(this._value)}get min(){return m(this._min,!0,this._allowSeconds)}set min(t){if(this._min!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._min=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get max(){return m(this._max,!0,this._allowSeconds)}set max(t){if(this._max!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._max=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get restrictedTimes(){return this._restrictedTimes.map(t=>m(t,!0,this._allowSeconds)).filter(t=>typeof t=="string")}set restrictedTimes(t){Array.isArray(t)||(t=[]),this._restrictedTimes=t.filter(e=>typeof e=="string").map(e=>this._convertTimeStringToMillis(e,!0,!0)).filter(e=>typeof e=="number")}get startTime(){return m(this._startTime,!0,this._allowSeconds)}set startTime(t){if(this._startTime!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._startTime=this._convertTimeStringToMillis(t,!0,this._allowSeconds)}}get step(){return this._step}set step(t){this._step=t}get allowInput(){return this._allowInput}set allowInput(t){this._allowInput!==t&&(this._allowInput=t,this._isInitialized&&(this._applyAllowInput(),this._applyMask()))}get popupTarget(){return this._popupTarget}set popupTarget(t){this._popupTarget!==t&&(this._popupTarget=t)}get showNow(){return this._showNow}set showNow(t){this._showNow!==t&&(this._showNow=t)}get showHourOptions(){return this._showHourOptions}set showHourOptions(t){this._showHourOptions!==t&&(this._showHourOptions=t)}get customOptions(){return this._customOptions}set customOptions(t){this._customOptions=Array.isArray(t)?t:[]}set validationCallback(t){this._validationCallback=t,this._isInitialized&&this._applyMask()}set parseCallback(t){this._parseCallback=t}set formatCallback(t){this._formatCallback=t}set coercionCallback(t){this._coercionCallback=t}set prepareMaskCallback(t){this._prepareMaskCallback=t,this._isInitialized&&this._applyMask()}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=!!t,this._isInitialized&&this._applyDisabled(),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(t){Array.isArray(t)?this._popupClasses=[...t]:this._popupClasses=[t]}get allowDropdown(){return this._allowDropdown}set allowDropdown(t){this._allowDropdown!==t&&(this._allowDropdown=t,this._isInitialized&&this._applyAllowDropdown())}};var Tt="<template><slot></slot></template>",kt=":host{display:block}:host([hidden]){display:none}",r=class extends W{constructor(){super();Z.define([rt,K]),H(this,Tt,kt),this._foundation=new T(new g(this))}static get observedAttributes(){return[s.attributes.VALUE,s.attributes.OPEN,s.attributes.ALLOW_SECONDS,s.attributes.MASKED,s.attributes.SHOW_MASK_FORMAT,s.attributes.USE_24_HOUR_TIME,s.attributes.ALLOW_INVALID_TIME,s.attributes.MIN,s.attributes.MAX,s.attributes.START_TIME,s.attributes.STEP,s.attributes.ALLOW_INPUT,s.attributes.SHOW_NOW,s.attributes.SHOW_HOUR_OPTIONS,s.attributes.DISABLED,s.attributes.POPUP_CLASSES,s.attributes.ALLOW_DROPDOWN]}connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():A(this,s.selectors.INPUT).then(()=>this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,i,n){switch(e){case s.attributes.VALUE:this.value=n;break;case s.attributes.OPEN:this.open=c(n);break;case s.attributes.ALLOW_SECONDS:this.allowSeconds=c(n);break;case s.attributes.MASKED:this.masked=c(n);break;case s.attributes.SHOW_MASK_FORMAT:this.showMaskFormat=c(n);break;case s.attributes.USE_24_HOUR_TIME:this.use24HourTime=c(n);break;case s.attributes.ALLOW_INVALID_TIME:this.allowInvalidTime=c(n);break;case s.attributes.SHOW_NOW:this.showNow=c(n);break;case s.attributes.SHOW_HOUR_OPTIONS:this.showHourOptions=c(n);break;case s.attributes.MIN:this.min=n;break;case s.attributes.MAX:this.max=n;break;case s.attributes.START_TIME:this.startTime=n;break;case s.attributes.STEP:this.step=L(n);break;case s.attributes.ALLOW_INPUT:this.allowInput=c(n);break;case s.attributes.DISABLED:this.disabled=c(n);break;case s.attributes.POPUP_CLASSES:this.popupClasses=n;break;case s.attributes.ALLOW_DROPDOWN:this.allowDropdown=c(n);break}}};p([u()],r.prototype,"value",2),p([u()],r.prototype,"open",2),p([u()],r.prototype,"allowSeconds",2),p([u()],r.prototype,"masked",2),p([u()],r.prototype,"showMaskFormat",2),p([u()],r.prototype,"use24HourTime",2),p([u()],r.prototype,"allowInvalidTime",2),p([u()],r.prototype,"min",2),p([u()],r.prototype,"max",2),p([u()],r.prototype,"restrictedTimes",2),p([u()],r.prototype,"startTime",2),p([u()],r.prototype,"step",2),p([u()],r.prototype,"allowInput",2),p([u()],r.prototype,"showNow",2),p([u()],r.prototype,"showHourOptions",2),p([u()],r.prototype,"customOptions",2),p([u()],r.prototype,"validationCallback",2),p([u()],r.prototype,"parseCallback",2),p([u()],r.prototype,"formatCallback",2),p([u()],r.prototype,"coercionCallback",2),p([u()],r.prototype,"prepareMaskCallback",2),p([u()],r.prototype,"disabled",2),p([u()],r.prototype,"popupClasses",2),p([u()],r.prototype,"allowDropdown",2),p([u()],r.prototype,"popupTarget",2),r=p([R({name:s.elementName,dependencies:[et,tt,ot,w,it,w,at]})],r);var ct=class extends ${constructor(e){super(e)}_build(){let e=document.createElement(s.elementName);return this._attachTextField(e),e}get inputElement(){return this._textFieldDelegate.inputElement}get textFieldElement(){return this._textFieldDelegate.element}get value(){return this._element.value}set value(e){this._element.value=e}get disabled(){return this._element.disabled}set disabled(e){this._element.disabled=e}get invalid(){return this._textFieldDelegate.invalid||!1}set invalid(e){this._textFieldDelegate.invalid=e}onChange(e){this._element.addEventListener(s.events.CHANGE,i=>{var n;return e((n=i.detail)!=null?n:"")})}onInput(e){this._element.masked?this._element.addEventListener(s.events.INPUT,i=>{var n;return e((n=i.detail)!=null?n:"")}):this._textFieldDelegate.inputElement.addEventListener("input",i=>e(i.target.value))}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",i=>e(i))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",i=>e(i))}_attachTextField(e){var n,l,o,d;let i={props:k({},(l=(n=this._config.options)==null?void 0:n.textFieldDelegateConfig)==null?void 0:l.props),options:k({},(d=(o=this._config.options)==null?void 0:o.textFieldDelegateConfig)==null?void 0:d.options)};this._textFieldDelegate=new nt(i),e.appendChild(this._textFieldDelegate.element)}};function xe(){N(r)}export{s as a,g as b,C as c,m as d,pt as e,ut as f,v as g,M as h,It as i,dt as j,I as k,O as l,mt as m,D as n,Rt as o,T as p,r as q,ct as r,xe as s};
|
|
7
|
+
//# sourceMappingURL=chunk.5SRA2RH3.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/time-picker/time-picker-constants.ts", "../../src/time-picker/time-picker-adapter.ts", "../../src/time-picker/time-picker-utils.ts", "../../src/time-picker/time-picker-foundation.ts", "../../src/time-picker/time-picker.ts", "../../src/time-picker/time-picker-component-delegate.ts", "../../src/time-picker/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { IListDropdownOption } from '../list-dropdown/list-dropdown-constants';\nimport IMask, { Masked, InputMask } from 'imask';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}time-picker`;\n\nconst attributes = {\n TOGGLE: 'forge-time-picker-toggle',\n VALUE: 'value',\n OPEN: 'open',\n ALLOW_SECONDS: 'allow-seconds',\n MASKED: 'masked',\n SHOW_MASK_FORMAT: 'show-mask-format',\n USE_24_HOUR_TIME: 'use-24-hour-time',\n ALLOW_INVALID_TIME: 'allow-invalid-time',\n MIN: 'min',\n MAX: 'max',\n START_TIME: 'start-time',\n STEP: 'step',\n ALLOW_INPUT: 'allow-input',\n SHOW_NOW: 'show-now',\n SHOW_HOUR_OPTIONS: 'show-hour-options',\n DISABLED: 'disabled',\n POPUP_CLASSES: 'popup-classes',\n ALLOW_DROPDOWN: 'allow-dropdown'\n};\n\nconst selectors = {\n INPUT: 'input, input[forge-time-picker-input]',\n TOGGLE: `[${attributes.TOGGLE}]`\n};\n\nconst events = {\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`,\n CHANGE: `${elementName}-change`\n};\n\nconst numbers = {\n DEFAULT_MINUTE_STEP: 60,\n MAX_DAY_MILLIS: 86400000,\n MAX_DAY_MINUTES: 1440\n};\n\nexport const TIME_PICKER_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n events,\n numbers\n};\n\nexport type TimePickerValidationCallback = (time: string) => boolean;\nexport type TimePickerParseCallback = (time: string) => number | null;\nexport type TimePickerFormatCallback = (value: number | null) => string;\nexport type TimePickerCustomOptionCallback<T> = (value: T, use24HourTime: boolean, allowSeconds: boolean) => number;\nexport type TimePickerCoercionCallback = (rawValue: string, coercedValue: string, allowSeconds: boolean) => string;\nexport type TimePickerPrepareMaskCallback = (value: string, masked: Masked<string>, flags: IMask.AppendFlags, maskInstance: InputMask<IMask.AnyMaskedOptions>) => string;\n\nexport interface ITimePickerOption<T = any> extends IListDropdownOption<T> {\n toMilliseconds: TimePickerCustomOptionCallback<T>;\n}\nexport interface ITimePickerOptionValue {\n time: number | null;\n metadata?: any;\n isCustom?: boolean;\n customCallback?: TimePickerCustomOptionCallback<any>;\n}\n", "import { getShadowElement, emitEvent, getActiveElement, toggleAttribute } from '@tylertech/forge-core';\nimport { ITimePickerComponent } from './time-picker';\nimport { BaseAdapter } from '../core';\nimport { TIME_PICKER_CONSTANTS } from './time-picker-constants';\nimport { ITimeInputMaskOptions, TimeInputMask } from '../core/mask/time-input-mask';\nimport { TEXT_FIELD_CONSTANTS, ITextFieldComponent } from '../text-field';\nimport { ICON_BUTTON_CONSTANTS, IIconButtonComponent } from '../icon-button';\nimport { ICON_CONSTANTS, IIconComponent } from '../icon';\nimport { IListDropdownConfig, IListDropdownOption } from '../list-dropdown/list-dropdown-constants';\nimport { IListDropdown, ListDropdown } from '../list-dropdown';\n\nexport interface ITimePickerAdapter extends BaseAdapter<ITimePickerComponent> {\n initialize(): void;\n initializeMask(options: ITimeInputMaskOptions): void;\n destroy(): void;\n destroyMask(): void;\n initializeAccessibility(identifier: string): void;\n addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void;\n removeInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void;\n addToggleListener(type: string, listener: (event: Event) => void): void;\n removeToggleListener(type: string, listener: (event: Event) => void): void;\n hasInputElement(): boolean;\n tryCreateToggle(): void;\n tryFocusInput(): void;\n tryBlurInput(): void;\n selectInputText(): void;\n getInputValue(): string;\n setInputValue(value: string, emitEvents: boolean): void;\n isInputDisabled(): boolean;\n isInputFocused(): boolean;\n setDisabled(isDisabled: boolean): void;\n attachDropdown(config: IListDropdownConfig): void;\n detachDropdown(): void;\n setActiveDescendant(id: string): void;\n propagateKey(key: string): void;\n getTargetElementWidth(selector: string): number;\n emitInputEvent(type: string, data?: any): void;\n setInputReadonly(value: boolean): void;\n setToggleDisabled(value: boolean): void;\n activateFirstOption(): void;\n getActiveOption(): IListDropdownOption | undefined;\n}\n\nexport class TimePickerAdapter extends BaseAdapter<ITimePickerComponent> implements ITimePickerAdapter {\n private _inputElement: HTMLInputElement;\n private _toggleElement?: HTMLElement;\n private _inputMask?: TimeInputMask;\n private _listDropdown?: IListDropdown;\n private _targetElement?: HTMLElement;\n\n constructor(component: ITimePickerComponent) {\n super(component);\n }\n\n public initialize(): void {\n this._inputElement = this._component.querySelector(TIME_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n }\n\n public initializeMask(options: ITimeInputMaskOptions): void {\n if (this._inputMask) {\n this._inputMask.destroy();\n }\n this._inputMask = new TimeInputMask(this._inputElement, options);\n }\n\n public destroy(): void {\n this._targetElement = undefined;\n this._toggleElement = undefined as any;\n this._inputElement = undefined as any;\n }\n\n public destroyMask(): void {\n if (this._inputMask) {\n this._inputMask.destroy();\n this._inputMask = undefined;\n }\n }\n\n public initializeAccessibility(identifier: string): void {\n this._inputElement.setAttribute('autocomplete', 'off');\n this._inputElement.setAttribute('autocorrect', 'off');\n this._inputElement.setAttribute('autocapitalize', 'off');\n this._inputElement.setAttribute('spellcheck', 'false');\n this._inputElement.setAttribute('role', 'combobox');\n this._inputElement.setAttribute('aria-live', 'assertive');\n this._inputElement.setAttribute('aria-atomic', 'true');\n this._inputElement.setAttribute('aria-haspopup', 'true');\n this._inputElement.setAttribute('aria-expanded', 'false');\n }\n\n public addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._inputElement.addEventListener(type, listener, { capture });\n }\n\n public removeInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n if (this._inputElement) {\n this._inputElement.removeEventListener(type, listener, { capture });\n }\n }\n\n public addToggleListener(type: string, listener: (event: Event) => void): void {\n if (this._toggleElement) {\n this._toggleElement.addEventListener(type, listener);\n }\n }\n\n public removeToggleListener(type: string, listener: (event: Event) => void): void {\n if (this._toggleElement) {\n this._toggleElement.removeEventListener(type, listener);\n }\n }\n\n public hasInputElement(): boolean {\n return !!this._inputElement;\n }\n\n public tryCreateToggle(): void {\n const textField = this._component.querySelector(TEXT_FIELD_CONSTANTS.elementName) as ITextFieldComponent;\n const toggleElement = this._component.querySelector(TIME_PICKER_CONSTANTS.selectors.TOGGLE);\n if (textField) {\n const existingIconButton = textField.querySelector(`${ICON_BUTTON_CONSTANTS.elementName}[slot=trailing]`);\n if (existingIconButton || toggleElement) {\n this._toggleElement = (existingIconButton || toggleElement) as IIconButtonComponent;\n return;\n }\n\n const iconButtonElement = document.createElement(ICON_BUTTON_CONSTANTS.elementName) as IIconButtonComponent;\n iconButtonElement.slot = 'trailing';\n iconButtonElement.dense = true;\n iconButtonElement.densityLevel = 3;\n iconButtonElement.style.marginRight = '4px'; // Override default trailing slot margin in text-field\n\n const buttonElement = document.createElement('button');\n buttonElement.type = 'button';\n buttonElement.tabIndex = -1;\n buttonElement.setAttribute('aria-label', 'Toggle time dropdown');\n\n const iconElement = document.createElement(ICON_CONSTANTS.elementName) as IIconComponent;\n iconElement.name = 'clock_outline';\n buttonElement.appendChild(iconElement);\n iconButtonElement.appendChild(buttonElement);\n\n textField.appendChild(iconButtonElement);\n this._toggleElement = iconButtonElement;\n } else if (toggleElement) {\n this._toggleElement = toggleElement as HTMLElement;\n }\n }\n\n public tryFocusInput(): void {\n this._inputElement.select();\n }\n\n public tryBlurInput(): void {\n this._inputElement.blur();\n }\n\n public selectInputText(): void {\n this._inputElement.select();\n }\n\n public isInputDisabled(): boolean {\n return this._inputElement.disabled;\n }\n\n public isInputFocused(): boolean {\n return getActiveElement() === this._inputElement;\n }\n\n public setInputValue(value: string, emitEvents: boolean): void {\n if (this._inputElement.value === value) {\n return;\n }\n\n this._inputElement.value = value;\n\n if (this._inputMask) {\n this._inputMask.update();\n }\n\n if (emitEvents) {\n this._emitInputEvent('change');\n this._emitInputEvent('input');\n }\n }\n\n public getInputValue(): string {\n return this._inputMask ? this._inputMask.maskedValue : this._inputElement.value;\n }\n\n public setDisabled(isDisabled: boolean): void {\n this._inputElement.disabled = isDisabled;\n this._inputElement.setAttribute('aria-disabled', isDisabled.toString());\n this.setToggleDisabled(isDisabled);\n }\n\n public attachDropdown(config: IListDropdownConfig): void {\n this._listDropdown = new ListDropdown(this._inputElement, config);\n this._listDropdown.open();\n this._inputElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n }\n \n public detachDropdown(): void {\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n this._inputElement.removeAttribute('aria-controls');\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public setActiveDescendant(id: string): void {\n toggleAttribute(this._inputElement, !!id, 'aria-activedescendant', id);\n }\n\n public getTargetElementWidth(selector: string): number {\n const targetElement = this._getTargetElement(selector);\n return targetElement.getBoundingClientRect().width;\n }\n\n private _emitInputEvent(type: string): void {\n this._inputElement.dispatchEvent(new Event(type));\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._inputElement, type, data);\n }\n\n public setInputReadonly(value: boolean): void {\n this._inputElement.readOnly = value;\n }\n\n public setToggleDisabled(value: boolean): void {\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', value.toString());\n if ('disabled' in this._toggleElement) {\n (this._toggleElement as HTMLButtonElement).disabled = value;\n } else {\n const button = this._toggleElement.querySelector('button') as HTMLButtonElement;\n if (button) {\n button.disabled = value;\n }\n }\n }\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n return this._listDropdown?.getActiveOption();\n }\n\n private _getTargetElement(selector?: string): HTMLElement {\n if (this._targetElement) {\n return this._targetElement;\n }\n this._targetElement = selector ? this._component.querySelector(selector) as HTMLElement || this._getDefaultTargetElement() : this._getDefaultTargetElement();\n return this._targetElement;\n }\n\n private _getDefaultTargetElement(): HTMLElement {\n // This component is often used with the text-field, if so, let's target our popup around one if its internal elements for proper alignnment\n const textField = this._component.querySelector(TEXT_FIELD_CONSTANTS.elementName) as HTMLElement;\n if (textField && textField.shadowRoot) {\n const textFieldRoot = getShadowElement(textField, TEXT_FIELD_CONSTANTS.selectors.ROOT) as HTMLElement;\n if (textFieldRoot) {\n return textFieldRoot;\n }\n }\n return this._component; // Otherwise we just use the time-picker host as the target\n }\n}\n", "import { tokenize24HourTimeString, tokenize12HourTimeString, TWENTY_FOUR_HOUR_TIME_REGEX, TWELVE_HOUR_TIME_REGEX } from '../core/utils/time-utils';\n\nexport function timeStringToMillis(time: string | null, use24HourTime: boolean, allowSeconds: boolean): number | null {\n if (!time || /^\\s*$/.test(time)) {\n return null;\n }\n\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (TWENTY_FOUR_HOUR_TIME_REGEX.test(time)) {\n const tokens = tokenize24HourTimeString(time);\n hours = +tokens.hours || 0;\n minutes = +tokens.minutes || 0;\n seconds = +tokens.seconds || 0;\n } else if (TWELVE_HOUR_TIME_REGEX.test(time)) {\n const tokens = tokenize12HourTimeString(time);\n hours = +tokens.hours || 0;\n minutes = +tokens.minutes || 0;\n seconds = +tokens.seconds || 0;\n if (hours === 12 && tokens.meridiem === 'AM') {\n hours = 0;\n }\n if (hours < 12 && tokens.meridiem === 'PM') {\n hours += 12;\n }\n } else {\n return null;\n }\n\n return hoursToMillis(hours) + minutesToMillis(minutes) + (allowSeconds ? secondsToMillis(seconds) : 0);\n}\n\nexport function millisToTimeString(value: number | null | undefined, use24HourTime: boolean, allowSeconds: boolean): string | null {\n if (typeof value !== 'number' || value < 0) {\n return null;\n }\n\n let hours = Math.min(millisToHours(value), 23);\n const minutes = Math.min(millisToMinutesClamped(value), 59);\n const totalMinutes = value / (1000 * 60);\n const meridiem = totalMinutes < 720 ? 'AM' : 'PM';\n\n if (!use24HourTime) {\n hours = hours <= 12 ? hours : hours - 12;\n if (hours === 0) {\n hours = 12;\n }\n }\n\n let time = `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}`;\n\n if (allowSeconds) {\n const seconds = Math.min(millisToSecondsClamped(value), 59);\n time += `:${String(seconds).padStart(2, '0')}`;\n }\n\n if (!use24HourTime) {\n time += ` ${meridiem}`;\n }\n\n return time;\n}\n\nexport function millisToHours(millis: number): number {\n return Math.abs(Math.floor(millis / (1000 * 60 * 60)));\n}\n\nexport function millisToMinutesClamped(millis: number): number {\n return Math.abs(Math.floor(millisToMinutes(millis) % 60));\n}\n\nexport function millisToMinutes(millis: number): number {\n return millis / (1000 * 60);\n}\n\nexport function millisToSecondsClamped(millis: number): number {\n return Math.abs(Math.floor(millisToSeconds(millis) % 60));\n}\n\nexport function millisToSeconds(millis: number): number {\n return millis / 1000;\n}\n\nexport function hoursToMillis(hours: number): number {\n return hours * 60 * 60 * 1000;\n}\n\nexport function minutesToMillis(minutes: number): number {\n return minutes * 60 * 1000;\n}\n\nexport function secondsToMillis(seconds: number): number {\n return seconds * 1000;\n}\n\nexport function stripSecondsFromMillis(millis: number): number {\n return millis - secondsToMillis(millisToSecondsClamped(millis));\n}\n\nexport function getCurrentTimeOfDayMillis(allowSeconds: boolean): number {\n const date = new Date();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n return hoursToMillis(hours) + minutesToMillis(minutes) + (allowSeconds ? secondsToMillis(date.getSeconds()) : 0);\n}\n\n/**\n * Combines a `Date` object with a 24-hour time string from the time-picker component.\n * @param date The `Date` object to adjust.\n * @param time The 24-hour time string.\n * @param useSeconds If your 24-hour time string contains seconds, set this to `true`.\n * @returns The same `Date` object that was provided, with the newly adjusted time.\n */\nexport function mergeDateWithTime(date: Date, time: string, useSeconds = false): Date {\n if (!date) {\n date = new Date();\n }\n\n const millis = timeStringToMillis(time, true, useSeconds);\n if (!millis) {\n date.setHours(0, 0, 0);\n return date;\n }\n\n let hours = millisToHours(millis);\n \n const twentyThreeHoursInMillis = 82800000;\n if (hours > twentyThreeHoursInMillis) {\n hours = twentyThreeHoursInMillis;\n } else if (hours < 0) {\n hours = 0;\n }\n\n const minutes = millisToMinutesClamped(millis);\n const seconds = useSeconds ? millisToSecondsClamped(millis) : 0;\n date.setHours(hours, minutes, seconds);\n\n return date;\n}\n", "import { ICustomElementFoundation, Platform, debounce, randomChars } from '@tylertech/forge-core';\nimport { ITimePickerAdapter } from './time-picker-adapter';\nimport { ITimeInputMaskOptions } from '../core/mask/time-input-mask';\nimport { isSupportedTimeFormat, TWENTY_FOUR_HOUR_TIME_REGEX, tryCoerceTimeString } from '../core/utils/time-utils';\nimport {\n TIME_PICKER_CONSTANTS,\n ITimePickerOptionValue,\n ITimePickerOption,\n TimePickerValidationCallback,\n TimePickerParseCallback,\n TimePickerFormatCallback,\n TimePickerCoercionCallback,\n TimePickerPrepareMaskCallback\n} from './time-picker-constants';\nimport { IListDropdownConfig, ListDropdownType, IListDropdownOption } from '../list-dropdown/list-dropdown-constants';\nimport { timeStringToMillis, millisToTimeString, minutesToMillis, getCurrentTimeOfDayMillis, millisToMinutes, stripSecondsFromMillis } from './time-picker-utils';\n\nexport interface ITimePickerFoundation extends ICustomElementFoundation {\n value: string | null | undefined;\n open: boolean;\n allowSeconds: boolean;\n masked: boolean;\n showMaskFormat: boolean;\n use24HourTime: boolean;\n allowInvalidTime: boolean;\n min: string | null | undefined;\n max: string | null | undefined;\n restrictedTimes: string[];\n startTime: string | null | undefined;\n step: number;\n allowInput: boolean;\n showNow: boolean;\n showHourOptions: boolean;\n customOptions: ITimePickerOption[];\n validationCallback: TimePickerValidationCallback;\n parseCallback: TimePickerParseCallback;\n formatCallback: TimePickerFormatCallback;\n coercionCallback: TimePickerCoercionCallback;\n prepareMaskCallback: TimePickerPrepareMaskCallback;\n disabled: boolean;\n popupClasses: string | string[];\n allowDropdown: boolean;\n}\n\nexport class TimePickerFoundation implements ITimePickerFoundation {\n // State vars\n private _value?: number | null = null;\n private _masked = true;\n private _use24HourTime = false;\n private _showMaskFormat = false;\n private _min?: number | null = null;\n private _max?: number | null = null;\n private _restrictedTimes: number[] = [];\n private _startTime?: number | null = null;\n private _step = TIME_PICKER_CONSTANTS.numbers.DEFAULT_MINUTE_STEP;\n private _allowInput = true;\n private _identifier: string;\n private _open = false;\n private _allowSeconds = false;\n private _allowInvalidTime = false;\n private _popupTarget: string;\n private _showNow = false;\n private _showHourOptions = true;\n private _customOptions: ITimePickerOption[] = [];\n private _validationCallback: TimePickerValidationCallback;\n private _parseCallback: TimePickerParseCallback;\n private _formatCallback: TimePickerFormatCallback;\n private _coercionCallback: TimePickerCoercionCallback;\n private _prepareMaskCallback: TimePickerPrepareMaskCallback;\n private _disabled = false;\n private _popupClasses: string[] = [];\n private _allowDropdown = true;\n \n // Internal state vars\n private _isInitialized = false;\n\n // Listeners\n private _inputListener: (evt: Event) => void;\n private _inputKeydownListener: (evt: KeyboardEvent) => void;\n private _toggleMousedownListener: (evt: MouseEvent) => void;\n private _inputFocusListener: (evt: Event) => void;\n private _inputBlurListener: (evt: Event) => void;\n private _inputMousedownListener: (evt: MouseEvent) => void;\n \n constructor(private _adapter: ITimePickerAdapter) {\n this._identifier = randomChars(); // This is a unique identifier for this instance of the time picker (used for a11y purposes)\n\n // Set up listeners\n this._inputListener = evt => this._onInput(evt);\n this._inputKeydownListener = evt => this._onInputKeydown(evt);\n this._toggleMousedownListener = evt => this._onToggleMousedown(evt);\n this._inputFocusListener = evt => this._onInputFocus(evt);\n this._inputBlurListener = evt => this._onInputBlur(evt);\n this._inputMousedownListener = evt => this._onInputMousedown(evt);\n }\n\n public initialize(): void {\n this._adapter.initialize();\n \n // We require an input element to be a child of this component\n if (!this._adapter.hasInputElement()) {\n throw new Error('Unable to locate <input> element to attach to.');\n }\n\n this._adapter.initializeAccessibility(this._identifier);\n\n // Detect if a value already exists in the input and set our values based on that\n if (!this._value) {\n const inputValue = this._adapter.getInputValue();\n this._setValue(this._convertTimeStringToMillis(inputValue, this._use24HourTime, this._allowSeconds));\n }\n\n // Attach required listeners\n this._adapter.addInputListener('focus', this._inputFocusListener);\n this._adapter.addInputListener('blur', this._inputBlurListener);\n this._adapter.addInputListener('keydown', this._inputKeydownListener, true);\n\n // Ensure our input has the correct time format (make sure not to emit input events manually at this point)\n this._formatInputValue(false);\n\n // Apply our state\n if (typeof this._value === 'number') {\n this._applyValue(this._value, false);\n }\n this._applyAllowInput();\n this._applyAllowDropdown();\n this._applyDisabled();\n this._applyMask();\n\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n\n // Remove listeners\n this._adapter.removeInputListener('input', this._inputListener);\n this._adapter.removeInputListener('focus', this._inputFocusListener);\n this._adapter.removeInputListener('blur', this._inputBlurListener);\n this._adapter.removeToggleListener('mousedown', this._toggleMousedownListener);\n this._adapter.removeInputListener('keydown', this._inputKeydownListener, true);\n\n // If we are using an input mask, let's destroy that now\n if (this._masked) {\n this._adapter.destroyMask();\n }\n\n // Ensure we remove our dropdown\n this._closeDropdown();\n\n // Cleanup any resources used in the adapter\n this._adapter.destroy();\n }\n\n /** Called when the input mask changes or the `input` event occurs on our `<input>` element. */\n private _onInput(evt: Event): void {\n this._handleInput(this._adapter.getInputValue());\n }\n\n private _onInputKeydown(evt: KeyboardEvent): void {\n if (evt.shiftKey) {\n switch (evt.code) {\n case 'Backspace':\n case 'Delete':\n evt.preventDefault();\n const result = this._trySetValue(null);\n if (result) {\n this._formatInputValue();\n }\n return;\n }\n }\n\n switch (evt.code) {\n case 'Tab':\n if (this._open) {\n this._selectActiveOption();\n }\n break;\n case 'Esc':\n case 'Escape':\n if (this._open) {\n evt.preventDefault();\n this._closeDropdown(true);\n }\n break;\n case 'Down':\n case 'ArrowDown':\n if (this._allowDropdown) {\n evt.preventDefault();\n if (!this._open) {\n this._openDropdown();\n this._adapter.activateFirstOption();\n // TODO: Should we cycle the hours, minutes, seconds, or meridiem where the cursor is instead of opening the dropdown?\n } else {\n this._adapter.propagateKey(evt.code);\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n if (this._allowDropdown) {\n evt.preventDefault();\n if (this._open) {\n this._adapter.propagateKey(evt.code);\n } else {\n // TODO: cycle the hours, minutes, seconds, or meridiem where the cursor is\n }\n }\n break;\n case 'Enter':\n case 'Home':\n case 'End':\n if (this._open) {\n if (evt.code === 'Enter') {\n evt.stopPropagation();\n }\n evt.preventDefault();\n this._adapter.propagateKey(evt.code);\n }\n break;\n case 'KeyN':\n evt.preventDefault();\n const nowMillis = getCurrentTimeOfDayMillis(this._allowSeconds);\n if (this._value !== nowMillis) {\n const timeString = millisToTimeString(nowMillis, true, this._allowSeconds);\n const canContinue = this._emitChangeEvent(timeString);\n if (canContinue) {\n this._applyValue(nowMillis);\n this._selectInputText();\n }\n }\n break;\n }\n }\n\n private _selectActiveOption(): void {\n const activeOption = this._adapter.getActiveOption();\n if (activeOption) {\n this._onSelect(activeOption.value);\n }\n }\n\n private _onToggleMousedown(evt: Event): void {\n if (this._disabled || !this.allowDropdown) {\n return;\n }\n\n evt.stopPropagation();\n\n if (this._adapter.isInputDisabled()) {\n return;\n }\n\n evt.preventDefault();\n\n if (this._open) {\n this._closeDropdown(true);\n } else {\n if (!Platform.isMobile) {\n this._adapter.tryFocusInput();\n } else {\n this._adapter.tryBlurInput();\n }\n this._openDropdown();\n }\n }\n\n private _onInputFocus(evt: Event): void {\n if (this._allowInput) {\n this._adapter.selectInputText();\n }\n }\n\n private _onInputBlur(evt: Event): void {\n this._formatInputValue();\n if (this._open && !this._adapter.isInputFocused()) {\n this._closeDropdown(true);\n }\n }\n\n private _onInputMousedown(evt: MouseEvent): void {\n if (!this._allowInput && !this._open) {\n this._openDropdown();\n this._adapter.tryFocusInput();\n window.requestAnimationFrame(() => this._adapter.selectInputText());\n }\n }\n\n private _applyDisabled(): void {\n this._adapter.setDisabled(this._disabled);\n }\n\n private _applyMask(): void {\n if (this._masked && this._allowInput) {\n const options: ITimeInputMaskOptions = {\n showMaskFormat: this._showMaskFormat,\n use24HourTime: this._use24HourTime,\n showSeconds: this._allowSeconds,\n prepareCallback: this._prepareMaskCallback,\n onChange: debounce((value: string) => this._handleInput(value), 0, true) // debounce this to avoid multiple callbacks for same value\n };\n this._adapter.initializeMask(options);\n } else {\n this._adapter.destroyMask();\n this._formatInputValue();\n }\n }\n\n private _applyAllowInput(): void {\n this._adapter.setInputReadonly(!this._allowInput);\n if (this._allowInput) {\n this._adapter.removeInputListener('mousedown', this._inputMousedownListener);\n // If not using an input mask we need to attach our own `input` listener, otherwise\n // we use the mask to notify us of changes\n if (!this._masked) {\n this._adapter.addInputListener('input', this._inputListener);\n }\n } else {\n this._adapter.addInputListener('mousedown', this._inputMousedownListener);\n this._adapter.removeInputListener('input', this._inputListener);\n }\n }\n\n private _applyAllowDropdown(): void {\n this._adapter.setToggleDisabled(!this._allowDropdown);\n if (this._allowDropdown) {\n this._adapter.removeToggleListener('mousedown', this._toggleMousedownListener);\n this._adapter.tryCreateToggle();\n this._adapter.addToggleListener('mousedown', this._toggleMousedownListener);\n } else if (this._open) {\n this._closeDropdown(true);\n }\n }\n\n private _applyAllowSeconds(): void {\n const originalValue = this._value;\n if (!this._allowSeconds) {\n // If we are not using seconds, we need to remove our seconds from the value\n if (typeof this._value !== 'number') {\n return;\n }\n\n this._setValue(stripSecondsFromMillis(this._value));\n\n if (this._isInitialized && originalValue !== this._value) {\n // We need to emit a change event with our new value which does not include the seconds\n const timeString = millisToTimeString(this._value, true, false);\n this._emitChangeEvent(timeString);\n }\n } else if (this._isInitialized && originalValue !== this._value) {\n // We need to emit a change event with our new value which includes the seconds\n const timeString = millisToTimeString(this._value, true, true);\n this._emitChangeEvent(timeString);\n }\n }\n\n private _handleInput(value: string): void {\n const rawValue = value;\n\n if (!this._allowInput) {\n return;\n }\n\n if (this._open) {\n this._closeDropdown(true);\n }\n\n // Let's attempt to coerce our time string into a known format to help with ease of entry\n value = tryCoerceTimeString(value, this._use24HourTime, this._allowSeconds);\n\n // If we were provided a custom coercion callback then we need to call that now to perform any further coercion by the consumer\n if (typeof this._coercionCallback === 'function') {\n value = this._coercionCallback.call(null, rawValue, value, this._allowSeconds);\n }\n\n // Validate the time format and make sure it's supported\n if (!this._isValidTimeFormat(value)) {\n value = '';\n }\n\n // Convert the time string to milliseconds\n let millis: number | null | undefined;\n if (!this._masked && typeof this._parseCallback === 'function') {\n millis = this._parseCallback.call(null, value);\n } else {\n millis = this._convertTimeStringToMillis(value, this._use24HourTime, this._allowSeconds);\n }\n\n // Validate that our time can be chosen as a valid value\n millis = this._validateMillis(millis);\n\n // Update our value\n this._trySetValue(millis);\n }\n\n private _emitChangeEvent(value: string | null, force = false): boolean {\n return this._adapter.emitHostEvent(TIME_PICKER_CONSTANTS.events.CHANGE, value, true, !force);\n }\n\n private _trySetValue(millis: number | null | undefined): boolean {\n // If our value hasn't changed, we can just return\n if (millis === this._value) {\n return false;\n }\n\n // Convert our milliseconds to a 24-hour time string to use as our normalized value\n const timeString = millisToTimeString(millis, true, this._allowSeconds);\n\n // If we are using an input mask, we need to dispatch our custom input event to let consumers know input happened (before our change event)\n if (this._masked) {\n this._adapter.emitInputEvent(TIME_PICKER_CONSTANTS.events.INPUT, timeString);\n }\n\n // Only emit our change event if the value is different\n if (this._value !== millis) {\n const canContinue = this._emitChangeEvent(timeString);\n if (canContinue) {\n this._setValue(millis);\n return true;\n }\n }\n\n return false;\n }\n\n private _setValue(value: number | null | undefined): void {\n this._value = this._normalizeTimeValue(value);\n }\n\n private _validateMillis(millis: number | null | undefined): number | null | undefined {\n // Trap for min/max validation\n if (typeof millis === 'number') {\n const isBelowMin = typeof this._min === 'number' && millis < this._min;\n const isAboveMax = typeof this._max === 'number' && millis > this._max;\n if (isBelowMin || isAboveMax) {\n millis = null;\n }\n }\n \n // Trap for restricted times\n if (typeof millis === 'number' && this._restrictedTimes.length) {\n if (this._restrictedTimes.includes(millis)) {\n millis = null;\n }\n }\n\n return millis;\n }\n\n private _isValidTimeFormat(value: string): boolean {\n if (!this._masked && typeof this._validationCallback === 'function') {\n return this._validationCallback.call(this, value);\n }\n return isSupportedTimeFormat(value);\n }\n\n private _isValidInputValue(value: string): boolean {\n return TWENTY_FOUR_HOUR_TIME_REGEX.test(value);\n }\n\n private _onSelect(value: ITimePickerOptionValue): void {\n this._closeDropdown(true);\n\n // Check if the \"Now\" option was selected\n if (!value.isCustom && value.metadata === 'now') {\n value.time = getCurrentTimeOfDayMillis(this._allowSeconds);\n }\n\n // Check if this is a custom option, and then call the provided callback for it\n if (value.isCustom) {\n if (typeof value.customCallback === 'function') {\n const result = value.customCallback.call(null, value.metadata);\n if (typeof result !== 'number') {\n throw new Error('Custom options must provide a time of day value in milliseconds.');\n }\n value.time = result;\n } else {\n throw new Error('You must implement a `toMilliseconds` callback that returns the time value to use for this custom option.');\n }\n }\n\n // Make sure the time is different than what is already populated or we can just return\n if (this._value === value.time) {\n return;\n }\n\n // Emit the change event\n const timeString = millisToTimeString(value.time, true, this._allowSeconds);\n const canContinue = this._emitChangeEvent(timeString);\n if (!canContinue) {\n return;\n }\n\n // This will update our state and the UI at once\n this._applyValue(value.time);\n\n // Select full input text\n this._selectInputText();\n }\n\n private _selectInputText(): void {\n // We need to select the text of the input in the next cycle to allow time for the UI to update\n // with the selected text (assuming it still has focus)\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n if (this._adapter.isInputFocused()) {\n this._adapter.selectInputText();\n }\n });\n });\n }\n\n private _applyValue(value: number | null | undefined, emitEvents = true): void {\n this._setValue(value);\n const formattedValue = this._formatValue(this._value);\n if (this._adapter.getInputValue() !== formattedValue) {\n this._adapter.setInputValue(formattedValue, emitEvents);\n }\n }\n\n private _normalizeTimeValue(value: number | null | undefined): number | null {\n if (value == null) {\n return null;\n } else if (value < 0) {\n return 0;\n } else if (value > TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MILLIS) {\n return TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MILLIS;\n }\n return value;\n }\n\n private _openDropdown(): void {\n const options = this._generateTimeOptions();\n\n if (!this.allowDropdown || !options.length) {\n return;\n }\n \n this._formatInputValue();\n this._open = true;\n this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.OPEN);\n \n const selectableOptions = options.filter(o => !o.divider && !o.disabled);\n let selectedValues: ITimePickerOptionValue[] = [];\n let activeStartIndex: number | undefined;\n \n // Find closest match in list of time options and activate/select it\n if (options.length) {\n if (this._value != null) {\n const optionIndex = this._findClosestOptionIndex(this._value, selectableOptions);\n if (optionIndex >= 0) {\n const isExactMatch = selectableOptions[optionIndex].value.time === this._value;\n if (isExactMatch) {\n selectedValues = [selectableOptions[optionIndex].value];\n } else {\n activeStartIndex = optionIndex;\n }\n }\n } else if (typeof this._startTime === 'number') {\n const optionIndex = this._findClosestOptionIndex(this._startTime, selectableOptions);\n if (optionIndex >= 0 && optionIndex < selectableOptions.length) {\n activeStartIndex = optionIndex;\n }\n }\n }\n\n const config: IListDropdownConfig<ITimePickerOptionValue> = {\n id: `forge-time-picker-${this._identifier}`,\n selectedValues,\n syncWidth: true,\n activeStartIndex,\n popupClasses: this._popupClasses,\n popupStatic: true,\n type: ListDropdownType.Standard,\n options,\n selectCallback: value => this._onSelect(value),\n closeCallback: () => this._closeDropdown(true),\n activeChangeCallback: id => this._adapter.setActiveDescendant(id),\n targetWidthCallback: () => this._adapter.getTargetElementWidth(this._popupTarget)\n };\n this._adapter.attachDropdown(config);\n this._adapter.emitHostEvent(TIME_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n private _closeDropdown(emitCloseEvent = false): void {\n this._open = false;\n this._adapter.removeHostAttribute(TIME_PICKER_CONSTANTS.attributes.OPEN);\n this._adapter.detachDropdown();\n if (emitCloseEvent) {\n this._adapter.emitHostEvent(TIME_PICKER_CONSTANTS.events.CLOSE, true, false);\n }\n }\n\n private _findClosestOptionIndex(value: number, options: Array<IListDropdownOption<ITimePickerOptionValue>>): number {\n const closestItem = options.reduce((prev, curr) => {\n return Math.abs((curr.value.time || 0) - value) < Math.abs((prev.value.time || 0) - value) ? curr : prev;\n });\n return options.indexOf(closestItem);\n }\n\n private _formatInputValue(emitEvents = true): void {\n const inputValue = this._adapter.getInputValue();\n \n // If we allow invalid times, we can leave the input value as-is (only when unmasked)\n if (this._allowInvalidTime && !this._masked && inputValue && !this._value) {\n return;\n }\n\n const formattedValue = this._formatValue(this._value);\n \n if (inputValue !== formattedValue) {\n this._adapter.setInputValue(formattedValue, emitEvents);\n }\n }\n\n private _generateTimeOptions(): Array<IListDropdownOption<ITimePickerOptionValue>> {\n const minMinutes = this._min != null ? Math.max(millisToMinutes(this._min), 0) : 0;\n const maxMinutes = this._max != null ? Math.min(millisToMinutes(this._max), TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES) : TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES;\n const minuteStep = this._step;\n const times: IListDropdownOption[] = [];\n let leadingOptions: IListDropdownOption[] = [];\n \n if (this._showHourOptions) {\n for (let totalMinutes = minMinutes; totalMinutes <= maxMinutes; totalMinutes += minuteStep) {\n if (totalMinutes === TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES) {\n break;\n }\n const millis = minutesToMillis(totalMinutes);\n const disabled = this._restrictedTimes.includes(millis);\n const label = millisToTimeString(millis, this._use24HourTime, false) || '';\n const value: ITimePickerOptionValue = { time: millis };\n times.push({ label, value, disabled });\n }\n\n // Add divider between AM/PM times\n const firstPmIndex = times.findIndex(t => t.value.time / 1000 / 60 >= 720);\n if (firstPmIndex >= 0 && firstPmIndex < times.length - 1) {\n times.splice(firstPmIndex, 0, { label: '', value: null, divider: true });\n }\n }\n\n\n // Check if we need to prepend a \"Now\" option\n if (this._showNow) {\n const value: ITimePickerOptionValue = { time: null, metadata: 'now' };\n leadingOptions.push({ label: 'Now', value });\n }\n\n // Check for any custom provided options to prepend\n if (Array.isArray(this._customOptions) && this._customOptions.length) {\n const options = this._customOptions.map(o => {\n const value: ITimePickerOptionValue = { time: null, metadata: o.value, isCustom: true, customCallback: o.toMilliseconds };\n return { label: o.label, value };\n });\n leadingOptions = [...leadingOptions, ...options];\n }\n\n // Append all leading options\n if (leadingOptions.length) {\n if (times.length) {\n times.splice(0, 0, { label: '', value: null, divider: true });\n }\n leadingOptions.forEach((o, index) => times.splice(index, 0, o));\n }\n\n return times;\n }\n\n private _convertTimeStringToMillis(value: string | null, use24HourTime: boolean, allowSeconds: boolean): number | null {\n if (!value || !this._isValidTimeFormat(value)) {\n value = '';\n }\n return timeStringToMillis(value, use24HourTime, allowSeconds);\n }\n\n private _formatValue(value: number | null | undefined): string {\n if (!this._masked && typeof this._formatCallback === 'function') {\n return this._formatCallback.call(null, value, this._use24HourTime, this._allowSeconds);\n }\n return millisToTimeString(this._value, this._use24HourTime, this._allowSeconds) || '';\n }\n\n private _warnInvalidFormat(value: string): void {\n console.warn(`The specified value \"${value}\" does not conform to the required format. The format is \"HH:mm\", \"HH:mm:ss\" where HH is 00-23, mm is 00-59, and ss is 00-59.`);\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n if (this._open !== value) {\n if (this._isInitialized) {\n this._open = value;\n if (this._open) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n }\n\n public get masked(): boolean {\n return this._masked;\n }\n public set masked(value: boolean) {\n if (this._masked !== value) {\n this._masked = value;\n if (this._isInitialized) {\n if (this._masked) {\n this._adapter.removeInputListener('input', this._inputListener);\n this._applyMask();\n } else {\n this._adapter.destroyMask();\n this._formatInputValue();\n this._adapter.addInputListener('input', this._inputListener);\n }\n }\n }\n }\n\n public get showMaskFormat(): boolean {\n return this._showMaskFormat;\n }\n public set showMaskFormat(value: boolean) {\n if (this._showMaskFormat !== value) {\n this._showMaskFormat = value;\n if (this._isInitialized) {\n this._applyMask();\n }\n }\n }\n\n public get allowSeconds(): boolean {\n return this._allowSeconds;\n }\n public set allowSeconds(value: boolean) {\n if (this._allowSeconds !== value) {\n this._allowSeconds = !!value;\n this._applyAllowSeconds();\n if (this._isInitialized) {\n this._applyMask();\n this._formatInputValue();\n }\n this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.ALLOW_SECONDS, `${!!value}`);\n }\n }\n\n public get use24HourTime(): boolean {\n return this._use24HourTime;\n }\n public set use24HourTime(value: boolean) {\n if (this._use24HourTime !== value) {\n this._use24HourTime = !!value;\n if (this._isInitialized) {\n this._adapter.destroyMask();\n this._formatInputValue();\n this._applyMask();\n }\n this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.USE_24_HOUR_TIME, `${!!value}`);\n }\n }\n\n public get allowInvalidTime(): boolean {\n return this._allowInvalidTime;\n }\n public set allowInvalidTime(value: boolean) {\n if (this._allowInvalidTime !== value) {\n this._allowInvalidTime = !!value;\n this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.ALLOW_INVALID_TIME, `${!!value}`);\n }\n }\n\n public get value(): string | null {\n return millisToTimeString(this._value, true, this._allowSeconds);\n }\n public set value(value: string | null) {\n if (value && !this._isValidInputValue(value)) {\n this._warnInvalidFormat(value);\n return;\n }\n const millis = this._validateMillis(this._convertTimeStringToMillis(value, true, true));\n this._setValue(millis);\n if (this._isInitialized) {\n this._applyValue(this._value);\n }\n }\n\n public get min(): string | null {\n return millisToTimeString(this._min, true, this._allowSeconds);\n }\n public set min(value: string | null) {\n if (this._min !== value) {\n if (value && !this._isValidInputValue(value)) {\n this._warnInvalidFormat(value);\n return;\n }\n this._min = this._convertTimeStringToMillis(value, true, this._allowSeconds);\n\n // Validate and reset our millis to ensure within range\n const millis = this._validateMillis(this._value);\n this._setValue(millis);\n\n if (this._isInitialized) {\n this._applyValue(millis);\n }\n }\n }\n\n public get max(): string | null {\n return millisToTimeString(this._max, true, this._allowSeconds);\n }\n public set max(value: string | null) {\n if (this._max !== value) {\n if (value && !this._isValidInputValue(value)) {\n this._warnInvalidFormat(value);\n return;\n }\n this._max = this._convertTimeStringToMillis(value, true, this._allowSeconds);\n \n // Validate and reset our millis to ensure within range\n const millis = this._validateMillis(this._value);\n this._setValue(millis);\n\n if (this._isInitialized) {\n this._applyValue(millis);\n }\n }\n }\n\n public get restrictedTimes(): string[] {\n return this._restrictedTimes\n .map(t => millisToTimeString(t, true, this._allowSeconds))\n .filter(v => typeof v === 'string') as string[];\n }\n public set restrictedTimes(value: string[]) {\n if (!Array.isArray(value)) {\n value = [];\n }\n this._restrictedTimes = value\n .filter(v => typeof v === 'string')\n .map(v => this._convertTimeStringToMillis(v, true, true))\n .filter(v => typeof v === 'number') as number[];\n }\n\n public get startTime(): string | null {\n return millisToTimeString(this._startTime, true, this._allowSeconds);\n }\n public set startTime(value: string | null) {\n if (this._startTime !== value) {\n if (value && !this._isValidInputValue(value)) {\n this._warnInvalidFormat(value);\n return;\n }\n this._startTime = this._convertTimeStringToMillis(value, true, this._allowSeconds);\n }\n }\n\n public get step(): number {\n return this._step;\n }\n public set step(value: number) {\n this._step = value;\n }\n\n public get allowInput(): boolean {\n return this._allowInput;\n }\n public set allowInput(value: boolean) {\n if (this._allowInput !== value) {\n this._allowInput = value;\n if (this._isInitialized) {\n this._applyAllowInput();\n this._applyMask();\n }\n }\n }\n\n public get popupTarget(): string {\n return this._popupTarget;\n }\n public set popupTarget(value: string) {\n if (this._popupTarget !== value) {\n this._popupTarget = value;\n }\n }\n\n public get showNow(): boolean {\n return this._showNow;\n }\n public set showNow(value: boolean) {\n if (this._showNow !== value) {\n this._showNow = value;\n }\n }\n\n public get showHourOptions(): boolean {\n return this._showHourOptions;\n }\n public set showHourOptions(value: boolean) {\n if (this._showHourOptions !== value) {\n this._showHourOptions = value;\n }\n }\n\n public get customOptions(): ITimePickerOption[] {\n return this._customOptions;\n }\n public set customOptions(value: ITimePickerOption[]) {\n this._customOptions = Array.isArray(value) ? value : [];\n }\n\n public set validationCallback(cb: TimePickerValidationCallback) {\n this._validationCallback = cb;\n if (this._isInitialized) {\n this._applyMask();\n }\n }\n\n public set parseCallback(cb: TimePickerParseCallback) {\n this._parseCallback = cb;\n }\n\n public set formatCallback(cb: TimePickerFormatCallback) {\n this._formatCallback = cb;\n }\n\n public set coercionCallback(cb: TimePickerCoercionCallback) {\n this._coercionCallback = cb;\n }\n\n public set prepareMaskCallback(cb: TimePickerPrepareMaskCallback) {\n this._prepareMaskCallback = cb;\n if (this._isInitialized) {\n this._applyMask();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = !!value;\n if (this._isInitialized) {\n this._applyDisabled();\n }\n this._adapter.toggleHostAttribute(TIME_PICKER_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n\n public get popupClasses(): string | string[] {\n if (Array.isArray(this._popupClasses)) {\n return [...this._popupClasses];\n }\n\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n if (Array.isArray(value)) {\n this._popupClasses = [...value];\n } else {\n this._popupClasses = [value];\n }\n }\n\n public get allowDropdown(): boolean {\n return this._allowDropdown;\n }\n public set allowDropdown(value: boolean) {\n if (this._allowDropdown !== value) {\n this._allowDropdown = value;\n if (this._isInitialized) {\n this._applyAllowDropdown();\n }\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean, coerceNumber, ensureChild } from '@tylertech/forge-core';\nimport { tylIconClockOutline } from '@tylertech/tyler-icons/extended';\nimport { tylIconClose } from '@tylertech/tyler-icons/standard';\nimport { TimePickerAdapter } from './time-picker-adapter';\nimport { TimePickerFoundation } from './time-picker-foundation';\nimport {\n TIME_PICKER_CONSTANTS,\n ITimePickerOption,\n TimePickerParseCallback,\n TimePickerValidationCallback,\n TimePickerFormatCallback,\n TimePickerCoercionCallback,\n TimePickerPrepareMaskCallback\n} from './time-picker-constants';\nimport { IconRegistry, IconComponent } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { DialogComponent } from '../dialog';\nimport { ListComponent, ListItemComponent } from '../list';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface ITimePickerComponent extends IBaseComponent {\n value: string | null | undefined;\n open: boolean;\n allowSeconds: boolean;\n masked: boolean;\n showMaskFormat: boolean;\n use24HourTime: boolean;\n allowInvalidTime: boolean;\n min: string | null | undefined;\n max: string | null | undefined;\n restrictedTimes: string[];\n startTime: string | null | undefined;\n step: number;\n allowInput: boolean;\n showNow: boolean;\n showHourOptions: boolean;\n customOptions: ITimePickerOption[];\n validationCallback: TimePickerValidationCallback;\n parseCallback: TimePickerParseCallback;\n formatCallback: TimePickerFormatCallback;\n coercionCallback: TimePickerCoercionCallback;\n prepareMaskCallback: TimePickerPrepareMaskCallback;\n disabled: boolean;\n popupClasses: string | string[];\n allowDropdown: boolean;\n popupTarget: string;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-time-picker': ITimePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-time-picker-open': CustomEvent<void>;\n 'forge-time-picker-close': CustomEvent<void>;\n 'forge-time-picker-input': Event;\n 'forge-time-picker-change': CustomEvent<string | null>;\n }\n}\n\n/**\n * The web component class behind the `<forge-time-picker>` custom element.\n * \n * @tag forge-time-picker\n */\n@CustomElement({\n name: TIME_PICKER_CONSTANTS.elementName,\n dependencies: [\n ListComponent,\n ListItemComponent,\n IconButtonComponent,\n IconComponent,\n PopupComponent,\n IconComponent,\n DialogComponent\n ]\n})\nexport class TimePickerComponent extends BaseComponent implements ITimePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n TIME_PICKER_CONSTANTS.attributes.VALUE,\n TIME_PICKER_CONSTANTS.attributes.OPEN,\n TIME_PICKER_CONSTANTS.attributes.ALLOW_SECONDS,\n TIME_PICKER_CONSTANTS.attributes.MASKED,\n TIME_PICKER_CONSTANTS.attributes.SHOW_MASK_FORMAT,\n TIME_PICKER_CONSTANTS.attributes.USE_24_HOUR_TIME,\n TIME_PICKER_CONSTANTS.attributes.ALLOW_INVALID_TIME,\n TIME_PICKER_CONSTANTS.attributes.MIN,\n TIME_PICKER_CONSTANTS.attributes.MAX,\n TIME_PICKER_CONSTANTS.attributes.START_TIME,\n TIME_PICKER_CONSTANTS.attributes.STEP,\n TIME_PICKER_CONSTANTS.attributes.ALLOW_INPUT,\n TIME_PICKER_CONSTANTS.attributes.SHOW_NOW,\n TIME_PICKER_CONSTANTS.attributes.SHOW_HOUR_OPTIONS,\n TIME_PICKER_CONSTANTS.attributes.DISABLED,\n TIME_PICKER_CONSTANTS.attributes.POPUP_CLASSES,\n TIME_PICKER_CONSTANTS.attributes.ALLOW_DROPDOWN\n ];\n }\n\n private _foundation: TimePickerFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconClockOutline, tylIconClose]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new TimePickerFoundation(new TimePickerAdapter(this));\n }\n\n public connectedCallback(): void {\n if (this.querySelector(TIME_PICKER_CONSTANTS.selectors.INPUT)) {\n this._foundation.initialize();\n } else {\n ensureChild(this, TIME_PICKER_CONSTANTS.selectors.INPUT).then(() => this._foundation.initialize());\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case TIME_PICKER_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.ALLOW_SECONDS:\n this.allowSeconds = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.MASKED:\n this.masked = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.SHOW_MASK_FORMAT:\n this.showMaskFormat = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.USE_24_HOUR_TIME:\n this.use24HourTime = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.ALLOW_INVALID_TIME:\n this.allowInvalidTime = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.SHOW_NOW:\n this.showNow = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.SHOW_HOUR_OPTIONS:\n this.showHourOptions = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.MIN:\n this.min = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.MAX:\n this.max = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.START_TIME:\n this.startTime = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.STEP:\n this.step = coerceNumber(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.ALLOW_INPUT:\n this.allowInput = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case TIME_PICKER_CONSTANTS.attributes.POPUP_CLASSES:\n this.popupClasses = newValue;\n break;\n case TIME_PICKER_CONSTANTS.attributes.ALLOW_DROPDOWN:\n this.allowDropdown = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public value: string | null | undefined;\n\n @FoundationProperty()\n public open: boolean;\n\n @FoundationProperty()\n public allowSeconds: boolean;\n\n @FoundationProperty()\n public masked: boolean;\n\n @FoundationProperty()\n public showMaskFormat: boolean;\n\n @FoundationProperty()\n public use24HourTime: boolean;\n\n @FoundationProperty()\n public allowInvalidTime: boolean;\n\n @FoundationProperty()\n public min: string | null | undefined;\n\n @FoundationProperty()\n public max: string | null | undefined;\n\n @FoundationProperty()\n public restrictedTimes: string[];\n\n @FoundationProperty()\n public startTime: string | null | undefined;\n\n @FoundationProperty()\n public step: number;\n\n @FoundationProperty()\n public allowInput: boolean;\n\n @FoundationProperty()\n public showNow: boolean;\n\n /** Whether or not to display hour options in dropdown */\n @FoundationProperty()\n public showHourOptions: boolean;\n\n @FoundationProperty()\n public customOptions: ITimePickerOption[];\n\n @FoundationProperty()\n public validationCallback: TimePickerValidationCallback;\n \n @FoundationProperty()\n public parseCallback: TimePickerParseCallback;\n\n @FoundationProperty()\n public formatCallback: TimePickerFormatCallback;\n\n @FoundationProperty()\n public coercionCallback: TimePickerCoercionCallback;\n\n @FoundationProperty()\n public prepareMaskCallback: TimePickerPrepareMaskCallback;\n\n @FoundationProperty()\n public disabled: boolean;\n\n @FoundationProperty()\n public popupClasses: string | string[];\n\n @FoundationProperty()\n public allowDropdown: boolean;\n\n @FoundationProperty()\n public popupTarget: string;\n}\n", "import { IBaseComponentDelegateConfig } from '../core/delegates/base-component-delegate';\nimport { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions } from '../core/delegates/form-field-component-delegate';\nimport { ITextFieldComponent, ITextFieldComponentDelegateConfig, TextFieldComponentDelegate } from '../text-field';\nimport { ITimePickerComponent } from './time-picker';\nimport { TIME_PICKER_CONSTANTS } from './time-picker-constants';\n\nexport type TimePickerComponentDelegateProps = Partial<ITimePickerComponent>;\nexport interface ITimePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n textFieldDelegateConfig?: ITextFieldComponentDelegateConfig;\n}\nexport interface ITimePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<ITimePickerComponent, ITimePickerComponentDelegateOptions> {}\n\nexport class TimePickerComponentDelegate extends FormFieldComponentDelegate<ITimePickerComponent, ITimePickerComponentDelegateOptions> {\n private _textFieldDelegate: TextFieldComponentDelegate;\n\n constructor(config?: ITimePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): ITimePickerComponent {\n const timePicker = document.createElement(TIME_PICKER_CONSTANTS.elementName);\n this._attachTextField(timePicker);\n return timePicker;\n }\n\n public get inputElement(): HTMLInputElement {\n return this._textFieldDelegate.inputElement;\n }\n\n public get textFieldElement(): ITextFieldComponent {\n return this._textFieldDelegate.element;\n }\n\n public get value(): any {\n return this._element.value;\n }\n public set value(value: any) {\n this._element.value = value;\n }\n\n public get disabled(): boolean {\n return this._element.disabled;\n }\n public set disabled(value: boolean) {\n this._element.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._textFieldDelegate.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textFieldDelegate.invalid = value;\n }\n\n public onChange(listener: (value: string) => void): void {\n this._element.addEventListener(TIME_PICKER_CONSTANTS.events.CHANGE, (evt: CustomEvent<string>) => listener(evt.detail ?? ''));\n }\n\n public onInput(listener: (value: string) => void): void {\n if (this._element.masked) {\n this._element.addEventListener(TIME_PICKER_CONSTANTS.events.INPUT, (evt: CustomEvent<string>) => listener(evt.detail ?? ''));\n } else {\n this._textFieldDelegate.inputElement.addEventListener('input', evt => listener((evt.target as HTMLInputElement).value));\n }\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('focus', (evt: FocusEvent) => listener(evt));\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._textFieldDelegate.inputElement.addEventListener('blur', (evt: FocusEvent) => listener(evt));\n }\n\n private _attachTextField(component: ITimePickerComponent): void {\n const textFieldConfig: ITextFieldComponentDelegateConfig = {\n props: { ...this._config.options?.textFieldDelegateConfig?.props },\n options: { ...this._config.options?.textFieldDelegateConfig?.options }\n };\n this._textFieldDelegate = new TextFieldComponentDelegate(textFieldConfig);\n component.appendChild(this._textFieldDelegate.element);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { TimePickerComponent } from './time-picker';\n\nexport * from './time-picker-adapter';\nexport * from './time-picker-component-delegate';\nexport * from './time-picker-constants';\nexport * from './time-picker-foundation';\nexport * from './time-picker-utils';\nexport * from './time-picker';\n\nexport function defineTimePickerComponent(): void {\n defineCustomElement(TimePickerComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
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,b as i}from"./chunk.BSZ2LBJX.js";import{a as t}from"./chunk.3E5QKMHL.js";import{a as r,e as n}from"./chunk.HN4PXH3D.js";import{f as o}from"./chunk.MCIQXNKY.js";var g=`${i}inline-message`,m={ROOT:".forge-inline-message"},s={elementName:g,selectors:m};var l='<template><div class="forge-inline-message" part="root"><slot name="icon"></slot><div class="forge-inline-message__container" part="container"><slot name="title"></slot><slot></slot></div></div></template>',c=".forge-inline-message{-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);border-radius:0;border-radius:var(--forge-inline-message-border-radius,0);display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;padding:8px 16px 8px 12px}.forge-inline-message ::slotted([slot=icon]){align-self:start;margin-right:12px}.forge-inline-message__container{align-self:center}.forge-inline-message__container ::slotted([slot=title]){-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);font-weight:500;line-height:1rem;margin-bottom:8px}:host .forge-inline-message{background:rgba(187,222,251,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-primary-background,rgba(187,222,251,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host .forge-inline-message ::slotted([slot=icon]){color:#1a237e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-primary-icon-color,#1a237e))}:host([theme=danger]) .forge-inline-message{background:rgba(255,205,210,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-danger-background,rgba(255,205,210,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-danger-font-color,rgba(0,0,0,.87)))}:host([theme=danger]) .forge-inline-message ::slotted([slot=icon]){color:#a22d0e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-danger-icon-color,#a22d0e))}:host([theme=warning]) .forge-inline-message{background:rgba(255,219,166,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-warning-background,rgba(255,219,166,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-warning-font-color,rgba(0,0,0,.87)))}:host([theme=warning]) .forge-inline-message ::slotted([slot=icon]){color:#a03a03;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-warning-icon-color,#a03a03))}:host([theme=success]) .forge-inline-message{background:rgba(165,214,167,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-success-background,rgba(165,214,167,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-success-font-color,rgba(0,0,0,.87)))}:host([theme=success]) .forge-inline-message ::slotted([slot=icon]){color:#1b5e20;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-success-icon-color,#1b5e20))}:host([theme=info-primary]) .forge-inline-message{background:rgba(187,222,251,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-primary-background,rgba(187,222,251,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host([theme=info-primary]) .forge-inline-message ::slotted([slot=icon]){color:#1a237e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-primary-icon-color,#1a237e))}:host([theme=info-secondary]) .forge-inline-message{background:rgba(224,224,224,.4);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-secondary-background,rgba(224,224,224,.4)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-secondary-font-color,rgba(0,0,0,.87)))}:host([theme=info-secondary]) .forge-inline-message ::slotted([slot=icon]){color:#000;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-secondary-icon-color,#000))}:host{display:block}:host([hidden]){display:none}",e=class extends t{constructor(){super(),n(this,l,c)}};e=o([a({name:s.elementName})],e);function w(){r(e)}export{s as a,e as b,w as c};
|
|
7
|
+
//# sourceMappingURL=chunk.5WMEFHVN.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/inline-message/inline-message-constants.ts", "../../src/inline-message/inline-message.ts", "../../src/inline-message/index.ts"],
|
|
4
4
|
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}inline-message`;\n\nconst selectors = {\n ROOT: '.forge-inline-message'\n};\n\nexport const INLINE_MESSAGE_CONSTANTS = {\n elementName,\n selectors\n};\n", "import { CustomElement, attachShadowTemplate } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { INLINE_MESSAGE_CONSTANTS } from './inline-message-constants';\n\nconst template = '<template><div class=\\\"forge-inline-message\\\" part=\\\"root\\\"><slot name=\\\"icon\\\"></slot><div class=\\\"forge-inline-message__container\\\" part=\\\"container\\\"><slot name=\\\"title\\\"></slot><slot></slot></div></div></template>';\nconst styles = '.forge-inline-message{-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);border-radius:0;border-radius:var(--forge-inline-message-border-radius,0);display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;padding:8px 16px 8px 12px}.forge-inline-message ::slotted([slot=icon]){align-self:start;margin-right:12px}.forge-inline-message__container{align-self:center}.forge-inline-message__container ::slotted([slot=title]){-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);font-weight:500;line-height:1rem;margin-bottom:8px}:host .forge-inline-message{background:rgba(187,222,251,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-primary-background,rgba(187,222,251,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host .forge-inline-message ::slotted([slot=icon]){color:#1a237e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-primary-icon-color,#1a237e))}:host([theme=danger]) .forge-inline-message{background:rgba(255,205,210,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-danger-background,rgba(255,205,210,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-danger-font-color,rgba(0,0,0,.87)))}:host([theme=danger]) .forge-inline-message ::slotted([slot=icon]){color:#a22d0e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-danger-icon-color,#a22d0e))}:host([theme=warning]) .forge-inline-message{background:rgba(255,219,166,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-warning-background,rgba(255,219,166,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-warning-font-color,rgba(0,0,0,.87)))}:host([theme=warning]) .forge-inline-message ::slotted([slot=icon]){color:#a03a03;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-warning-icon-color,#a03a03))}:host([theme=success]) .forge-inline-message{background:rgba(165,214,167,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-success-background,rgba(165,214,167,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-success-font-color,rgba(0,0,0,.87)))}:host([theme=success]) .forge-inline-message ::slotted([slot=icon]){color:#1b5e20;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-success-icon-color,#1b5e20))}:host([theme=info-primary]) .forge-inline-message{background:rgba(187,222,251,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-primary-background,rgba(187,222,251,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host([theme=info-primary]) .forge-inline-message ::slotted([slot=icon]){color:#1a237e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-primary-icon-color,#1a237e))}:host([theme=info-secondary]) .forge-inline-message{background:rgba(224,224,224,.4);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-secondary-background,rgba(224,224,224,.4)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-secondary-font-color,rgba(0,0,0,.87)))}:host([theme=info-secondary]) .forge-inline-message ::slotted([slot=icon]){color:#000;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-secondary-icon-color,#000))}:host{display:block}:host([hidden]){display:none}';\n\nexport interface IInlineMessageComponent extends IBaseComponent {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-inline-message': IInlineMessageComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-inline-message>` custom element.\n * \n * @tag forge-inline-message\n */\n@CustomElement({\n name: INLINE_MESSAGE_CONSTANTS.elementName\n})\nexport class InlineMessageComponent extends BaseComponent implements IInlineMessageComponent {\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { InlineMessageComponent } from './inline-message';\n\nexport * from './inline-message-constants';\nexport * from './inline-message';\n\nexport function defineInlineMessageComponent(): void {\n defineCustomElement(InlineMessageComponent);\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "yKAEA,GAAM,GAA2C,GAAG,kBAE9C,EAAY,CAChB,KAAM,uBACR,EAEa,EAA2B,CACtC,cACA,WACF,ECPA,GAAM,GAAW,gNACX,EAAS,owKAkBF,EAAN,aAAqC,EAAiD,CAC3F,aAAc,CACZ,MAAM,EACN,EAAqB,KAAM,EAAU,CAAM,CAC7C,CACF,EALa,EAAN,GAHP,AAAC,EAAc,CACb,KAAM,EAAyB,WACjC,CAAC,GACY,GChBN,YAA8C,CACnD,EAAoB,CAAsB,CAC5C",
|
|
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{a as _}from"./chunk.A23NSEWA.js";import{a as p}from"./chunk.B3IJU6XJ.js";import{a as g,b as f}from"./chunk.BSZ2LBJX.js";import{a as h}from"./chunk.3E5QKMHL.js";import{a as m}from"./chunk.HN4PXH3D.js";import{q as c}from"./chunk.R4NDFXVA.js";import{k as u}from"./chunk.G76HB2FK.js";import{f as l}from"./chunk.MCIQXNKY.js";var A=`${f}keyboard-shortcut`,L={KEY:"key",TARGET:"target",GLOBAL:"global",ALLOW_WHILE_TYPING:"allow-while-typing",USE_CODE:"use-code",PREVENT_DEFAULT:"prevent-default",CAPTURE:"capture",DISABLED:"disabled"},k={TOOLTIP:"forge-tooltip"},I={ACTIVATE:"forge-keyboard-shortcut-activate"},t={elementName:A,attributes:L,selectors:k,events:I},E=["date","datetime","datetime-local","email","month","number","password","search","tel","text","time","url","week"];var d=class extends _{constructor(o){super(o);this.component=o}hasTargetElement(){return!!this._targetElement}destroy(){this._targetElement=null}addTargetEventListener(o,a,i){var s;(s=this._targetElement)==null||s.addEventListener(o,a,{capture:i})}removeTargetEventListener(o,a,i){var s;(s=this._targetElement)==null||s.removeEventListener(o,a,{capture:i})}setHostStyles(){this.component.style.display="none"}setTargetElement(o,a){if(a){let i=this._component.ownerDocument||document;this._targetElement=i.documentElement;return}if(o){if(this._component.parentElement){if(c(this._component.parentElement,o)){this._targetElement=this._component.parentElement;return}this._targetElement=this._component.parentElement.querySelector(o);return}}else{let i=this._component.previousElementSibling;for(;i;){if(!c(i,t.selectors.TOOLTIP)){this._targetElement=i;return}i=i.previousElementSibling}this._targetElement=this._component.parentElement;return}}};function y(n){return n instanceof HTMLInputElement?E.includes(n.type):!1}function T(n,e=!1){return!n||!n.length?[]:n.split(" ").map(a=>a.trim()).map(a=>{let i=a.split("+"),s=e?i.pop()||"":D((i.pop()||"").toLowerCase()),C=i.sort().join("").toLowerCase();return{key:s,modifier:C}})}function v(n,e,o=!1){let a=o?n.code:n.key.toLowerCase(),i=K(n);return e.some(s=>a===s.key&&i===s.modifier)}function K(n){let e="";return n.altKey&&(e+="alt"),n.ctrlKey&&(e+="control"),n.metaKey&&(e+="meta"),n.shiftKey&&(e+="shift"),e}function D(n){switch(n){case"plus":return"+";case"space":return" ";default:return n}}var b=class{constructor(e){this._adapter=e;this._global=!1;this._allowWhileTyping=!1;this._preventDefault=!0;this._capture=!1;this._useCode=!1;this._disabled=!1;this._keyDownListener=o=>this._onKeyDown(o)}initialize(){this._initializeTargetElement(),this._adapter.setHostStyles()}disconnect(){this._disconnectTargetElement(),this._adapter.destroy()}_initializeTargetElement(){if(this._disconnectTargetElement(),this._adapter.setTargetElement(this._target,this._global),!this._adapter.hasTargetElement())throw new Error("Unable to locate the target element.");this._disabled||this._connectTargetElement()}_connectTargetElement(){!this._adapter.hasTargetElement||this._adapter.addTargetEventListener("keydown",this._keyDownListener,this._capture)}_disconnectTargetElement(){!this._adapter.hasTargetElement||this._adapter.removeTargetEventListener("keydown",this._keyDownListener,this._capture)}_onKeyDown(e){!this._allowWhileTyping&&y(e.target)||v(e,this._keyCombinations,this._useCode)&&(this._preventDefault&&e.preventDefault(),this._adapter.emitHostEvent(t.events.ACTIVATE,e))}_setKeyCombinations(){this._keyCombinations=T(this._key,this._useCode)}get key(){return this._key}set key(e){this._key!==e&&(this._key=e,this._adapter.toggleHostAttribute(t.attributes.KEY,!!this.key,this._key||""),this._setKeyCombinations())}get target(){return this._target}set target(e){this._target!==e&&(this._target=e,this._adapter.setHostAttribute(t.attributes.TARGET,this._target),this._adapter.isConnected&&this._initializeTargetElement())}get global(){return this._global}set global(e){this._global!==e&&(this._global=e,this._adapter.toggleHostAttribute(t.attributes.GLOBAL,this._global),this._adapter.isConnected&&this._initializeTargetElement())}get allowWhileTyping(){return this._allowWhileTyping}set allowWhileTyping(e){this._allowWhileTyping!==e&&(this._allowWhileTyping=e,this._adapter.toggleHostAttribute(t.attributes.ALLOW_WHILE_TYPING,this._allowWhileTyping))}get preventDefault(){return this._preventDefault}set preventDefault(e){this._preventDefault!==e&&(this._preventDefault=e,this._adapter.toggleHostAttribute(t.attributes.PREVENT_DEFAULT,this._preventDefault))}get capture(){return this._capture}set capture(e){this._capture!==e&&(this._disconnectTargetElement(),this._capture=e,this._adapter.toggleHostAttribute(t.attributes.CAPTURE,this.capture),this._connectTargetElement())}get useCode(){return this._useCode}set useCode(e){this._useCode!==e&&(this._useCode=e,this._adapter.toggleHostAttribute(t.attributes.USE_CODE,this._useCode),this._setKeyCombinations())}get disabled(){return this._disabled}set disabled(e){this._disabled!==e&&(this._disabled=e,this._adapter.toggleHostAttribute(t.attributes.DISABLED,this._disabled),this._disabled?this._disconnectTargetElement():this._connectTargetElement())}};var r=class extends h{constructor(){super();this._foundation=new b(new d(this))}static get observedAttributes(){return[t.attributes.KEY,t.attributes.TARGET,t.attributes.GLOBAL,t.attributes.ALLOW_WHILE_TYPING,t.attributes.PREVENT_DEFAULT,t.attributes.CAPTURE,t.attributes.USE_CODE,t.attributes.DISABLED]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(o,a,i){switch(o){case t.attributes.KEY:this.key=i;break;case t.attributes.TARGET:this.target=i;break;case t.attributes.GLOBAL:this.global=u(i);break;case t.attributes.ALLOW_WHILE_TYPING:this.allowWhileTyping=u(i);break;case t.attributes.PREVENT_DEFAULT:this.preventDefault=u(i);break;case t.attributes.CAPTURE:this.capture=u(i);break;case t.attributes.USE_CODE:this.useCode=u(i);break;case t.attributes.DISABLED:this.disabled=u(i);break}}get keyBinding(){return this.key}set keyBinding(o){this.key=o}};l([p()],r.prototype,"key",2),l([p()],r.prototype,"target",2),l([p()],r.prototype,"global",2),l([p()],r.prototype,"allowWhileTyping",2),l([p()],r.prototype,"preventDefault",2),l([p()],r.prototype,"capture",2),l([p()],r.prototype,"useCode",2),l([p()],r.prototype,"disabled",2),r=l([g({name:t.elementName})],r);function Z(){m(r)}export{t as a,E as b,d as c,y as d,T as e,v as f,K as g,D as h,b as i,r as j,Z as k};
|
|
7
|
+
//# sourceMappingURL=chunk.5XQVZQ4U.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/keyboard-shortcut/keyboard-shortcut-constants.ts", "../../src/keyboard-shortcut/keyboard-shortcut-adapter.ts", "../../src/keyboard-shortcut/keyboard-shortcut-utils.ts", "../../src/keyboard-shortcut/keyboard-shortcut-foundation.ts", "../../src/keyboard-shortcut/keyboard-shortcut.ts", "../../src/keyboard-shortcut/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}keyboard-shortcut`;\n\nconst attributes = {\n KEY: 'key',\n TARGET: 'target',\n GLOBAL: 'global',\n ALLOW_WHILE_TYPING: 'allow-while-typing',\n USE_CODE: 'use-code',\n PREVENT_DEFAULT: 'prevent-default',\n CAPTURE: 'capture',\n DISABLED: 'disabled'\n};\n\nconst selectors = {\n TOOLTIP: 'forge-tooltip'\n};\n\nconst events = {\n ACTIVATE: `forge-keyboard-shortcut-activate`\n};\n\nexport const KEYBOARD_SHORTCUT_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n events\n};\n\nexport const textInputTypes = [\n 'date',\n 'datetime',\n 'datetime-local',\n 'email',\n 'month',\n 'number',\n 'password',\n 'search',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week'\n];\n\nexport interface IKeyCombination {\n key: string;\n modifier?: string;\n}\n", "import { matchesSelectors } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base';\nimport { IKeyboardShortcutComponent } from './keyboard-shortcut';\nimport { KEYBOARD_SHORTCUT_CONSTANTS } from './keyboard-shortcut-constants';\n\nexport interface IKeyboardShortcutAdapter extends IBaseAdapter {\n hasTargetElement(): boolean;\n destroy(): void;\n addTargetEventListener(type: string, listener: (evt: KeyboardEvent) => void, capture?: boolean): void;\n removeTargetEventListener(type: string, listener: (evt: KeyboardEvent) => void, capture?: boolean): void;\n setHostStyles(): void;\n setTargetElement(target: string | undefined, global: boolean): void;\n}\n\nexport class KeyboardShortcutAdapter extends BaseAdapter<IKeyboardShortcutComponent> implements IKeyboardShortcutAdapter {\n private _targetElement: HTMLElement | null;\n\n constructor(public component: IKeyboardShortcutComponent) {\n super(component);\n }\n\n public hasTargetElement(): boolean {\n return !!this._targetElement;\n }\n\n public destroy(): void {\n this._targetElement = null;\n }\n\n /**\n * Adds an event listener to the target element.\n * @param type The event type.\n * @param listener The event listener.\n */\n public addTargetEventListener(type: string, listener: (evt: KeyboardEvent) => void, capture?: boolean): void {\n this._targetElement?.addEventListener(type, listener, { capture });\n }\n\n /**\n * Removes an event listener from the target element.\n * @param type The event type.\n * @param listener The event listener.\n */\n public removeTargetEventListener(type: string, listener: (evt: KeyboardEvent) => void, capture?: boolean): void {\n this._targetElement?.removeEventListener(type, listener, { capture });\n }\n\n /**\n * Sets the host element's display to none\n */\n public setHostStyles(): void {\n this.component.style.display = 'none';\n }\n\n /**\n * Sets the target element based on the provided CSS selector.\n * @param {string | undefined} selector The target element selector.\n * @param {boolean} global Whether to target the document element.\n */\n public setTargetElement(selector: string | undefined, global: boolean): void {\n if (global) {\n const doc = this._component.ownerDocument || document;\n this._targetElement = doc.documentElement;\n return;\n }\n \n if (selector) {\n if (this._component.parentElement) {\n if (matchesSelectors(this._component.parentElement, selector)) {\n this._targetElement = this._component.parentElement;\n return;\n }\n this._targetElement = this._component.parentElement.querySelector(selector);\n return;\n }\n } else {\n let sibling = this._component.previousElementSibling;\n while (sibling) {\n // Ignore <forge-tooltip> elements\n if (!matchesSelectors(sibling, KEYBOARD_SHORTCUT_CONSTANTS.selectors.TOOLTIP)) {\n this._targetElement = sibling as HTMLElement;\n return;\n }\n sibling = sibling.previousElementSibling;\n }\n this._targetElement = this._component.parentElement as HTMLElement;\n return;\n }\n }\n}\n", "import { textInputTypes, IKeyCombination } from './keyboard-shortcut-constants';\n\n/** Checks if an HTML element allows text input */\nexport function elementAcceptsTextInput(el: any): boolean {\n if (el instanceof HTMLInputElement) {\n return textInputTypes.includes(el.type);\n }\n return false;\n}\n\n/** Parses a string of key combinations into an array of keys and modifiers */\nexport function parseKeyCombinations(keys: string | null | undefined, useCode = false): IKeyCombination[] {\n if (!keys || !keys.length) {\n return [];\n }\n\n const separatedKeys = keys.split(' ').map(key => key.trim());\n return separatedKeys.map(key => {\n const keyParts = key.split('+');\n const fixedKey = useCode ? keyParts.pop() || '' : fixKey((keyParts.pop() || '').toLowerCase());\n const modifiers = keyParts.sort().join('').toLowerCase();\n return { key: fixedKey, modifier: modifiers };\n });\n}\n\n/** Checks a keyboard event for a matching key combination */\nexport function matchKeyCombination(evt: KeyboardEvent, keyCombinations: IKeyCombination[], useCode = false): boolean {\n const eventKey = useCode ? evt.code : evt.key.toLowerCase();\n const modifierKeys = getModiferKeysString(evt);\n return keyCombinations.some(combination => eventKey === combination.key && modifierKeys === combination.modifier);\n}\n\n/** Returns an array of active modifier keys from a keyboard event */\nexport function getModiferKeysString(evt: KeyboardEvent): string {\n // Ensure the modifier keys are appended in alphabetical order\n let modifierString = '';\n if (evt.altKey) {\n modifierString += 'alt';\n }\n if (evt.ctrlKey) {\n modifierString += 'control';\n }\n if (evt.metaKey) {\n modifierString += 'meta';\n }\n if (evt.shiftKey) {\n modifierString += 'shift';\n }\n return modifierString;\n}\n\n/** Returns a reserved key character from its alias */\nexport function fixKey(key: string): string {\n switch (key) {\n case 'plus':\n return '+';\n case 'space':\n return ' ';\n default:\n return key;\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IKeyboardShortcutAdapter } from './keyboard-shortcut-adapter';\nimport { IKeyCombination, KEYBOARD_SHORTCUT_CONSTANTS } from './keyboard-shortcut-constants';\nimport { elementAcceptsTextInput, matchKeyCombination, parseKeyCombinations } from './keyboard-shortcut-utils';\n\nexport interface IKeyboardShortcutFoundation extends ICustomElementFoundation {\n key: string | null | undefined;\n target: string;\n global: boolean;\n allowWhileTyping: boolean;\n preventDefault: boolean;\n capture: boolean;\n useCode: boolean;\n disabled: boolean;\n}\n\nexport class KeyboardShortcutFoundation implements IKeyboardShortcutFoundation {\n private _key: string | null | undefined;\n private _target: string;\n private _global = false;\n private _allowWhileTyping = false;\n private _preventDefault = true;\n private _capture = false;\n private _useCode = false;\n private _disabled = false;\n private _keyCombinations: IKeyCombination[];\n private _keyDownListener: (evt: KeyboardEvent) => void;\n \n constructor(private _adapter: IKeyboardShortcutAdapter) {\n this._keyDownListener = evt => this._onKeyDown(evt);\n }\n\n public initialize(): void {\n this._initializeTargetElement();\n this._adapter.setHostStyles();\n }\n\n public disconnect(): void {\n this._disconnectTargetElement();\n this._adapter.destroy();\n }\n\n private _initializeTargetElement(): void {\n this._disconnectTargetElement();\n this._adapter.setTargetElement(this._target, this._global);\n \n if (!this._adapter.hasTargetElement()) {\n throw new Error('Unable to locate the target element.');\n }\n\n if (!this._disabled) {\n this._connectTargetElement();\n }\n }\n\n private _connectTargetElement(): void {\n if (!this._adapter.hasTargetElement) {\n return;\n }\n this._adapter.addTargetEventListener('keydown', this._keyDownListener, this._capture);\n }\n\n private _disconnectTargetElement(): void {\n if (!this._adapter.hasTargetElement) {\n return;\n }\n this._adapter.removeTargetEventListener('keydown', this._keyDownListener, this._capture);\n }\n\n private _onKeyDown(evt: KeyboardEvent): void {\n // Here we may check if the target element is disabled, but disabled elements typically can't receive focus anyway\n\n // Ignore the event if it originates from a text field\n // TODO: bypass this and allow it if a modifier key is used?\n if (!this._allowWhileTyping && elementAcceptsTextInput(evt.target)) {\n return;\n }\n\n if (matchKeyCombination(evt, this._keyCombinations, this._useCode)) {\n if (this._preventDefault) {\n evt.preventDefault();\n }\n this._adapter.emitHostEvent(KEYBOARD_SHORTCUT_CONSTANTS.events.ACTIVATE, evt);\n }\n }\n\n /** Sets the key combinations. */\n private _setKeyCombinations(): void {\n this._keyCombinations = parseKeyCombinations(this._key, this._useCode);\n }\n\n /** Gets/sets the key binding. */\n public get key(): string | null | undefined {\n return this._key;\n }\n public set key(value: string| null | undefined) {\n if (this._key !== value) {\n this._key = value;\n this._adapter.toggleHostAttribute(KEYBOARD_SHORTCUT_CONSTANTS.attributes.KEY, !!this.key, this._key || '');\n this._setKeyCombinations();\n }\n // TODO: prevent multiple shortcuts with the same keys on an element (possible?)\n }\n\n /** Gets/sets the target element selector. */\n public get target(): string {\n return this._target;\n }\n public set target(value: string) {\n if (this._target !== value) {\n this._target = value;\n this._adapter.setHostAttribute(KEYBOARD_SHORTCUT_CONSTANTS.attributes.TARGET, this._target);\n if (this._adapter.isConnected) {\n this._initializeTargetElement();\n }\n }\n }\n\n /** Gets/sets the global listener state. */\n public get global(): boolean {\n return this._global;\n }\n public set global(value: boolean) {\n if (this._global !== value) {\n this._global = value;\n this._adapter.toggleHostAttribute(KEYBOARD_SHORTCUT_CONSTANTS.attributes.GLOBAL, this._global);\n if (this._adapter.isConnected) {\n this._initializeTargetElement();\n }\n }\n }\n\n /** Gets/sets whether the callback will be trigger while a text input has focus. */\n public get allowWhileTyping(): boolean {\n return this._allowWhileTyping;\n }\n public set allowWhileTyping(value: boolean) {\n if (this._allowWhileTyping !== value) {\n this._allowWhileTyping = value;\n this._adapter.toggleHostAttribute(KEYBOARD_SHORTCUT_CONSTANTS.attributes.ALLOW_WHILE_TYPING, this._allowWhileTyping);\n }\n }\n\n /** Gets/sets whether to prevent default on keyboard events. */\n public get preventDefault(): boolean {\n return this._preventDefault;\n }\n public set preventDefault(value: boolean) {\n if (this._preventDefault !== value) {\n this._preventDefault = value;\n this._adapter.toggleHostAttribute(KEYBOARD_SHORTCUT_CONSTANTS.attributes.PREVENT_DEFAULT, this._preventDefault);\n }\n }\n\n /** Gets/sets whether to use capturing on keyboard events. */\n public get capture(): boolean {\n return this._capture;\n }\n public set capture(value: boolean) {\n if (this._capture !== value) {\n this._disconnectTargetElement(); // We need to disconnect first to ensure our listener is removed properly based on capturing state\n this._capture = value;\n this._adapter.toggleHostAttribute(KEYBOARD_SHORTCUT_CONSTANTS.attributes.CAPTURE, this.capture);\n this._connectTargetElement();\n }\n }\n\n /** Gets/sets whether to match codes instead of keys on keyboard events. */\n public get useCode(): boolean{\n return this._useCode;\n }\n public set useCode(value: boolean) {\n if (this._useCode !== value) {\n this._useCode = value;\n this._adapter.toggleHostAttribute(KEYBOARD_SHORTCUT_CONSTANTS.attributes.USE_CODE, this._useCode);\n this._setKeyCombinations();\n }\n }\n\n /** Gets/sets whether the event will be emitted. */\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.toggleHostAttribute(KEYBOARD_SHORTCUT_CONSTANTS.attributes.DISABLED, this._disabled);\n\n if (this._disabled) {\n this._disconnectTargetElement();\n } else {\n this._connectTargetElement();\n }\n }\n }\n}\n", "import { coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\n\nimport { KeyboardShortcutAdapter } from './keyboard-shortcut-adapter';\nimport { KeyboardShortcutFoundation } from './keyboard-shortcut-foundation';\nimport { KEYBOARD_SHORTCUT_CONSTANTS } from './keyboard-shortcut-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nexport interface IKeyboardShortcutComponent extends IBaseComponent {\n key: string | null | undefined;\n keyBinding: string | null | undefined;\n target: string;\n global: boolean;\n allowWhileTyping: boolean;\n preventDefault: boolean;\n capture: boolean;\n useCode: boolean;\n disabled: boolean;\n}\n\ndeclare global {\n // tslint:disable-next-line: interface-name\n interface HTMLElementTagNameMap {\n 'forge-keyboard-shortcut': IKeyboardShortcutComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-keyboard-shortcut>` custom element.\n * \n * @tag forge-keyboard-shortcut\n */\n@CustomElement({\n name: KEYBOARD_SHORTCUT_CONSTANTS.elementName\n})\nexport class KeyboardShortcutComponent extends BaseComponent implements IKeyboardShortcutComponent {\n public static get observedAttributes(): string[] {\n return [\n KEYBOARD_SHORTCUT_CONSTANTS.attributes.KEY,\n KEYBOARD_SHORTCUT_CONSTANTS.attributes.TARGET,\n KEYBOARD_SHORTCUT_CONSTANTS.attributes.GLOBAL,\n KEYBOARD_SHORTCUT_CONSTANTS.attributes.ALLOW_WHILE_TYPING,\n KEYBOARD_SHORTCUT_CONSTANTS.attributes.PREVENT_DEFAULT,\n KEYBOARD_SHORTCUT_CONSTANTS.attributes.CAPTURE,\n KEYBOARD_SHORTCUT_CONSTANTS.attributes.USE_CODE,\n KEYBOARD_SHORTCUT_CONSTANTS.attributes.DISABLED\n ];\n }\n\n private _foundation: KeyboardShortcutFoundation;\n\n constructor() {\n super();\n this._foundation = new KeyboardShortcutFoundation(new KeyboardShortcutAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case KEYBOARD_SHORTCUT_CONSTANTS.attributes.KEY:\n this.key = newValue;\n break;\n case KEYBOARD_SHORTCUT_CONSTANTS.attributes.TARGET:\n this.target = newValue;\n break;\n case KEYBOARD_SHORTCUT_CONSTANTS.attributes.GLOBAL:\n this.global = coerceBoolean(newValue);\n break;\n case KEYBOARD_SHORTCUT_CONSTANTS.attributes.ALLOW_WHILE_TYPING:\n this.allowWhileTyping = coerceBoolean(newValue);\n break;\n case KEYBOARD_SHORTCUT_CONSTANTS.attributes.PREVENT_DEFAULT:\n this.preventDefault = coerceBoolean(newValue);\n break;\n case KEYBOARD_SHORTCUT_CONSTANTS.attributes.CAPTURE:\n this.capture = coerceBoolean(newValue);\n break;\n case KEYBOARD_SHORTCUT_CONSTANTS.attributes.USE_CODE:\n this.useCode = coerceBoolean(newValue);\n break;\n case KEYBOARD_SHORTCUT_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets/sets the key binding. */\n @FoundationProperty()\n public key: string | null | undefined;\n\n /** Alias for key. */\n public get keyBinding(): string | null | undefined {\n return this.key;\n }\n public set keyBinding(value: string | null | undefined) {\n this.key = value;\n }\n\n /** Gets/sets the target element selector. */\n @FoundationProperty()\n public target: string;\n\n /** Gets/sets the global listener state. */\n @FoundationProperty()\n public global: boolean;\n\n /** Gets/sets whether the callback will be called while in a text entry field. */\n @FoundationProperty()\n public allowWhileTyping: boolean;\n \n /** Gets/sets whether to prevent default on keyboard events */\n @FoundationProperty()\n public preventDefault: boolean;\n \n /** Gets/sets whether to use capturing on keyboard events */\n @FoundationProperty()\n public capture: boolean;\n \n /** Gets/sets whether to match codes instead of keys on keyboard events */\n @FoundationProperty()\n public useCode: boolean;\n\n /** Gets/sets whether the callback will be called. */\n @FoundationProperty()\n public disabled: boolean;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { KeyboardShortcutComponent } from './keyboard-shortcut';\n\nexport * from './keyboard-shortcut-adapter';\nexport * from './keyboard-shortcut-constants';\nexport * from './keyboard-shortcut-foundation';\nexport * from './keyboard-shortcut-utils';\nexport * from './keyboard-shortcut';\n\nexport function defineKeyboardShortcutComponent(): void {\n defineCustomElement(KeyboardShortcutComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{b as n,c as d,d as s}from"./chunk.IJIKFXUT.js";import{a as i,b as a}from"./chunk.BSZ2LBJX.js";import{a as o,e as t}from"./chunk.HN4PXH3D.js";import{f as e}from"./chunk.MCIQXNKY.js";var f=`${a}mini-drawer`,w={HOVER:"hover"},l={elementName:f,attributes:w};var b='<template><div class="forge-drawer__root" part="root"><div class="forge-drawer forge-drawer--mini" part="container"><slot name="header"></slot><div class="forge-drawer__content" part="content"><slot></slot></div><slot name="footer"></slot></div></div></template>',c='.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}.forge-drawer__root{z-index:1;z-index:var(--forge-z-index-surface,1);height:100%}.forge-drawer--mini{width:56px;width:var(--forge-drawer-mini-width,56px);z-index:1;z-index:var(--forge-z-index-surface,1);-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition-property:width,-webkit-transform;transition-property:width,-webkit-transform;transition-property:transform,width;transition-property:transform,width,-webkit-transform;-webkit-transition:width .2s cubic-bezier(.4, 0, .2, 1);transition:width .2s cubic-bezier(.4, 0, .2, 1)}.forge-drawer--mini .forge-drawer__content{overflow:hidden}.forge-drawer--closed{width:0}: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;width:56px;width:var(--forge-drawer-mini-width,56px);overflow:visible!important}:host([direction=right]){min-width:56px;min-width:var(--forge-drawer-mini-width,56px);width:auto}:host([direction=right]) .forge-drawer__root{position:relative}:host(:not([open])){display:none}:host([hover]) .forge-drawer--right{position:absolute;right:0}:host([hover]) .forge-drawer:hover{width:256px!important;width:var(--forge-drawer-width,256px)!important;-webkit-transition:width .3s cubic-bezier(.4, 0, .2, 1) .3s;transition:width .3s cubic-bezier(.4, 0, .2, 1) .3s}:host([hover]) .forge-drawer:hover .forge-drawer__content{overflow:auto;overflow:overlay}',r=class extends s{constructor(){super();t(this,b,c),this._foundation=new d(new n(this))}};r=e([i({name:l.elementName})],r);function N(){o(r)}export{l as a,r as b,N as c};
|
|
7
|
+
//# sourceMappingURL=chunk.6APYGKNX.js.map
|