@tylertech/forge 2.13.2 → 2.14.0-dev.1
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 +2804 -504
- package/dist/button/forge-button.css +1 -1
- package/dist/esm/accordion/index.js +1 -1
- package/dist/esm/app-bar/help-button/index.js +1 -1
- package/dist/esm/app-bar/index.js +1 -1
- package/dist/esm/app-bar/menu-button/index.js +1 -1
- package/dist/esm/app-bar/notification-button/index.js +1 -1
- package/dist/esm/app-bar/profile-button/index.js +1 -1
- package/dist/esm/app-bar/search/index.js +1 -1
- package/dist/esm/autocomplete/index.js +1 -1
- package/dist/esm/avatar/index.js +1 -1
- package/dist/esm/backdrop/index.js +1 -1
- package/dist/esm/badge/index.js +1 -1
- package/dist/esm/banner/index.js +1 -1
- package/dist/esm/bottom-sheet/index.js +1 -1
- package/dist/esm/busy-indicator/index.js +1 -1
- package/dist/esm/button/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/dist/esm/button-toggle/index.js +1 -1
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
- package/dist/esm/calendar/calendar-menu/index.js +1 -1
- package/dist/esm/calendar/core/index.js +1 -1
- package/dist/esm/calendar/index.js +1 -1
- package/dist/esm/card/index.js +1 -1
- package/dist/esm/checkbox/index.js +1 -1
- package/dist/esm/chip-field/index.js +1 -1
- package/dist/esm/chips/chip/index.js +1 -1
- package/dist/esm/chips/chip-set/index.js +1 -1
- package/dist/esm/chips/index.js +1 -1
- package/dist/esm/chunks/chunk.2BNDXFI5.js +7 -0
- package/dist/esm/chunks/chunk.2BNDXFI5.js.map +7 -0
- package/dist/esm/chunks/{chunk.PYG4YVBA.js → chunk.2DXG2R3M.js} +2 -2
- package/dist/esm/chunks/chunk.2DXG2R3M.js.map +7 -0
- package/dist/esm/chunks/{chunk.UUX4QJ4D.js → chunk.3KQL7VAZ.js} +1 -1
- package/dist/esm/chunks/{chunk.UUX4QJ4D.js.map → chunk.3KQL7VAZ.js.map} +2 -2
- package/dist/esm/chunks/chunk.44IJE5UL.js +7 -0
- package/dist/esm/chunks/chunk.44IJE5UL.js.map +7 -0
- package/dist/esm/chunks/{chunk.MIYZJUXH.js → chunk.47A2CN5U.js} +2 -2
- package/dist/esm/chunks/{chunk.MIYZJUXH.js.map → chunk.47A2CN5U.js.map} +2 -2
- package/dist/esm/chunks/{chunk.OLNFXF3V.js → chunk.4BEI55KI.js} +2 -2
- package/dist/esm/chunks/{chunk.OLNFXF3V.js.map → chunk.4BEI55KI.js.map} +2 -2
- package/dist/esm/chunks/{chunk.EC6JSIQW.js → chunk.4DAIIJ37.js} +1 -1
- package/dist/esm/chunks/{chunk.EC6JSIQW.js.map → chunk.4DAIIJ37.js.map} +2 -2
- package/dist/esm/chunks/{chunk.B52LJRGH.js → chunk.4FSAAN6W.js} +2 -2
- package/dist/esm/chunks/{chunk.B52LJRGH.js.map → chunk.4FSAAN6W.js.map} +2 -2
- package/dist/esm/chunks/chunk.4NI63FGK.js +7 -0
- package/dist/esm/chunks/chunk.4NI63FGK.js.map +7 -0
- package/dist/esm/chunks/{chunk.KBMLP7UT.js → chunk.4WPFFNLH.js} +2 -2
- package/dist/esm/chunks/{chunk.KBMLP7UT.js.map → chunk.4WPFFNLH.js.map} +3 -3
- package/dist/esm/chunks/chunk.4X2OFZDL.js +7 -0
- package/dist/esm/chunks/chunk.4X2OFZDL.js.map +7 -0
- package/dist/esm/chunks/chunk.5FPFRE4H.js +7 -0
- package/dist/esm/chunks/chunk.5FPFRE4H.js.map +7 -0
- package/dist/esm/chunks/chunk.6OKJPSUE.js +7 -0
- package/dist/esm/chunks/chunk.6OKJPSUE.js.map +7 -0
- package/dist/esm/chunks/{chunk.AMFXGOSA.js → chunk.6YPD6CQM.js} +1 -1
- package/dist/esm/chunks/{chunk.AMFXGOSA.js.map → chunk.6YPD6CQM.js.map} +2 -2
- package/dist/esm/chunks/chunk.72AUOVCD.js +7 -0
- package/dist/esm/chunks/chunk.72AUOVCD.js.map +7 -0
- package/dist/esm/chunks/{chunk.X5JLUP7O.js → chunk.73AYD2BF.js} +2 -2
- package/dist/esm/chunks/{chunk.X5JLUP7O.js.map → chunk.73AYD2BF.js.map} +2 -2
- package/dist/esm/chunks/chunk.77Y3EABF.js +7 -0
- package/dist/esm/chunks/chunk.77Y3EABF.js.map +7 -0
- package/dist/esm/chunks/chunk.7A6MX6CS.js +7 -0
- package/dist/esm/chunks/chunk.7A6MX6CS.js.map +7 -0
- package/dist/esm/chunks/{chunk.V55E5JD5.js → chunk.7UKA4E5A.js} +2 -2
- package/dist/esm/chunks/{chunk.V55E5JD5.js.map → chunk.7UKA4E5A.js.map} +2 -2
- package/dist/esm/chunks/{chunk.GVQVA7P3.js → chunk.7XFU2W25.js} +1 -1
- package/dist/esm/chunks/{chunk.GVQVA7P3.js.map → chunk.7XFU2W25.js.map} +2 -2
- package/dist/esm/chunks/{chunk.MYNPY3AQ.js → chunk.AFLH5HUG.js} +2 -2
- package/dist/esm/chunks/{chunk.MYNPY3AQ.js.map → chunk.AFLH5HUG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.24D46RLZ.js → chunk.ARJ3EVVO.js} +2 -2
- package/dist/esm/chunks/{chunk.24D46RLZ.js.map → chunk.ARJ3EVVO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.OOW3UKT4.js → chunk.BE7PZANN.js} +2 -2
- package/dist/esm/chunks/{chunk.OOW3UKT4.js.map → chunk.BE7PZANN.js.map} +2 -2
- package/dist/esm/chunks/{chunk.3STDLL5U.js → chunk.BJE6O5ES.js} +2 -2
- package/dist/esm/chunks/{chunk.3STDLL5U.js.map → chunk.BJE6O5ES.js.map} +2 -2
- package/dist/esm/chunks/{chunk.2GY2VPJG.js → chunk.BJZ7RB5F.js} +1 -1
- package/dist/esm/chunks/{chunk.2GY2VPJG.js.map → chunk.BJZ7RB5F.js.map} +2 -2
- package/dist/esm/chunks/chunk.BTBHIIGI.js +7 -0
- package/dist/esm/chunks/chunk.BTBHIIGI.js.map +7 -0
- package/dist/esm/chunks/chunk.C7AN6FMW.js +7 -0
- package/dist/esm/chunks/chunk.C7AN6FMW.js.map +7 -0
- package/dist/esm/chunks/{chunk.NV2HNCQH.js → chunk.DFJUCHEO.js} +2 -2
- package/dist/esm/chunks/{chunk.NV2HNCQH.js.map → chunk.DFJUCHEO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.AWCBH5KW.js → chunk.DONAMICM.js} +1 -1
- package/dist/esm/chunks/{chunk.AWCBH5KW.js.map → chunk.DONAMICM.js.map} +2 -2
- package/dist/esm/chunks/chunk.DQJPIDVW.js +7 -0
- package/dist/esm/chunks/chunk.DQJPIDVW.js.map +7 -0
- package/dist/esm/chunks/{chunk.PBJEZJTY.js → chunk.DT7MZR5Y.js} +2 -2
- package/dist/esm/chunks/{chunk.PBJEZJTY.js.map → chunk.DT7MZR5Y.js.map} +2 -2
- package/dist/esm/chunks/chunk.DYNEJBYK.js +7 -0
- package/dist/esm/chunks/{chunk.O5I3ZMDA.js.map → chunk.DYNEJBYK.js.map} +2 -2
- package/dist/esm/chunks/chunk.E6CYXNS2.js +7 -0
- package/dist/esm/chunks/chunk.E6CYXNS2.js.map +7 -0
- package/dist/esm/chunks/{chunk.ZFD3OE45.js → chunk.EGRUD7S7.js} +2 -2
- package/dist/esm/chunks/{chunk.ZFD3OE45.js.map → chunk.EGRUD7S7.js.map} +2 -2
- package/dist/esm/chunks/chunk.ESR2NHOS.js +7 -0
- package/dist/esm/chunks/chunk.ESR2NHOS.js.map +7 -0
- package/dist/esm/chunks/{chunk.55BOUOT6.js → chunk.F2B24WLK.js} +2 -2
- package/dist/esm/chunks/{chunk.55BOUOT6.js.map → chunk.F2B24WLK.js.map} +2 -2
- package/dist/esm/chunks/chunk.F3MP6AXF.js +29 -0
- package/dist/esm/chunks/chunk.F3MP6AXF.js.map +7 -0
- package/dist/esm/chunks/{chunk.Z4MN5NB5.js → chunk.FRYLJWYL.js} +2 -2
- package/dist/esm/chunks/{chunk.Z4MN5NB5.js.map → chunk.FRYLJWYL.js.map} +2 -2
- package/dist/esm/chunks/chunk.FVRSGKJD.js +7 -0
- package/dist/esm/chunks/chunk.FVRSGKJD.js.map +7 -0
- package/dist/esm/chunks/chunk.G3ZTZ4AN.js +7 -0
- package/dist/esm/chunks/chunk.G3ZTZ4AN.js.map +7 -0
- package/dist/esm/chunks/{chunk.MNPORZ4F.js → chunk.G45OZEIS.js} +2 -2
- package/dist/esm/chunks/{chunk.MNPORZ4F.js.map → chunk.G45OZEIS.js.map} +2 -2
- package/dist/esm/chunks/{chunk.5PXABBKU.js → chunk.G5MGGEFP.js} +2 -2
- package/dist/esm/chunks/{chunk.5PXABBKU.js.map → chunk.G5MGGEFP.js.map} +2 -2
- package/dist/esm/chunks/{chunk.Y6FFG7XO.js → chunk.GO5A4GKZ.js} +1 -1
- package/dist/esm/chunks/{chunk.Y6FFG7XO.js.map → chunk.GO5A4GKZ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.L54GENPD.js → chunk.H4Z4DHPA.js} +2 -2
- package/dist/esm/chunks/{chunk.L54GENPD.js.map → chunk.H4Z4DHPA.js.map} +2 -2
- package/dist/esm/chunks/chunk.HBMNXZES.js +7 -0
- package/dist/esm/chunks/chunk.HBMNXZES.js.map +7 -0
- package/dist/esm/chunks/{chunk.Y5GQ2BA7.js → chunk.HPDBSBQJ.js} +2 -2
- package/dist/esm/chunks/{chunk.Y5GQ2BA7.js.map → chunk.HPDBSBQJ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.TLS4ALGU.js → chunk.HU27X3IT.js} +2 -2
- package/dist/esm/chunks/{chunk.TLS4ALGU.js.map → chunk.HU27X3IT.js.map} +2 -2
- package/dist/esm/chunks/{chunk.ORF746AF.js → chunk.HV6SPRC4.js} +2 -2
- package/dist/esm/chunks/{chunk.ORF746AF.js.map → chunk.HV6SPRC4.js.map} +2 -2
- package/dist/esm/chunks/chunk.I5BAZWUF.js +7 -0
- package/dist/esm/chunks/chunk.I5BAZWUF.js.map +7 -0
- package/dist/esm/chunks/chunk.IGTXLDZS.js +7 -0
- package/dist/esm/chunks/{chunk.BYRJ7577.js.map → chunk.IGTXLDZS.js.map} +2 -2
- package/dist/esm/chunks/{chunk.GXUYYBVO.js → chunk.ILRWZHH3.js} +2 -2
- package/dist/esm/chunks/chunk.ILRWZHH3.js.map +7 -0
- package/dist/esm/chunks/{chunk.Z6S62LZJ.js → chunk.INCKI5IX.js} +2 -2
- package/dist/esm/chunks/{chunk.Z6S62LZJ.js.map → chunk.INCKI5IX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.IMZ5PF4C.js → chunk.J2H5RXTX.js} +2 -2
- package/dist/esm/chunks/{chunk.IMZ5PF4C.js.map → chunk.J2H5RXTX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.G76HB2FK.js → chunk.J2M2MXP2.js} +1 -1
- package/dist/esm/chunks/{chunk.G76HB2FK.js.map → chunk.J2M2MXP2.js.map} +2 -2
- package/dist/esm/chunks/{chunk.SVGEVCXA.js → chunk.J6WCFQSS.js} +2 -2
- package/dist/esm/chunks/{chunk.SVGEVCXA.js.map → chunk.J6WCFQSS.js.map} +2 -2
- package/dist/esm/chunks/{chunk.HWVLZ44Q.js → chunk.JEN6YP2Q.js} +2 -2
- package/dist/esm/chunks/{chunk.HWVLZ44Q.js.map → chunk.JEN6YP2Q.js.map} +2 -2
- package/dist/esm/chunks/{chunk.JXY6MTP3.js → chunk.JHBCYICS.js} +2 -2
- package/dist/esm/chunks/{chunk.JXY6MTP3.js.map → chunk.JHBCYICS.js.map} +2 -2
- package/dist/esm/chunks/chunk.JHY2CKEH.js +7 -0
- package/dist/esm/chunks/{chunk.VW4JVRH7.js.map → chunk.JHY2CKEH.js.map} +2 -2
- package/dist/esm/chunks/{chunk.FL6SJHQU.js → chunk.K2C4W3CO.js} +2 -2
- package/dist/esm/chunks/{chunk.FL6SJHQU.js.map → chunk.K2C4W3CO.js.map} +3 -3
- package/dist/esm/chunks/chunk.K6AFP52A.js +7 -0
- package/dist/esm/chunks/chunk.K6AFP52A.js.map +7 -0
- package/dist/esm/chunks/{chunk.ZAGCOV55.js → chunk.KE6GOYAB.js} +2 -2
- package/dist/esm/chunks/{chunk.ZAGCOV55.js.map → chunk.KE6GOYAB.js.map} +2 -2
- package/dist/esm/chunks/{chunk.B3IJU6XJ.js → chunk.KTGSZEAG.js} +1 -1
- package/dist/esm/chunks/{chunk.B3IJU6XJ.js.map → chunk.KTGSZEAG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.BMFJLHDR.js → chunk.KU5CXXGS.js} +2 -2
- package/dist/esm/chunks/{chunk.BMFJLHDR.js.map → chunk.KU5CXXGS.js.map} +2 -2
- package/dist/esm/chunks/{chunk.ALJ3FDXL.js → chunk.KZO4DT2S.js} +2 -2
- package/dist/esm/chunks/{chunk.ALJ3FDXL.js.map → chunk.KZO4DT2S.js.map} +3 -3
- package/dist/esm/chunks/{chunk.7MVBJ37L.js → chunk.LDN4HLF7.js} +2 -2
- package/dist/esm/chunks/{chunk.7MVBJ37L.js.map → chunk.LDN4HLF7.js.map} +2 -2
- package/dist/esm/chunks/chunk.LFLREB3C.js +7 -0
- package/dist/esm/chunks/chunk.LFLREB3C.js.map +7 -0
- package/dist/esm/chunks/{chunk.E37HEAJ5.js → chunk.LIKJD4SK.js} +1 -1
- package/dist/esm/chunks/{chunk.E37HEAJ5.js.map → chunk.LIKJD4SK.js.map} +2 -2
- package/dist/esm/chunks/{chunk.S76NW5JY.js → chunk.LYOQ2RGP.js} +2 -2
- package/dist/esm/chunks/{chunk.S76NW5JY.js.map → chunk.LYOQ2RGP.js.map} +2 -2
- package/dist/esm/chunks/chunk.MHOS3IHQ.js +7 -0
- package/dist/esm/chunks/chunk.MHOS3IHQ.js.map +7 -0
- package/dist/esm/chunks/{chunk.IARIRFXO.js → chunk.MLV25D2G.js} +2 -2
- package/dist/esm/chunks/{chunk.IARIRFXO.js.map → chunk.MLV25D2G.js.map} +2 -2
- package/dist/esm/chunks/{chunk.N24NHF7Y.js → chunk.MXTDW27J.js} +2 -2
- package/dist/esm/chunks/{chunk.N24NHF7Y.js.map → chunk.MXTDW27J.js.map} +2 -2
- package/dist/esm/chunks/{chunk.LZMYHIO2.js → chunk.MZLPUI6R.js} +1 -1
- package/dist/esm/chunks/{chunk.LZMYHIO2.js.map → chunk.MZLPUI6R.js.map} +2 -2
- package/dist/esm/chunks/{chunk.SLSVRMAS.js → chunk.N4PVZUJX.js} +2 -2
- package/dist/esm/chunks/{chunk.SLSVRMAS.js.map → chunk.N4PVZUJX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.YG2KLPHA.js.map → chunk.NW7NV2A2.js} +7 -7
- package/dist/esm/chunks/chunk.NW7NV2A2.js.map +7 -0
- package/dist/esm/chunks/{chunk.LGEYSCS2.js → chunk.O4FB4BV5.js} +2 -2
- package/dist/esm/chunks/{chunk.LGEYSCS2.js.map → chunk.O4FB4BV5.js.map} +2 -2
- package/dist/esm/chunks/{chunk.N46G56GG.js → chunk.O73S5LF3.js} +2 -2
- package/dist/esm/chunks/{chunk.N46G56GG.js.map → chunk.O73S5LF3.js.map} +2 -2
- package/dist/esm/chunks/{chunk.BCP2YATB.js → chunk.OV4QNVJH.js} +2 -2
- package/dist/esm/chunks/{chunk.BCP2YATB.js.map → chunk.OV4QNVJH.js.map} +2 -2
- package/dist/esm/chunks/{chunk.OJFI5I6O.js → chunk.OZ5BPXNV.js} +2 -2
- package/dist/esm/chunks/{chunk.OJFI5I6O.js.map → chunk.OZ5BPXNV.js.map} +2 -2
- package/dist/esm/chunks/{chunk.VHKQHMK3.js → chunk.P3IA2WTO.js} +2 -2
- package/dist/esm/chunks/{chunk.VHKQHMK3.js.map → chunk.P3IA2WTO.js.map} +3 -3
- package/dist/esm/chunks/{chunk.HWQEGQDD.js → chunk.PALRSBSY.js} +2 -2
- package/dist/esm/chunks/{chunk.HWQEGQDD.js.map → chunk.PALRSBSY.js.map} +2 -2
- package/dist/esm/chunks/{chunk.R4NDFXVA.js → chunk.PN26D52V.js} +2 -2
- package/dist/esm/chunks/{chunk.R4NDFXVA.js.map → chunk.PN26D52V.js.map} +2 -2
- package/dist/esm/chunks/chunk.PYIFIHDK.js +7 -0
- package/dist/esm/chunks/chunk.PYIFIHDK.js.map +7 -0
- package/dist/esm/chunks/{chunk.WEUNLYMQ.js → chunk.RB5BTA5N.js} +2 -2
- package/dist/esm/chunks/{chunk.WEUNLYMQ.js.map → chunk.RB5BTA5N.js.map} +2 -2
- package/dist/esm/chunks/{chunk.NYMNX3S7.js → chunk.RBAVT3XQ.js} +2 -2
- package/dist/esm/chunks/{chunk.NYMNX3S7.js.map → chunk.RBAVT3XQ.js.map} +2 -2
- package/dist/esm/chunks/chunk.RE5X26QT.js +29 -0
- package/dist/esm/chunks/chunk.RE5X26QT.js.map +7 -0
- package/dist/esm/chunks/chunk.RG6CDWEX.js +7 -0
- package/dist/esm/chunks/chunk.RG6CDWEX.js.map +7 -0
- package/dist/esm/chunks/chunk.RHFNK6EE.js +7 -0
- package/dist/esm/chunks/chunk.RHFNK6EE.js.map +7 -0
- package/dist/esm/chunks/{chunk.ZMXKZJRM.js → chunk.ROR6JMAE.js} +2 -2
- package/dist/esm/chunks/{chunk.ZMXKZJRM.js.map → chunk.ROR6JMAE.js.map} +2 -2
- package/dist/esm/chunks/chunk.RYMPSU4J.js +7 -0
- package/dist/esm/chunks/chunk.RYMPSU4J.js.map +7 -0
- package/dist/esm/chunks/{chunk.MBS5VMYY.js → chunk.SAQVWOVK.js} +2 -2
- package/dist/esm/chunks/{chunk.MBS5VMYY.js.map → chunk.SAQVWOVK.js.map} +3 -3
- package/dist/esm/chunks/chunk.SD4LLO5A.js +12 -0
- package/dist/esm/chunks/chunk.SD4LLO5A.js.map +7 -0
- package/dist/esm/chunks/{chunk.TCAOLSLI.js → chunk.SXTTEIIH.js} +2 -2
- package/dist/esm/chunks/{chunk.TCAOLSLI.js.map → chunk.SXTTEIIH.js.map} +2 -2
- package/dist/esm/chunks/{chunk.MWD47ZZU.js → chunk.T76JYRPR.js} +2 -2
- package/dist/esm/chunks/{chunk.MWD47ZZU.js.map → chunk.T76JYRPR.js.map} +3 -3
- package/dist/esm/chunks/chunk.TR5YMNJJ.js +7 -0
- package/dist/esm/chunks/chunk.TR5YMNJJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.DRXMITOO.js → chunk.TWZXQQQO.js} +2 -2
- package/dist/esm/chunks/{chunk.DRXMITOO.js.map → chunk.TWZXQQQO.js.map} +3 -3
- package/dist/esm/chunks/chunk.U6WGJELL.js +7 -0
- package/dist/esm/chunks/chunk.U6WGJELL.js.map +7 -0
- package/dist/esm/chunks/chunk.U724KSZU.js +7 -0
- package/dist/esm/chunks/chunk.U724KSZU.js.map +7 -0
- package/dist/esm/chunks/{chunk.LZHDRATV.js → chunk.UBD2DPQN.js} +2 -2
- package/dist/esm/chunks/{chunk.LZHDRATV.js.map → chunk.UBD2DPQN.js.map} +2 -2
- package/dist/esm/chunks/{chunk.2ZQ3ZDPN.js → chunk.UF43SSFY.js} +2 -2
- package/dist/esm/chunks/{chunk.2ZQ3ZDPN.js.map → chunk.UF43SSFY.js.map} +2 -2
- package/dist/esm/chunks/chunk.ULIFS3UR.js +7 -0
- package/dist/esm/chunks/chunk.ULIFS3UR.js.map +7 -0
- package/dist/esm/chunks/{chunk.2LHBE2QZ.js → chunk.UT7QUGAO.js} +2 -2
- package/dist/esm/chunks/{chunk.2LHBE2QZ.js.map → chunk.UT7QUGAO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.STS5TIUV.js → chunk.V4TCOZLK.js} +1 -1
- package/dist/esm/chunks/chunk.V4TCOZLK.js.map +7 -0
- package/dist/esm/chunks/chunk.V7WKXEZC.js +7 -0
- package/dist/esm/chunks/chunk.V7WKXEZC.js.map +7 -0
- package/dist/esm/chunks/{chunk.HHJJJ73Y.js → chunk.VAKNDCLP.js} +2 -2
- package/dist/esm/chunks/{chunk.HHJJJ73Y.js.map → chunk.VAKNDCLP.js.map} +3 -3
- package/dist/esm/chunks/chunk.VC2BG2RS.js +7 -0
- package/dist/esm/chunks/chunk.VC2BG2RS.js.map +7 -0
- package/dist/esm/chunks/{chunk.3L7T5WYL.js → chunk.WP4QOOIS.js} +2 -2
- package/dist/esm/chunks/{chunk.3L7T5WYL.js.map → chunk.WP4QOOIS.js.map} +2 -2
- package/dist/esm/chunks/chunk.WY7DECJD.js +7 -0
- package/dist/esm/chunks/chunk.WY7DECJD.js.map +7 -0
- package/dist/esm/chunks/{chunk.YONRMJU5.js → chunk.X5LGVZGO.js} +2 -2
- package/dist/esm/chunks/chunk.X5LGVZGO.js.map +7 -0
- package/dist/esm/chunks/{chunk.HPJ4AQIE.js → chunk.XHV3GQ7L.js} +2 -2
- package/dist/esm/chunks/{chunk.HPJ4AQIE.js.map → chunk.XHV3GQ7L.js.map} +2 -2
- package/dist/esm/chunks/{chunk.5TVWDATE.js → chunk.XUW3GG46.js} +2 -2
- package/dist/esm/chunks/{chunk.5TVWDATE.js.map → chunk.XUW3GG46.js.map} +2 -2
- package/dist/esm/chunks/chunk.XZ4WI7VK.js +7 -0
- package/dist/esm/chunks/chunk.XZ4WI7VK.js.map +7 -0
- package/dist/esm/chunks/{chunk.MMVZJLXE.js → chunk.Y4GKBJGI.js} +2 -2
- package/dist/esm/chunks/{chunk.MMVZJLXE.js.map → chunk.Y4GKBJGI.js.map} +2 -2
- package/dist/esm/chunks/chunk.Y66GSZJB.js +7 -0
- package/dist/esm/chunks/{chunk.5BDTX7CR.js.map → chunk.Y66GSZJB.js.map} +3 -3
- package/dist/esm/chunks/chunk.Y72NANFX.js +7 -0
- package/dist/esm/chunks/chunk.Y72NANFX.js.map +7 -0
- package/dist/esm/chunks/chunk.YBEBD4CN.js +7 -0
- package/dist/esm/chunks/chunk.YBEBD4CN.js.map +7 -0
- package/dist/esm/chunks/{chunk.D4SNVKDA.js → chunk.YI4JTY4T.js} +1 -1
- package/dist/esm/chunks/{chunk.D4SNVKDA.js.map → chunk.YI4JTY4T.js.map} +2 -2
- package/dist/esm/chunks/{chunk.E43TT4RI.js → chunk.YPZNIYQL.js} +1 -1
- package/dist/esm/chunks/{chunk.E43TT4RI.js.map → chunk.YPZNIYQL.js.map} +2 -2
- package/dist/esm/chunks/{chunk.F5I55MXD.js → chunk.ZUNZKRRK.js} +2 -2
- package/dist/esm/chunks/{chunk.F5I55MXD.js.map → chunk.ZUNZKRRK.js.map} +2 -2
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +1 -1
- package/dist/esm/core/base/index.js +1 -1
- package/dist/esm/core/delegates/index.js +1 -1
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/core/mask/index.js +1 -1
- package/dist/esm/core/utils/index.js +1 -1
- package/dist/esm/date-picker/index.js +1 -1
- package/dist/esm/date-range-picker/index.js +1 -1
- package/dist/esm/dialog/index.js +1 -1
- package/dist/esm/divider/index.js +1 -1
- package/dist/esm/drawer/base/index.js +1 -1
- package/dist/esm/drawer/drawer/index.js +1 -1
- package/dist/esm/drawer/index.js +1 -1
- package/dist/esm/drawer/mini-drawer/index.js +1 -1
- package/dist/esm/drawer/modal-drawer/index.js +1 -1
- package/dist/esm/expansion-panel/index.js +1 -1
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/index.js +1 -1
- package/dist/esm/floating-label/index.js +1 -1
- package/dist/esm/icon/index.js +1 -1
- package/dist/esm/icon-button/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inline-message/index.js +1 -1
- package/dist/esm/keyboard-shortcut/index.js +1 -1
- package/dist/esm/label-value/index.js +1 -1
- package/dist/esm/linear-progress/index.js +1 -1
- package/dist/esm/list/index.js +1 -1
- package/dist/esm/list/list/index.js +1 -1
- package/dist/esm/list/list-item/index.js +1 -1
- package/dist/esm/list-dropdown/index.js +1 -1
- package/dist/esm/menu/index.js +1 -1
- package/dist/esm/open-icon/index.js +1 -1
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +1 -1
- package/dist/esm/popup/index.js +1 -1
- package/dist/esm/product-icon/index.js +1 -1
- package/dist/esm/profile-card/index.js +1 -1
- package/dist/esm/quantity-field/index.js +1 -1
- package/dist/esm/radio/index.js +1 -1
- package/dist/esm/ripple/index.js +1 -1
- package/dist/esm/scaffold/index.js +1 -1
- package/dist/esm/select/core/index.js +1 -1
- package/dist/esm/select/index.js +1 -1
- package/dist/esm/select/option/index.js +1 -1
- package/dist/esm/select/option-group/index.js +1 -1
- package/dist/esm/select/select/index.js +1 -1
- package/dist/esm/select/select-dropdown/index.js +1 -1
- package/dist/esm/skeleton/index.js +1 -1
- package/dist/esm/slider/index.js +1 -1
- package/dist/esm/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view-panel/index.js +1 -1
- package/dist/esm/stack/index.js +7 -0
- package/dist/esm/stack/index.js.map +7 -0
- package/dist/esm/stepper/index.js +1 -1
- package/dist/esm/stepper/step/index.js +1 -1
- package/dist/esm/stepper/stepper/index.js +1 -1
- package/dist/esm/switch/index.js +1 -1
- package/dist/esm/table/index.js +1 -1
- package/dist/esm/tabs/index.js +1 -1
- package/dist/esm/tabs/tab/index.js +1 -1
- package/dist/esm/tabs/tab-bar/index.js +1 -1
- package/dist/esm/text-field/index.js +1 -1
- package/dist/esm/theme/index.js +1 -1
- package/dist/esm/time-picker/index.js +1 -1
- package/dist/esm/toast/index.js +1 -1
- package/dist/esm/toolbar/index.js +1 -1
- package/dist/esm/tooltip/index.js +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/view-switcher/index.js +1 -1
- package/dist/esm/view-switcher/view/index.js +1 -1
- package/dist/floating-action-button/forge-floating-action-button.css +1 -1
- package/dist/floating-label/forge-floating-label.css +1 -1
- package/dist/forge.css +1 -1
- package/dist/utils/forge-utils.css +1 -1
- package/esm/app-bar/app-bar.js +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-adapter.d.ts +3 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +5 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-constants.d.ts +1 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-constants.js +2 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-foundation.d.ts +4 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-foundation.js +14 -0
- package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +2 -0
- package/esm/app-bar/notification-button/app-bar-notification-button.js +9 -2
- package/esm/autocomplete/autocomplete-adapter.d.ts +11 -10
- package/esm/autocomplete/autocomplete-adapter.js +4 -1
- package/esm/autocomplete/autocomplete-constants.d.ts +11 -12
- package/esm/autocomplete/autocomplete-constants.js +1 -0
- package/esm/autocomplete/autocomplete-foundation.d.ts +14 -7
- package/esm/autocomplete/autocomplete-foundation.js +26 -4
- package/esm/autocomplete/autocomplete-utils.d.ts +4 -5
- package/esm/autocomplete/autocomplete.d.ts +10 -4
- package/esm/autocomplete/autocomplete.js +10 -3
- package/esm/badge/badge.js +1 -1
- package/esm/busy-indicator/busy-indicator.js +2 -2
- package/esm/button/button-constants.d.ts +1 -0
- package/esm/button/button-constants.js +2 -1
- package/esm/button/button.d.ts +1 -1
- package/esm/button/button.js +6 -7
- package/esm/calendar/calendar-foundation.js +1 -0
- package/esm/calendar/calendar.js +1 -1
- package/esm/card/card.js +1 -1
- package/esm/checkbox/checkbox-adapter.d.ts +1 -2
- package/esm/checkbox/checkbox-adapter.js +12 -8
- package/esm/checkbox/checkbox-foundation.js +0 -3
- package/esm/chip-field/chip-field-adapter.d.ts +2 -0
- package/esm/chip-field/chip-field-adapter.js +8 -3
- package/esm/chip-field/chip-field-foundation.js +1 -0
- package/esm/chip-field/chip-field.js +1 -1
- package/esm/chips/chip/chip-adapter.d.ts +17 -2
- package/esm/chips/chip/chip-adapter.js +90 -15
- package/esm/chips/chip/chip-constants.d.ts +4 -0
- package/esm/chips/chip/chip-constants.js +6 -2
- package/esm/chips/chip/chip-foundation.d.ts +2 -0
- package/esm/chips/chip/chip-foundation.js +38 -13
- package/esm/chips/chip/chip.d.ts +2 -0
- package/esm/chips/chip/chip.js +5 -2
- package/esm/chips/chip-set/chip-set-adapter.d.ts +4 -0
- package/esm/chips/chip-set/chip-set-adapter.js +24 -0
- package/esm/chips/chip-set/chip-set-foundation.d.ts +3 -0
- package/esm/chips/chip-set/chip-set-foundation.js +8 -0
- package/esm/chips/chip-set/chip-set.d.ts +1 -0
- package/esm/chips/chip-set/chip-set.js +3 -0
- package/esm/circular-progress/circular-progress.js +1 -1
- package/esm/color-picker/color-picker-foundation.d.ts +1 -0
- package/esm/color-picker/color-picker-foundation.js +19 -8
- package/esm/core/mask/intermediate-time-parser.d.ts +49 -0
- package/esm/core/mask/intermediate-time-parser.js +106 -0
- package/esm/core/mask/time-input-mask.d.ts +0 -1
- package/esm/core/mask/time-input-mask.js +79 -58
- package/esm/core/mask/time-segment-parser.d.ts +22 -0
- package/esm/core/mask/time-segment-parser.js +46 -0
- package/esm/core/utils/date-utils.js +2 -2
- package/esm/core/utils/time-utils.d.ts +1 -0
- package/esm/core/utils/time-utils.js +20 -3
- package/esm/core/utils/utils.d.ts +0 -6
- package/esm/core/utils/utils.js +0 -10
- package/esm/date-picker/base/base-date-picker-foundation.js +2 -1
- package/esm/date-picker/base/base-date-picker.d.ts +2 -2
- package/esm/date-range-picker/date-range-picker-foundation.d.ts +2 -2
- package/esm/date-range-picker/date-range-picker-foundation.js +1 -1
- package/esm/dialog/dialog-adapter.d.ts +0 -2
- package/esm/dialog/dialog-adapter.js +1 -10
- package/esm/dialog/dialog-foundation.js +2 -3
- package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
- package/esm/file-picker/file-picker-adapter.js +3 -2
- package/esm/file-picker/file-picker-foundation.d.ts +2 -0
- package/esm/file-picker/file-picker-foundation.js +15 -38
- package/esm/file-picker/file-picker.d.ts +1 -0
- package/esm/file-picker/file-picker.js +3 -0
- package/esm/floating-action-button/floating-action-button-constants.js +1 -1
- package/esm/icon-button/icon-button-constants.js +1 -1
- package/esm/icon-button/icon-button.d.ts +1 -1
- package/esm/icon-button/icon-button.js +6 -6
- package/esm/index.d.ts +1 -0
- package/esm/index.js +3 -0
- package/esm/linear-progress/linear-progress.js +2 -2
- package/esm/list/list-item/list-item-foundation.js +1 -2
- package/esm/list/list-item/list-item.js +1 -1
- package/esm/list-dropdown/cascading-list-dropdown-aware-foundation.d.ts +5 -2
- package/esm/list-dropdown/cascading-list-dropdown-aware-foundation.js +3 -1
- package/esm/list-dropdown/list-dropdown-adapter.d.ts +2 -0
- package/esm/list-dropdown/list-dropdown-adapter.js +6 -0
- package/esm/list-dropdown/list-dropdown-aware-foundation.d.ts +8 -0
- package/esm/list-dropdown/list-dropdown-aware-foundation.js +14 -0
- package/esm/list-dropdown/list-dropdown-aware.d.ts +11 -2
- package/esm/list-dropdown/list-dropdown-aware.js +12 -0
- package/esm/list-dropdown/list-dropdown-constants.d.ts +10 -3
- package/esm/list-dropdown/list-dropdown-constants.js +2 -0
- package/esm/list-dropdown/list-dropdown-foundation.js +5 -6
- package/esm/list-dropdown/list-dropdown-utils.d.ts +1 -0
- package/esm/list-dropdown/list-dropdown-utils.js +40 -18
- package/esm/menu/menu-adapter.d.ts +2 -0
- package/esm/menu/menu-adapter.js +7 -0
- package/esm/menu/menu-constants.js +1 -1
- package/esm/menu/menu-foundation.d.ts +12 -3
- package/esm/menu/menu-foundation.js +28 -17
- package/esm/menu/menu.d.ts +6 -1
- package/esm/menu/menu.js +9 -3
- package/esm/popup/popup-adapter.js +9 -1
- package/esm/popup/popup-constants.d.ts +1 -0
- package/esm/popup/popup-constants.js +2 -1
- package/esm/popup/popup-foundation.d.ts +4 -0
- package/esm/popup/popup-foundation.js +7 -0
- package/esm/popup/popup.d.ts +2 -0
- package/esm/popup/popup.js +4 -1
- package/esm/profile-card/profile-card.js +1 -1
- package/esm/quantity-field/quantity-field-adapter.d.ts +2 -0
- package/esm/quantity-field/quantity-field-adapter.js +8 -0
- package/esm/quantity-field/quantity-field-foundation.js +1 -0
- package/esm/quantity-field/quantity-field.js +6 -0
- package/esm/radio/radio-adapter.d.ts +3 -3
- package/esm/radio/radio-adapter.js +17 -15
- package/esm/radio/radio-foundation.js +1 -1
- package/esm/ripple/forge-ripple.d.ts +4 -0
- package/esm/ripple/forge-ripple.js +8 -0
- package/esm/select/core/base-select-adapter.js +8 -6
- package/esm/select/core/base-select-constants.d.ts +2 -0
- package/esm/select/core/base-select-constants.js +3 -1
- package/esm/select/core/base-select-foundation.d.ts +0 -9
- package/esm/select/core/base-select-foundation.js +5 -26
- package/esm/select/core/select-utils.js +1 -1
- package/esm/select/option-group/option-group.d.ts +12 -1
- package/esm/select/option-group/option-group.js +7 -0
- package/esm/select/select/select.js +5 -3
- package/esm/slider/slider.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/stack/index.d.ts +10 -0
- package/esm/stack/index.js +14 -0
- package/esm/stack/stack-adapter.d.ts +15 -0
- package/esm/stack/stack-adapter.js +18 -0
- package/esm/stack/stack-constants.d.ts +29 -0
- package/esm/stack/stack-constants.js +36 -0
- package/esm/stack/stack-foundation.d.ts +39 -0
- package/esm/stack/stack-foundation.js +70 -0
- package/esm/stack/stack.d.ts +41 -0
- package/esm/stack/stack.js +74 -0
- package/esm/switch/switch.js +38 -13
- package/esm/table/table-foundation.d.ts +7 -0
- package/esm/table/table-foundation.js +9 -0
- package/esm/table/table-utils.js +6 -3
- package/esm/table/table.d.ts +7 -0
- package/esm/table/table.js +8 -0
- package/esm/table/types.d.ts +8 -4
- package/esm/text-field/text-field.js +1 -1
- package/esm/time-picker/time-picker-adapter.d.ts +4 -0
- package/esm/time-picker/time-picker-adapter.js +8 -0
- package/esm/time-picker/time-picker-component-delegate.js +1 -6
- package/esm/time-picker/time-picker-foundation.d.ts +3 -0
- package/esm/time-picker/time-picker-foundation.js +46 -14
- package/esm/toast/toast.js +1 -1
- package/esm/toolbar/toolbar.js +2 -2
- package/esm/tooltip/tooltip-foundation.d.ts +1 -0
- package/esm/tooltip/tooltip-foundation.js +3 -0
- package/esm/tooltip/tooltip.js +1 -1
- package/esm/view-switcher/view-switcher.js +1 -1
- package/package.json +31 -4
- package/styles/busy-indicator/_mixins.scss +1 -0
- package/styles/chip-field/_selector.scss +12 -13
- package/styles/chip-field/chip-field.scss +1 -1
- package/styles/chips/chip/_mixins.scss +19 -6
- package/styles/field/_base.scss +2 -2
- package/styles/field/_selector.scss +1 -1
- package/styles/list/list-item/_mixins.scss +28 -17
- package/styles/list/list-item/_variables.scss +13 -4
- package/styles/popup/popup.scss +4 -0
- package/styles/stack/_mixins.scss +49 -0
- package/styles/stack/_variables.scss +6 -0
- package/styles/stack/stack.scss +46 -0
- package/styles/toolbar/_mixins.scss +1 -2
- package/styles/toolbar/toolbar.scss +13 -0
- package/styles/view-switcher/_mixins.scss +2 -0
- package/dist/esm/chunks/chunk.2CEW64ZM.js +0 -7
- package/dist/esm/chunks/chunk.2CEW64ZM.js.map +0 -7
- package/dist/esm/chunks/chunk.36VS7FMU.js +0 -7
- package/dist/esm/chunks/chunk.36VS7FMU.js.map +0 -7
- package/dist/esm/chunks/chunk.3MP6OFVU.js +0 -7
- package/dist/esm/chunks/chunk.3MP6OFVU.js.map +0 -7
- package/dist/esm/chunks/chunk.4K3IV4GI.js +0 -7
- package/dist/esm/chunks/chunk.4K3IV4GI.js.map +0 -7
- package/dist/esm/chunks/chunk.5BDTX7CR.js +0 -7
- package/dist/esm/chunks/chunk.5EQPGUZH.js +0 -7
- package/dist/esm/chunks/chunk.5EQPGUZH.js.map +0 -7
- package/dist/esm/chunks/chunk.6LXDG4W5.js +0 -7
- package/dist/esm/chunks/chunk.6LXDG4W5.js.map +0 -7
- package/dist/esm/chunks/chunk.7R6TYPPS.js +0 -7
- package/dist/esm/chunks/chunk.7R6TYPPS.js.map +0 -7
- package/dist/esm/chunks/chunk.7TDB3VFH.js +0 -7
- package/dist/esm/chunks/chunk.7TDB3VFH.js.map +0 -7
- package/dist/esm/chunks/chunk.BCD4AAI2.js +0 -7
- package/dist/esm/chunks/chunk.BCD4AAI2.js.map +0 -7
- package/dist/esm/chunks/chunk.BTI5I25G.js +0 -12
- package/dist/esm/chunks/chunk.BTI5I25G.js.map +0 -7
- package/dist/esm/chunks/chunk.BYRJ7577.js +0 -7
- package/dist/esm/chunks/chunk.DB2WESQC.js +0 -7
- package/dist/esm/chunks/chunk.DB2WESQC.js.map +0 -7
- package/dist/esm/chunks/chunk.DLAIQJHL.js +0 -7
- package/dist/esm/chunks/chunk.DLAIQJHL.js.map +0 -7
- package/dist/esm/chunks/chunk.DURRORXO.js +0 -29
- package/dist/esm/chunks/chunk.DURRORXO.js.map +0 -7
- package/dist/esm/chunks/chunk.EDU7RQD7.js +0 -7
- package/dist/esm/chunks/chunk.EDU7RQD7.js.map +0 -7
- package/dist/esm/chunks/chunk.ETIN6DEM.js +0 -7
- package/dist/esm/chunks/chunk.ETIN6DEM.js.map +0 -7
- package/dist/esm/chunks/chunk.F2GXZPID.js +0 -7
- package/dist/esm/chunks/chunk.F2GXZPID.js.map +0 -7
- package/dist/esm/chunks/chunk.F3Q62EMG.js +0 -7
- package/dist/esm/chunks/chunk.F3Q62EMG.js.map +0 -7
- package/dist/esm/chunks/chunk.GEMZPO6Z.js +0 -7
- package/dist/esm/chunks/chunk.GEMZPO6Z.js.map +0 -7
- package/dist/esm/chunks/chunk.GXUYYBVO.js.map +0 -7
- package/dist/esm/chunks/chunk.HYMB3XDK.js +0 -9
- package/dist/esm/chunks/chunk.HYMB3XDK.js.map +0 -7
- package/dist/esm/chunks/chunk.JMXJXZTS.js +0 -7
- package/dist/esm/chunks/chunk.JMXJXZTS.js.map +0 -7
- package/dist/esm/chunks/chunk.M4KJNCLO.js +0 -7
- package/dist/esm/chunks/chunk.M4KJNCLO.js.map +0 -7
- package/dist/esm/chunks/chunk.MBWEYW6M.js +0 -7
- package/dist/esm/chunks/chunk.MBWEYW6M.js.map +0 -7
- package/dist/esm/chunks/chunk.O2R6MBT5.js +0 -7
- package/dist/esm/chunks/chunk.O2R6MBT5.js.map +0 -7
- package/dist/esm/chunks/chunk.O5I3ZMDA.js +0 -7
- package/dist/esm/chunks/chunk.ON6FJ2D6.js +0 -7
- package/dist/esm/chunks/chunk.ON6FJ2D6.js.map +0 -7
- package/dist/esm/chunks/chunk.PCSCKTFS.js +0 -7
- package/dist/esm/chunks/chunk.PCSCKTFS.js.map +0 -7
- package/dist/esm/chunks/chunk.PYG4YVBA.js.map +0 -7
- package/dist/esm/chunks/chunk.Q3RRONZQ.js +0 -7
- package/dist/esm/chunks/chunk.Q3RRONZQ.js.map +0 -7
- package/dist/esm/chunks/chunk.QH4DLM3R.js +0 -7
- package/dist/esm/chunks/chunk.QH4DLM3R.js.map +0 -7
- package/dist/esm/chunks/chunk.QIJHHDYF.js +0 -7
- package/dist/esm/chunks/chunk.QIJHHDYF.js.map +0 -7
- package/dist/esm/chunks/chunk.QMRLSOAB.js +0 -7
- package/dist/esm/chunks/chunk.QMRLSOAB.js.map +0 -7
- package/dist/esm/chunks/chunk.QZHEP4X2.js +0 -29
- package/dist/esm/chunks/chunk.QZHEP4X2.js.map +0 -7
- package/dist/esm/chunks/chunk.STS5TIUV.js.map +0 -7
- package/dist/esm/chunks/chunk.UOWU5VVK.js +0 -7
- package/dist/esm/chunks/chunk.UOWU5VVK.js.map +0 -7
- package/dist/esm/chunks/chunk.VW4JVRH7.js +0 -7
- package/dist/esm/chunks/chunk.WOHCW6KW.js +0 -7
- package/dist/esm/chunks/chunk.WOHCW6KW.js.map +0 -7
- package/dist/esm/chunks/chunk.WU24GAQY.js +0 -7
- package/dist/esm/chunks/chunk.WU24GAQY.js.map +0 -7
- package/dist/esm/chunks/chunk.XSZ4S77A.js +0 -7
- package/dist/esm/chunks/chunk.XSZ4S77A.js.map +0 -7
- package/dist/esm/chunks/chunk.Y4L7AVUS.js +0 -7
- package/dist/esm/chunks/chunk.Y4L7AVUS.js.map +0 -7
- package/dist/esm/chunks/chunk.YG2KLPHA.js +0 -7
- package/dist/esm/chunks/chunk.YONRMJU5.js.map +0 -7
- package/dist/esm/chunks/chunk.YWRCWMNO.js +0 -7
- package/dist/esm/chunks/chunk.YWRCWMNO.js.map +0 -7
- package/dist/esm/chunks/chunk.ZPBGKHHM.js +0 -7
- package/dist/esm/chunks/chunk.ZPBGKHHM.js.map +0 -7
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
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
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 interface HTMLElementEventMap {\n 'forge-keyboard-shortcut-activate': CustomEvent<KeyboardEvent>;\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 declare 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 declare target: string;\n\n /** Gets/sets the global listener state. */\n @FoundationProperty()\n public declare global: boolean;\n\n /** Gets/sets whether the callback will be called while in a text entry field. */\n @FoundationProperty()\n public declare allowWhileTyping: boolean;\n \n /** Gets/sets whether to prevent default on keyboard events */\n @FoundationProperty()\n public declare preventDefault: boolean;\n \n /** Gets/sets whether to use capturing on keyboard events */\n @FoundationProperty()\n public declare capture: boolean;\n \n /** Gets/sets whether to match codes instead of keys on keyboard events */\n @FoundationProperty()\n public declare useCode: boolean;\n\n /** Gets/sets whether the callback will be called. */\n @FoundationProperty()\n public declare 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": "sSAEA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "selectors", "events", "KEYBOARD_SHORTCUT_CONSTANTS", "textInputTypes", "KeyboardShortcutAdapter", "BaseAdapter", "component", "type", "listener", "capture", "_a", "selector", "global", "doc", "matchesSelectors", "sibling", "KEYBOARD_SHORTCUT_CONSTANTS", "elementAcceptsTextInput", "el", "textInputTypes", "parseKeyCombinations", "keys", "useCode", "key", "keyParts", "fixedKey", "fixKey", "modifiers", "matchKeyCombination", "evt", "keyCombinations", "eventKey", "modifierKeys", "getModiferKeysString", "combination", "modifierString", "KeyboardShortcutFoundation", "_adapter", "evt", "elementAcceptsTextInput", "matchKeyCombination", "KEYBOARD_SHORTCUT_CONSTANTS", "parseKeyCombinations", "value", "KeyboardShortcutComponent", "BaseComponent", "KeyboardShortcutFoundation", "KeyboardShortcutAdapter", "KEYBOARD_SHORTCUT_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "value", "__decorateClass", "FoundationProperty", "CustomElement", "defineKeyboardShortcutComponent", "defineCustomElement", "KeyboardShortcutComponent"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{c as x,d as D}from"./chunk.I5BAZWUF.js";import{a as y}from"./chunk.47A2CN5U.js";import{a as E}from"./chunk.G5MGGEFP.js";import{a as l}from"./chunk.KTGSZEAG.js";import{a as b,b as L}from"./chunk.BE7PZANN.js";import{a as v,e as f,g as c,l as _}from"./chunk.Y4GKBJGI.js";import{k as p,l as u}from"./chunk.J2M2MXP2.js";import{f as s}from"./chunk.MCIQXNKY.js";var C=`${L}file-picker`,I={ACCEPT:"accept",MAX_SIZE:"max-size",CAPTURE:"capture",MULTIPLE:"multiple",DISABLED:"disabled",COMPACT:"compact",BORDERLESS:"borderless"},T={HIGHLIGHT:"highlight",DISABLED:"disabled",COMPACT:"compact",BORDERLESS:"borderless"},S={CONTAINER:"container",BUTTON:"button",INPUT:"input"},A={CONTAINER:"#container",BUTTON:"#button",INPUT:"#input",BUTTON_SLOT:"#button-slot"},P={FILES_CHANGED:`${C}-change`},i={elementName:C,attributes:I,classes:T,ids:S,selectors:A,events:P};var d=class extends E{constructor(e){super(e);this._container=c(e,i.selectors.CONTAINER),this._buttonSlot=c(e,i.selectors.BUTTON_SLOT),this._input=c(e,i.selectors.INPUT),this._inputEventListener=()=>{this._input.value="",this._input.click()},this._container.addEventListener("click",this._inputEventListener)}registerButtonSlotListener(e){this._buttonSlot.addEventListener("slotchange",e)}registerInputChangeListener(e){this._input.addEventListener("change",e)}registerDragEnterListener(e){this._container.addEventListener("dragenter",e)}registerDragLeaveListener(e){this._container.addEventListener("dragleave",e)}registerDragOverListener(e){this._container.addEventListener("dragover",e)}registerDropListener(e){this._container.addEventListener("drop",e)}removeDragEnterListener(e){this._container.removeEventListener("dragenter",e)}removeDragLeaveListener(e){this._container.removeEventListener("dragleave",e)}removeDragOverListener(e){this._container.removeEventListener("dragover",e)}removeDropListener(e){this._container.removeEventListener("drop",e)}initializeButton(){let e=this._component.querySelector("button");this._button=e||void 0}setHighlightState(e){this._container.classList.contains(i.classes.HIGHLIGHT)!==e&&this._container.classList.toggle(i.classes.HIGHLIGHT)}setAccept(e){e?this._input.setAttribute("accept",e):this._input.removeAttribute("accept")}setCapture(e){e?this._input.setAttribute("capture",e):this._input.removeAttribute("capture")}setMultiple(e){e?this._input.setAttribute("multiple",""):this._input.removeAttribute("multiple")}setDisabled(e){var n,o;e?(this._container.removeEventListener("click",this._inputEventListener),(n=this._button)==null||n.setAttribute("disabled",""),this._container.setAttribute("disabled","")):(this._container.addEventListener("click",this._inputEventListener),(o=this._button)==null||o.removeAttribute("disabled"),this._container.removeAttribute("disabled"))}setCompact(e){this._container.classList.contains(i.classes.COMPACT)!==e&&this._container.classList.toggle(i.classes.COMPACT)}setBorderless(e){this._container.classList.contains(i.classes.BORDERLESS)!==e&&this._container.classList.toggle(i.classes.BORDERLESS)}};var g=class{constructor(t){this._adapter=t;this._isInitialized=!1;this._accept=null;this._maxSize=null;this._capture=null;this._multiple=!1;this._disabled=!1;this._compact=!1;this._borderless=!1;this._buttonSlotListener=e=>this._onButtonSlotChanged(e),this._inputChangeListener=e=>this._onInputChange(e),this._dragEnterListener=e=>this._onDragEnter(e),this._dragLeaveListener=e=>this._onDragLeave(e),this._dragOverListener=e=>this._onDragOver(e),this._dropListener=e=>this._onDrop(e),this._adapter.registerButtonSlotListener(this._buttonSlotListener),this._adapter.registerInputChangeListener(this._inputChangeListener),this._compact||this._registerDragListeners()}initialize(){this._adapter.initializeButton(),this._adapter.setDisabled(this._disabled),this._isInitialized=!0}destroy(){this._isInitialized=!1}_onButtonSlotChanged(t){this._adapter.initializeButton()}_onInputChange(t){let e=t.target.files;e&&this._handleFiles(e)}_onDragEnter(t){this._handleDragEvent(t,!0)}_onDragLeave(t){this._handleDragEvent(t,!1)}_onDragOver(t){this._handleDragEvent(t,!0)}_onDrop(t){if(this._handleDragEvent(t,!1),!this._disabled){let e=t.dataTransfer;if(e){let n=e.files;this._handleFiles(n)}}}_registerDragListeners(){this._adapter.registerDragEnterListener(this._dragEnterListener),this._adapter.registerDragLeaveListener(this._dragLeaveListener),this._adapter.registerDragOverListener(this._dragOverListener),this._adapter.registerDropListener(this._dropListener)}_removeDragListeners(){this._adapter.removeDragEnterListener(this._dragEnterListener),this._adapter.removeDragLeaveListener(this._dragLeaveListener),this._adapter.removeDragOverListener(this._dragOverListener),this._adapter.removeDropListener(this._dropListener)}_handleFiles(t){let e={};if(t){let n=this._sortFiles(t),o=n.legalFiles||null;!this._multiple&&o&&o.length>1&&(o=o.splice(1)),e=n}this._adapter.emitHostEvent(i.events.FILES_CHANGED,e)}_sortFiles(t){let e=[],n=[];if(!this._accept&&!this.maxSize)return e=Array.from(t),{legalFiles:e,illegalFiles:n};let o=this._accept?this._accept.split(",").map(r=>r.trim().toLowerCase()):[""];for(let r=0;r<t.length;r++)!o.some(m=>t[r].type.toLowerCase().match(m)||t[r].name.toLowerCase().match("\\"+m))||this._maxSize&&t[r].size>this._maxSize?n.push(t[r]):e.push(t[r]);return{legalFiles:e,illegalFiles:n}}_handleDragEvent(t,e){this._disabled||(t.preventDefault(),t.stopPropagation(),this._adapter.setHighlightState(e))}get accept(){return this._accept}set accept(t){this._accept!==t&&(this._accept=t,this._adapter.setAccept(t),this._adapter.toggleHostAttribute(i.attributes.ACCEPT,!!t,String(t)))}get maxSize(){return this._maxSize}set maxSize(t){this._maxSize!==t&&(this._maxSize=t,this._adapter.toggleHostAttribute(i.attributes.MAX_SIZE,!!t,String(t)))}get capture(){return this._capture}set capture(t){this._capture!==t&&(this._capture=t,this._adapter.setCapture(t),this._adapter.toggleHostAttribute(i.attributes.CAPTURE,!!t,String(t)))}get multiple(){return this._multiple}set multiple(t){this._multiple!==t&&(this._multiple=t,this._adapter.setMultiple(t),this._adapter.toggleHostAttribute(i.attributes.MULTIPLE,t))}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=t,this._isInitialized&&this._adapter.setDisabled(t),this._adapter.toggleHostAttribute(i.attributes.DISABLED,t))}get compact(){return this._compact}set compact(t){this._compact!==t&&(this._compact=t,this._adapter.setCompact(t),t?this._removeDragListeners():this._registerDragListeners(),this._adapter.toggleHostAttribute(i.attributes.COMPACT,t))}get borderless(){return this._borderless}set borderless(t){this._borderless!==t&&(this._borderless=t,this._adapter.setBorderless(t),this._adapter.toggleHostAttribute(i.attributes.BORDERLESS,t))}};var F='<template><form class="forge-file-picker" id="container" part="form"><div class="forge-file-picker__primary" id="primary" part="primary"><slot name="primary"></slot></div><slot id="button-slot"></slot><div class="forge-file-picker__secondary" id="secondary" part="secondary"><slot name="secondary"></slot></div><input type="file" class="forge-file-picker__input" id="input" part="input"></form><div class="forge-file-picker__helper-text" part="helper-text-container"><slot name="helper-text"></slot></div></template>',O=".forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker[disabled]{background-color:#fafafa;background-color:var(--mdc-theme-background,#fafafa);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);background-color:rgba(63,81,181,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}",a=class extends _{constructor(){super();f(this,F,O),this._foundation=new g(new d(this))}static get observedAttributes(){return[i.attributes.ACCEPT,i.attributes.MAX_SIZE,i.attributes.CAPTURE,i.attributes.MULTIPLE,i.attributes.DISABLED,i.attributes.COMPACT,i.attributes.BORDERLESS]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,n,o){switch(e){case i.attributes.ACCEPT:this.accept=o;break;case i.attributes.MAX_SIZE:this.maxSize=u(o);break;case i.attributes.CAPTURE:this.capture=o;break;case i.attributes.MULTIPLE:this.multiple=p(o);break;case i.attributes.DISABLED:this.disabled=p(o);break;case i.attributes.COMPACT:this.compact=p(o);break;case i.attributes.BORDERLESS:this.borderless=p(o);break}}};s([l()],a.prototype,"accept",2),s([l()],a.prototype,"maxSize",2),s([l()],a.prototype,"capture",2),s([l()],a.prototype,"multiple",2),s([l()],a.prototype,"disabled",2),s([l()],a.prototype,"compact",2),s([l()],a.prototype,"borderless",2),a=s([b({name:i.elementName,dependencies:[x]})],a);var k=class extends y{constructor(t){super(t)}_build(){return document.createElement(i.elementName)}_configure(){var t,e,n,o;if((t=this._config.options)!=null&&t.primaryText){let r=document.createElement("span");r.slot="primary",r.textContent=this._config.options.primaryText,this._element.appendChild(r)}if((e=this._config.options)!=null&&e.secondaryText){let r=document.createElement("span");r.slot="secondary",r.textContent=this._config.options.secondaryText,this._element.appendChild(r)}if((n=this._config.options)!=null&&n.buttonText&&new D({options:{parent:this._element,text:this._config.options.buttonText},props:{type:"outlined"}}),(o=this._config.options)!=null&&o.helperText){let r=document.createElement("span");r.slot="helper-text",r.textContent=this._config.options.helperText,this._element.appendChild(r)}}onChange(t){this._element.addEventListener(i.events.FILES_CHANGED,e=>t(e.detail))}};function pe(){v(a)}export{i as a,d as b,g as c,a as d,k as e,pe as f};
|
|
7
|
+
//# sourceMappingURL=chunk.RYMPSU4J.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/file-picker/file-picker-constants.ts", "../../src/file-picker/file-picker-adapter.ts", "../../src/file-picker/file-picker-foundation.ts", "../../src/file-picker/file-picker.ts", "../../src/file-picker/file-picker-component-delegate.ts", "../../src/file-picker/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}file-picker`;\n\nconst attributes = {\n ACCEPT: 'accept',\n MAX_SIZE: 'max-size',\n CAPTURE: 'capture',\n MULTIPLE: 'multiple',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst classes = {\n HIGHLIGHT: 'highlight',\n DISABLED: 'disabled',\n COMPACT: 'compact',\n BORDERLESS: 'borderless'\n};\n\nconst ids = {\n CONTAINER: 'container',\n BUTTON: 'button',\n INPUT: 'input'\n};\n\nconst selectors = {\n CONTAINER: '#container',\n BUTTON: '#button',\n INPUT: '#input',\n BUTTON_SLOT: '#button-slot'\n};\n\nconst events = {\n FILES_CHANGED: `${elementName}-change`\n};\n\nexport const FILE_PICKER_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n selectors,\n events\n};\n\nexport interface IFilePickerChangeEventData {\n legalFiles?: File[];\n illegalFiles?: File[];\n}\n", "import { getShadowElement, emitEvent } from '@tylertech/forge-core';\n\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS } from './file-picker-constants';\nimport { BaseAdapter, IBaseAdapter } from '../core';\n\nexport interface IFilePickerAdapter extends IBaseAdapter {\n registerButtonSlotListener(listener: (evt: Event) => void): void;\n registerInputChangeListener(listener: (evt: Event) => void): void;\n registerDragEnterListener(listener: (evt: DragEvent) => void): void;\n registerDragLeaveListener(listener: (evt: DragEvent) => void): void;\n registerDragOverListener(listener: (evt: DragEvent) => void): void;\n registerDropListener(listener: (evt: DragEvent) => void): void;\n removeDragEnterListener(listener: (evt: DragEvent) => void): void;\n removeDragLeaveListener(listener: (evt: DragEvent) => void): void;\n removeDragOverListener(listener: (evt: DragEvent) => void): void;\n removeDropListener(listener: (evt: DragEvent) => void): void;\n initializeButton(): void;\n setHighlightState(value: boolean): void;\n setAccept(value: string | null | undefined): void;\n setCapture(value: string | null | undefined): void;\n setMultiple(value: boolean): void;\n setDisabled(value: boolean): void;\n setCompact(value: boolean): void;\n setBorderless(value: boolean): void;\n}\n\nexport class FilePickerAdapter extends BaseAdapter<IFilePickerComponent> implements IFilePickerAdapter {\n private _container: HTMLElement;\n private _buttonSlot: HTMLSlotElement;\n private _button: HTMLButtonElement | undefined;\n private _input: HTMLInputElement;\n private _inputEventListener: () => void;\n\n constructor(component: IFilePickerComponent) {\n super(component);\n\n this._container = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.CONTAINER);\n this._buttonSlot = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.BUTTON_SLOT) as HTMLSlotElement;\n this._input = getShadowElement(component, FILE_PICKER_CONSTANTS.selectors.INPUT) as HTMLInputElement;\n\n this._inputEventListener = () => {\n this._input.value = '';\n this._input.click();\n };\n\n this._container.addEventListener('click', this._inputEventListener);\n }\n\n public registerButtonSlotListener(listener: (evt: Event) => void): void {\n this._buttonSlot.addEventListener('slotchange', listener);\n }\n\n public registerInputChangeListener(listener: (evt: Event) => void): void {\n this._input.addEventListener('change', listener);\n }\n\n public registerDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragenter', listener);\n }\n\n public registerDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragleave', listener);\n }\n\n public registerDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('dragover', listener);\n }\n\n public registerDropListener(listener: (evt: DragEvent) => void): void {\n this._container.addEventListener('drop', listener);\n }\n\n public removeDragEnterListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragenter', listener);\n }\n\n public removeDragLeaveListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragleave', listener);\n }\n\n public removeDragOverListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('dragover', listener);\n }\n\n public removeDropListener(listener: (evt: DragEvent) => void): void {\n this._container.removeEventListener('drop', listener);\n }\n\n public initializeButton(): void {\n const button = this._component.querySelector('button') as HTMLButtonElement;\n this._button = button || undefined;\n }\n\n /**\n * Sets the highlight state of the file picker.\n * @param value True if the highlight should be applied and false if not.\n */\n public setHighlightState(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.HIGHLIGHT);\n }\n }\n\n /**\n * Sets the accept attribute of the input.\n * @param value The accept string.\n */\n public setAccept(value: string | null | undefined): void {\n if (value) {\n this._input.setAttribute('accept', value);\n } else {\n this._input.removeAttribute('accept');\n }\n }\n\n /**\n * Sets the capture attribute of the input.\n * @param value The capture string.\n */\n public setCapture(value: string | null | undefined): void {\n if (value) {\n this._input.setAttribute('capture', value);\n } else {\n this._input.removeAttribute('capture');\n }\n }\n\n /**\n * Sets the multiple attribute of the input.\n * @param value The multiple state.\n */\n public setMultiple(value: boolean): void {\n if (value) {\n this._input.setAttribute('multiple', '');\n } else {\n this._input.removeAttribute('multiple');\n }\n }\n\n /**\n * Sets the disabled state of the file picker.\n * @param value The disabled state.\n */\n public setDisabled(value: boolean): void {\n if (value) {\n this._container.removeEventListener('click', this._inputEventListener);\n this._button?.setAttribute('disabled', '');\n this._container.setAttribute('disabled', '');\n } else {\n this._container.addEventListener('click', this._inputEventListener);\n this._button?.removeAttribute('disabled');\n this._container.removeAttribute('disabled');\n }\n }\n\n /**\n * Sets the compact state of the file picker.\n * @param value The compact state.\n */\n public setCompact(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.COMPACT) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.COMPACT);\n }\n }\n\n /**\n * Sets the borderless state of the file picker.\n * @param value The borderless state.\n */\n public setBorderless(value: boolean): void {\n if (this._container.classList.contains(FILE_PICKER_CONSTANTS.classes.BORDERLESS) !== value) {\n this._container.classList.toggle(FILE_PICKER_CONSTANTS.classes.BORDERLESS);\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IFilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport interface IFilePickerFoundation extends ICustomElementFoundation {\n accept: string | null | undefined;\n maxSize: number | null | undefined;\n capture: string | null | undefined;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\nexport class FilePickerFoundation implements IFilePickerFoundation {\n private _isInitialized = false;\n private _accept: string | null | undefined = null;\n private _maxSize: number | null | undefined = null;\n private _capture: string | null | undefined = null;\n private _multiple = false;\n private _disabled = false;\n private _compact = false;\n private _borderless = false;\n private _buttonSlotListener: (evt: Event) => void;\n private _inputChangeListener: (evt: Event) => void;\n private _dragEnterListener: (evt: DragEvent) => void;\n private _dragLeaveListener: (evt: DragEvent) => void;\n private _dragOverListener: (evt: DragEvent) => void;\n private _dropListener: (evt: DragEvent) => void;\n\n constructor(private _adapter: IFilePickerAdapter) {\n this._buttonSlotListener = evt => this._onButtonSlotChanged(evt);\n this._inputChangeListener = evt => this._onInputChange(evt);\n this._dragEnterListener = evt => this._onDragEnter(evt);\n this._dragLeaveListener = evt => this._onDragLeave(evt);\n this._dragOverListener = evt => this._onDragOver(evt);\n this._dropListener = evt => this._onDrop(evt);\n\n this._adapter.registerButtonSlotListener(this._buttonSlotListener);\n this._adapter.registerInputChangeListener(this._inputChangeListener);\n if (!this._compact) {\n this._registerDragListeners();\n }\n }\n\n public initialize(): void {\n this._adapter.initializeButton();\n this._adapter.setDisabled(this._disabled);\n this._isInitialized = true;\n }\n\n public destroy(): void {\n this._isInitialized = false;\n }\n\n private _onButtonSlotChanged(evt: Event): void {\n this._adapter.initializeButton();\n }\n\n private _onInputChange(evt: Event): void {\n const files = (evt.target as HTMLInputElement).files;\n if (files) {\n this._handleFiles(files);\n }\n }\n\n private _onDragEnter(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDragLeave(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n }\n\n private _onDragOver(evt: DragEvent): void {\n this._handleDragEvent(evt, true);\n }\n\n private _onDrop(evt: DragEvent): void {\n this._handleDragEvent(evt, false);\n\n if (!this._disabled) {\n const dataTransfer = evt.dataTransfer;\n if (dataTransfer) {\n const files = dataTransfer.files;\n this._handleFiles(files);\n }\n }\n }\n\n private _registerDragListeners(): void {\n this._adapter.registerDragEnterListener(this._dragEnterListener);\n this._adapter.registerDragLeaveListener(this._dragLeaveListener);\n this._adapter.registerDragOverListener(this._dragOverListener);\n this._adapter.registerDropListener(this._dropListener);\n }\n\n private _removeDragListeners(): void {\n this._adapter.removeDragEnterListener(this._dragEnterListener);\n this._adapter.removeDragLeaveListener(this._dragLeaveListener);\n this._adapter.removeDragOverListener(this._dragOverListener);\n this._adapter.removeDropListener(this._dropListener);\n }\n\n private _handleFiles(fileList: FileList): void {\n let data: IFilePickerChangeEventData = {};\n if (fileList) {\n const sortedFiles = this._sortFiles(fileList);\n let files = sortedFiles.legalFiles || null;\n\n // Ensure that we can only drop 1 file if not in multiple mode\n if (!this._multiple && files && files.length > 1) {\n files = files.splice(1);\n }\n\n data = sortedFiles;\n }\n this._adapter.emitHostEvent(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, data);\n }\n\n private _sortFiles(files: FileList): IFilePickerChangeEventData {\n let legalFiles: File[] = [];\n const illegalFiles: File[] = [];\n\n if (!this._accept && !this.maxSize) {\n legalFiles = Array.from(files);\n return { legalFiles, illegalFiles };\n }\n\n const formats = this._accept ? this._accept.split(',').map(f => f.trim().toLowerCase()) : [''];\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < files.length; i++) {\n if (!formats.some(f => {\n return files[i].type.toLowerCase().match(f) || files[i].name.toLowerCase().match('\\\\' + f);\n }) || (this._maxSize && files[i].size > this._maxSize)) {\n illegalFiles.push(files[i]);\n } else {\n legalFiles.push(files[i]);\n }\n }\n\n return { legalFiles, illegalFiles };\n }\n\n private _handleDragEvent(evt: DragEvent, isOverTarget: boolean): void {\n if (!this._disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this._adapter.setHighlightState(isOverTarget);\n }\n }\n\n /** Get and set the allowed file types */\n public get accept(): string | null | undefined {\n return this._accept;\n }\n public set accept(value: string | null | undefined) {\n if (this._accept !== value) {\n this._accept = value;\n this._adapter.setAccept(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.ACCEPT, !!value, String(value));\n }\n }\n\n /** Get and set the maximum allowed file size */\n public get maxSize(): number | null | undefined {\n return this._maxSize;\n }\n public set maxSize(value: number | null | undefined) {\n if (this._maxSize !== value) {\n this._maxSize = value;\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.MAX_SIZE, !!value, String(value));\n }\n }\n\n /** Get and set the camera to use when capturing video or images */\n public get capture(): string | null | undefined {\n return this._capture;\n }\n public set capture(value: string | null | undefined) {\n if (this._capture !== value) {\n this._capture = value;\n this._adapter.setCapture(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.CAPTURE, !!value, String(value));\n }\n }\n\n /** Get and set whether multiple files are allowed */\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.setMultiple(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.MULTIPLE, value);\n }\n }\n\n /** Get and set whether the file picker is disabled */\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._adapter.setDisabled(value);\n }\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.DISABLED, value);\n }\n }\n\n /** Get and set whether the file picker is compact */\n public get compact(): boolean {\n return this._compact;\n }\n public set compact(value: boolean) {\n if (this._compact !== value) {\n this._compact = value;\n this._adapter.setCompact(value);\n if (value) {\n this._removeDragListeners();\n } else {\n this._registerDragListeners();\n }\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.COMPACT, value);\n }\n }\n\n /** Get and set whether the file picker is borderless */\n public get borderless(): boolean {\n return this._borderless;\n }\n public set borderless(value: boolean) {\n if (this._borderless !== value) {\n this._borderless = value;\n this._adapter.setBorderless(value);\n this._adapter.toggleHostAttribute(FILE_PICKER_CONSTANTS.attributes.BORDERLESS, value);\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { ButtonComponent } from '../button';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { FilePickerAdapter } from './file-picker-adapter';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\nimport { FilePickerFoundation } from './file-picker-foundation';\n\nconst template = '<template><form class=\\\"forge-file-picker\\\" id=\\\"container\\\" part=\\\"form\\\"><div class=\\\"forge-file-picker__primary\\\" id=\\\"primary\\\" part=\\\"primary\\\"><slot name=\\\"primary\\\"></slot></div><slot id=\\\"button-slot\\\"></slot><div class=\\\"forge-file-picker__secondary\\\" id=\\\"secondary\\\" part=\\\"secondary\\\"><slot name=\\\"secondary\\\"></slot></div><input type=\\\"file\\\" class=\\\"forge-file-picker__input\\\" id=\\\"input\\\" part=\\\"input\\\"></form><div class=\\\"forge-file-picker__helper-text\\\" part=\\\"helper-text-container\\\"><slot name=\\\"helper-text\\\"></slot></div></template>';\nconst styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker[disabled]{background-color:#fafafa;background-color:var(--mdc-theme-background,#fafafa);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);background-color:rgba(63,81,181,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}';\n\nexport interface IFilePickerComponent extends IBaseComponent {\n accept: string | null | undefined;\n maxSize: number | null | undefined;\n capture: string | null | undefined;\n multiple: boolean;\n disabled: boolean;\n compact: boolean;\n borderless: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-file-picker': IFilePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-file-picker-change': CustomEvent<IFilePickerChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-file-picker>` custom element.\n * \n * @tag forge-file-picker\n */\n@CustomElement({\n name: FILE_PICKER_CONSTANTS.elementName,\n dependencies: [ButtonComponent]\n})\nexport class FilePickerComponent extends BaseComponent implements IFilePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n FILE_PICKER_CONSTANTS.attributes.ACCEPT,\n FILE_PICKER_CONSTANTS.attributes.MAX_SIZE,\n FILE_PICKER_CONSTANTS.attributes.CAPTURE,\n FILE_PICKER_CONSTANTS.attributes.MULTIPLE,\n FILE_PICKER_CONSTANTS.attributes.DISABLED,\n FILE_PICKER_CONSTANTS.attributes.COMPACT,\n FILE_PICKER_CONSTANTS.attributes.BORDERLESS\n ];\n }\n\n private _foundation: FilePickerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new FilePickerFoundation(new FilePickerAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.destroy();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case FILE_PICKER_CONSTANTS.attributes.ACCEPT:\n this.accept = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MAX_SIZE:\n this.maxSize = coerceNumber(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.CAPTURE:\n this.capture = newValue;\n break;\n case FILE_PICKER_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.COMPACT:\n this.compact = coerceBoolean(newValue);\n break;\n case FILE_PICKER_CONSTANTS.attributes.BORDERLESS:\n this.borderless = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the allowed file types */\n @FoundationProperty()\n public declare accept: string | null | undefined;\n\n /** Gets and sets the maximum allowed file size */\n @FoundationProperty()\n public declare maxSize: number | null | undefined;\n\n /** Gets and sets the camera to use when capturing video or images */\n @FoundationProperty()\n public declare capture: string | null | undefined;\n\n /** Gets and sets whether multiple files are allowed */\n @FoundationProperty()\n public declare multiple: boolean;\n\n /** Gets and sets whether the file picker is disabled */\n @FoundationProperty()\n public declare disabled: boolean;\n\n /** Gets and sets whether the file picker is compact */\n @FoundationProperty()\n public declare compact: boolean;\n\n /** Gets and sets whether the file picker is borderless */\n @FoundationProperty()\n public declare borderless: boolean;\n}\n", "import { ButtonComponentDelegate } from '../button/button-component-delegate';\nimport { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { IFilePickerComponent } from './file-picker';\nimport { FILE_PICKER_CONSTANTS, IFilePickerChangeEventData } from './file-picker-constants';\n\nexport type FilePickerComponentDelegateProps = Partial<IFilePickerComponent>;\nexport interface IFilePickerComponentDelegateOptions extends IBaseComponentDelegateOptions {\n primaryText?: string;\n secondaryText?: string;\n helperText?: string;\n buttonText?: string;\n}\nexport interface IFilePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IFilePickerComponent, IFilePickerComponentDelegateOptions> {}\n\nexport class FilePickerComponentDelegate extends BaseComponentDelegate<IFilePickerComponent, IFilePickerComponentDelegateOptions> {\n constructor(config?: IFilePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IFilePickerComponent {\n return document.createElement(FILE_PICKER_CONSTANTS.elementName);\n }\n\n protected _configure(): void {\n if (this._config.options?.primaryText) {\n const primarySpan = document.createElement('span');\n primarySpan.slot = 'primary';\n primarySpan.textContent = this._config.options.primaryText;\n this._element.appendChild(primarySpan);\n }\n\n if (this._config.options?.secondaryText) {\n const secondarySpan = document.createElement('span');\n secondarySpan.slot = 'secondary';\n secondarySpan.textContent = this._config.options.secondaryText;\n this._element.appendChild(secondarySpan);\n }\n\n if (this._config.options?.buttonText) {\n new ButtonComponentDelegate({\n options: {\n parent: this._element,\n text: this._config.options.buttonText\n },\n props: { type: 'outlined' }\n });\n }\n\n if (this._config.options?.helperText) {\n const helperTextSpan = document.createElement('span');\n helperTextSpan.slot = 'helper-text';\n helperTextSpan.textContent = this._config.options.helperText;\n this._element.appendChild(helperTextSpan);\n }\n }\n\n public onChange(cb: (evt: IFilePickerChangeEventData) => void): void {\n this._element.addEventListener(FILE_PICKER_CONSTANTS.events.FILES_CHANGED, (evt: CustomEvent<IFilePickerChangeEventData>) => cb(evt.detail));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { FilePickerComponent } from './file-picker';\n\nexport * from './file-picker-adapter';\nexport * from './file-picker-constants';\nexport * from './file-picker-foundation';\nexport * from './file-picker';\nexport * from './file-picker-component-delegate';\n\nexport function defineFilePickerComponent(): void {\n defineCustomElement(FilePickerComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "ids", "selectors", "events", "FILE_PICKER_CONSTANTS", "FilePickerAdapter", "BaseAdapter", "component", "getShadowElement", "FILE_PICKER_CONSTANTS", "listener", "button", "value", "_a", "_b", "FilePickerFoundation", "_adapter", "evt", "files", "dataTransfer", "fileList", "data", "sortedFiles", "FILE_PICKER_CONSTANTS", "legalFiles", "illegalFiles", "formats", "f", "i", "isOverTarget", "value", "template", "styles", "FilePickerComponent", "BaseComponent", "attachShadowTemplate", "FilePickerFoundation", "FilePickerAdapter", "FILE_PICKER_CONSTANTS", "name", "oldValue", "newValue", "coerceNumber", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "ButtonComponent", "FilePickerComponentDelegate", "BaseComponentDelegate", "config", "FILE_PICKER_CONSTANTS", "_a", "_b", "_c", "_d", "primarySpan", "secondarySpan", "ButtonComponentDelegate", "helperTextSpan", "cb", "evt", "defineFilePickerComponent", "defineCustomElement", "FilePickerComponent"]
|
|
7
|
+
}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import{a as z,b as B,c as H,d as K,e as U}from"./chunk.YONRMJU5.js";import{E as S}from"./chunk.M4KJNCLO.js";import{F as O}from"./chunk.PBJEZJTY.js";import{a}from"./chunk.E43TT4RI.js";import{a as m}from"./chunk.IARIRFXO.js";import{e as D}from"./chunk.AWCBH5KW.js";import{e as w}from"./chunk.UOWU5VVK.js";import{b as N}from"./chunk.JMXJXZTS.js";import{l as M}from"./chunk.LZMYHIO2.js";import{a as V}from"./chunk.D4SNVKDA.js";import{d as R,l as x}from"./chunk.JXY6MTP3.js";import{a as F}from"./chunk.24D46RLZ.js";import{b}from"./chunk.HYMB3XDK.js";import{e as l}from"./chunk.3MP6OFVU.js";import{a as C}from"./chunk.B3IJU6XJ.js";import{a as A,b as L}from"./chunk.OOW3UKT4.js";import{a as y,e as P,i as E}from"./chunk.MMVZJLXE.js";import{s as v}from"./chunk.R4NDFXVA.js";import{f as g,g as k}from"./chunk.G76HB2FK.js";import{f as h}from"./chunk.MCIQXNKY.js";var d=`${L}date-range-picker`,u=class{constructor(r){r&&(this.from=r.from,this.to=r.to)}copy(){return new u(this)}},q={FROM:"from",TO:"to",END_VALUE:"end-value"},G={INPUT:"input"},W={CHANGE:`${d}-change`,OPEN:`${d}-open`,CLOSE:`${d}-close`,INPUT:`${d}-input`},i={elementName:d,selectors:G,events:W,observedAttributes:q};var _=class extends K{constructor(t){super(t);this._dropdownIdentifier=`forge-date-range-picker-${this._identifier}`}_initializeInput(){if(this._fromInputElement=this._component.querySelectorAll(i.selectors.INPUT)[0],this._toInputElement=this._component.querySelectorAll(i.selectors.INPUT)[1],!this._fromInputElement||!this._fromInputElement)throw new Error(`The ${i.elementName} requires two inputs`)}_initializeCalendarDropdown(){let t=this._getDefaultTargetElement();this._calendarDropdown=new O(t,this._dropdownIdentifier)}initializeMask(t){this._fromInputMask&&this._fromInputMask.destroy(),this._fromInputMask=new b(this._fromInputElement,t)}initializeToMask(t){this._toInputMask&&this._toInputMask.destroy(),this._toInputMask=new b(this._toInputElement,t)}destroy(){super.destroy(),this._destroyToValueChangeListener()}destroyMask(){this._fromInputMask&&(this._fromInputMask.destroy(),this._fromInputMask=void 0),this._toInputMask&&(this._toInputMask.destroy(),this._toInputMask=void 0)}_destroyToValueChangeListener(){typeof this._toValueChangeListener=="function"&&this._toValueChangeListener()}initializeAccessibility(){this._applyToInputs(t=>t.setAttribute("autocomplete","off")),this._applyToInputs(t=>t.setAttribute("autocorrect","off")),this._applyToInputs(t=>t.setAttribute("autocapitalize","off")),this._applyToInputs(t=>t.setAttribute("spellcheck","false")),this._applyToInputs(t=>t.setAttribute("role","combobox")),this._applyToInputs(t=>t.setAttribute("aria-live","assertive")),this._applyToInputs(t=>t.setAttribute("aria-atomic","true")),this._applyToInputs(t=>t.setAttribute("aria-haspopup","true")),this._applyToInputs(t=>t.setAttribute("aria-expanded","false")),this._applyToInputs(t=>t.setAttribute("aria-owns",this._dropdownIdentifier))}addInputListener(t,e,n){var o;(o=this._fromInputElement)==null||o.addEventListener(t,e,{capture:n})}addToInputListener(t,e,n){var o;(o=this._toInputElement)==null||o.addEventListener(t,e,{capture:n})}removeInputListener(t,e){var n;(n=this._fromInputElement)==null||n.removeEventListener(t,e)}removeToInputListener(t,e){var n;(n=this._toInputElement)==null||n.removeEventListener(t,e)}setInputValueChangedListener(t,e){this._valueChangeListeners.length&&this.destroyValueChangeListener();let n=D(t,this._fromInputElement,"value",e);this._valueChangeListeners.push(n)}setToInputValueChangedListener(t,e){this._destroyToValueChangeListener(),this._toValueChangeListener=D(t,this._toInputElement,"value",e)}hasInputElement(){return!!this._fromInputElement&&!!this._toInputElement}attachCalendar(t,e){super.attachCalendar(t,e),this._fromInputElement.setAttribute("aria-expanded","true")}detachCalendar(){super.detachCalendar(),this._fromInputElement&&(this._fromInputElement.setAttribute("aria-expanded","false"),this._fromInputElement.removeAttribute("aria-activedescendant"))}setActiveDescendant(t){this._fromInputElement.setAttribute("aria-activedescendant",t)}setInputValue(t,e){this._fromInputElement.value!==t&&(this._fromInputElement.value=t,this._fromInputMask&&this._fromInputMask.updateMask(),e&&(this._fromInputElement.dispatchEvent(new Event("change")),this._fromInputElement.dispatchEvent(new Event("input"))))}setToInputValue(t,e){this._toInputElement.value!==t&&(this._toInputElement.value=t,this._toInputMask&&this._toInputMask.updateMask(),e&&(this._toInputElement.dispatchEvent(new Event("change")),this._toInputElement.dispatchEvent(new Event("input"))))}isInputDisabled(){return this._fromInputElement.disabled}isInputFocused(){return this._toInputElement===v()||this._fromInputElement===v()}getInputValue(){return this._fromInputElement.value}getToInputValue(){return this._toInputElement.value}setDisabled(t){this._fromInputElement.disabled=t,this._toInputElement.disabled=t,this._toInputElement.setAttribute("aria-disabled",t.toString()),this._fromInputElement.setAttribute("aria-disabled",t.toString()),this._toggleElement&&(this._toggleElement.setAttribute("aria-disabled",t.toString()),this._toggleElement.hasOwnProperty("disabled")&&(this._toggleElement.disabled=t))}emitInputEvent(t,e){E(this._fromInputElement,t,e)}emitToInputEvent(t,e){E(this._toInputElement,t,e)}_createToggleElement(){return H("date_range")}tryFocusInput(){this._fromInputElement.focus()}tryBlurInput(){this._fromInputElement.blur()}selectInputText(){this._fromInputElement.select()}selectToInputText(){this._toInputElement.select()}_applyToInputs(t){[this._fromInputElement,this._toInputElement].forEach(t)}};var c=class extends U{constructor(t){super(t);this._mode="range";this._from=null;this._to=null;this._toInputListener=e=>this._onToInput(e),this._toInputValueChangedListener=e=>this._onToInputValueChanged(e),this._toInputKeydownListener=e=>this._onInputKeydown(e),this._toInputFocusListener=e=>this._onToInputFocus(),this._toInputBlurListener=e=>this._onToInputBlur(e)}_initializeState(){this._from||(this._from=this._coerceDateValue(this._adapter.getInputValue())),this._to||(this._to=this._coerceDateValue(this._adapter.getToInputValue()))}_initializeListeners(){super._initializeListeners(),this._adapter.addToInputListener("keydown",this._toInputKeydownListener),this._adapter.addToInputListener("focus",this._toInputFocusListener),this._adapter.addToInputListener("blur",this._toInputBlurListener)}_initializeValueChangedListeners(){super._initializeValueChangedListeners(),this._adapter.setToInputValueChangedListener(this,this._toInputValueChangedListener)}_setInputChangeListeners(){super._setInputChangeListeners(),this._adapter.addToInputListener("input",this._toInputListener)}_removeInputChangeListeners(){super._removeInputChangeListeners(),this._adapter.removeToInputListener("input",this._toInputListener)}_openCalendar(t){this._formatToInputValue(),super._openCalendar(t);let e=this._getCurrentValue();e!=null&&e.to?this._adapter.goToCalendarDate(new Date(e.to)):e!=null&&e.from&&this._adapter.goToCalendarDate(new Date(e.from))}_emitChangeEvent(t,e){let n=this._getTypedValue(t&&t.from||null),o=this._getTypedValue(t&&t.to||null),p=new u({from:n,to:o});return this._adapter.emitHostEvent(i.events.CHANGE,p,!0,!e)?(this._setValue(this._coerceDateValue(t&&t.from||null)),this._setToValue(this._coerceDateValue(t&&t.to||null)),!0):!1}_emitOpenEvent(){this._adapter.emitHostEvent(i.events.OPEN,void 0,!1)}_emitCloseEvent(){this._adapter.emitHostEvent(i.events.CLOSE,void 0,!1)}_onToday(){let t=new Date,e=this._open?new a({from:this._from||t,to:this._to||void 0}):new a({from:t});!this._isDateRangeAcceptable(e)||(this.value=e,this._onDateSelected({date:t,range:e,selected:!0,type:"date"}),this._adapter.setCalendarActiveDate(t))}_onClear(){this._onDateSelected({date:null,range:new a,selected:!1,type:"date"}),this._closeCalendar(!0)}_getCurrentValue(){return this._value}_formatToInputValue(){let t=this._adapter.getToInputValue();if(t){let e=this._parseDateString(t);if(k(e)&&this._isDateValueAcceptable(e)){let n=this._formatDate(e);n&&this._adapter.setToInputValue(n,this._notifyInputValueChanges)}else this._allowInvalidDate||this._adapter.setToInputValue("",this._notifyInputValueChanges)}}_setFormattedInputValue(t){let e=this._formatDate(this._from);!e&&!this._allowInvalidDate&&(e=""),this._adapter.setInputValue(e,t?!1:this._notifyInputValueChanges)}_setFormattedToInputValue(t){let e=this._formatDate(this._to);!e&&!this._allowInvalidDate&&(e=""),this._adapter.setToInputValue(e,t?!1:this._notifyInputValueChanges)}_isDateRangeAcceptable(t){if(!(t!=null&&t.to))return!0;let e=()=>this._isDateValueAcceptable(t.from),n=()=>this._isDateValueAcceptable(t.to),o=()=>(t==null?void 0:t.from)&&(t==null?void 0:t.to)?t.from.getTime()<=t.to.getTime():!0;return e()&&n()&&o()}_setValue(t){this._isDateValueAcceptable(t)&&(this._from=t||null,this._value?this._value.from=this._from:this._value={from:this._from,to:this._to})}_setToValue(t){this._isDateValueAcceptable(t)&&(this._to=t||null,this._value?this._value.to=this._to:this._value={from:this._from,to:this._to})}_onDateSelected(t){let e=t.range;if(t.rangeSelectionState==="to"&&this._closeCalendar(!0),!this._emitChangeEvent(e!=null?e:null))return;let n=this._formatDate(e&&e.from||null),o=this._formatDate(e&&e.to||null);this._adapter.setInputValue(n,this._notifyInputValueChanges),this._adapter.setToInputValue(o,this._notifyInputValueChanges),this._formatInputValue(),this._formatToInputValue(),this._from=e&&e.from||null,this._to=e&&e.to||null,V.isMobile||(o?this._adapter.selectToInputText():this._adapter.selectInputText())}_applyMin(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue()),super._applyMin()}_applyMax(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue()),super._applyMax()}_initializeMask(){if(super._initializeMask(),this._masked){let t={showMaskFormat:this._showMaskFormat,pattern:this._maskFormat,onChange:e=>this._handleToInput(e)};this._prepareMaskCallback&&(t.prepareCallback=(e,n,o,p)=>this._prepareMaskCallback.call(null,e,n,o,p)),this._adapter.initializeToMask(t)}}_applyDisabledDates(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue())}_applyDisabledDaysOfWeek(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(null,!0),this._setFormattedToInputValue())}_onToInput(t){this._handleInput(this._adapter.getInputValue())}_handleInput(t){let e=this._getSanitizedDateString(t),n=this._coerceDateValue(e);this._masked&&this._adapter.emitInputEvent(i.events.INPUT,e),!l(n,this._from)&&this._isDateValueAcceptable(n)&&this._emitChangeEvent(new a({from:n||void 0,to:this._to||void 0}))}_handleToInput(t){let e=this._getSanitizedDateString(t),n=this._coerceDateValue(e);this._masked&&this._adapter.emitToInputEvent(i.events.INPUT,e),!l(n,this._to)&&this._isDateValueAcceptable(n)&&this._emitChangeEvent(new a({from:this._from||void 0,to:n||void 0}))}_onToInputFocus(){this._adapter.selectToInputText()}_onToInputBlur(t){this._formatToInputValue(),this._open&&this._closeCalendar(!0)}_onInputValueChanged(t){if(this._masked)return;let e=this._getSanitizedDateString(t),n=this._coerceDateValue(e);l(n,this._from)||(this.from=n,this._emitChangeEvent(new a({from:n||void 0,to:this._to||void 0})))}_onToInputValueChanged(t){if(this._masked)return;let e=this._getSanitizedDateString(t),n=this._coerceDateValue(e);l(n,this._to)||(this.to=n,this._emitChangeEvent(new a({from:this._from||void 0,to:n||void 0})))}get value(){return{from:this.from,to:this.to}}set value(t){!t||(t.from===void 0&&(t.from=null),t.to===void 0&&(t.to=null),this.from=t.from,this.to=t.to,this._value={from:this.from,to:this.to})}get from(){let t=this._getTypedValue(this._from);return t?g(t)?new Date(t.getTime()):t:null}set from(t){this._from!==t&&(this._setValue(this._coerceDateValue(t)),this._isInitialized&&(this._setFormattedInputValue(),this._open&&this._adapter.setCalendarValue(new a({from:this._coerceDateValue(t)||void 0,to:this._coerceDateValue(this._to)||void 0}))))}get to(){let t=this._getTypedValue(this._to);return t?g(t)?new Date(t.getTime()):t:null}set to(t){this._to!==t&&(this._setToValue(this._coerceDateValue(t)),this._isInitialized&&(this._setFormattedToInputValue(),this._open&&this._adapter.setCalendarValue(new a({to:this._coerceDateValue(t)||void 0,from:this._coerceDateValue(this._from)||void 0}))))}};var X="<template><slot></slot></template>",j=":host{display:block}:host([hidden]){display:none}",s=class extends B{constructor(){super();R.define(M),P(this,X,j),this._foundation=new c(new _(this))}static get observedAttributes(){return[...Object.values(z.observedAttributes),i.observedAttributes.FROM,i.observedAttributes.TO]}attributeChangedCallback(t,e,n){switch(t){case i.observedAttributes.FROM:this.from=n;return;case i.observedAttributes.TO:this.to=n;return}super.attributeChangedCallback(t,e,n)}};h([C()],s.prototype,"from",2),h([C()],s.prototype,"to",2),s=h([A({name:i.elementName,dependencies:[w,S,N,x]})],s);var $=class extends F{constructor(t){super(t)}_build(){let t=document.createElement(i.elementName);return this._attachTextField(t),t}get fromInput(){return this._textField.querySelector(`input[${m.attributes.MULTI_INPUT}-0]`)}get toInput(){return this._textField.querySelector(`input[${m.attributes.MULTI_INPUT}-1]`)}get textField(){return this._textField}get value(){return this._element.value}set value(t){this._element.value=t}get disabled(){return this._element.disabled}set disabled(t){this._element.disabled=t}get invalid(){return this._textField.invalid||!1}set invalid(t){this._textField.invalid=t}onChange(t){this._element.addEventListener(i.events.CHANGE,e=>t(e.detail))}onFocus(t){this._element.addEventListener("focusin",e=>{!this._element.contains(e.relatedTarget)&&t(e)})}onBlur(t){this._element.addEventListener("focusout",e=>{!this._element.contains(e.relatedTarget)&&t(e)})}_attachTextField(t){var n,o,p,I,T;this._textField=document.createElement(m.elementName),(n=this._config.options)!=null&&n.required&&(this._textField.required=!0),(o=this._config.options)!=null&&o.density&&(this._textField.density=this._config.options.density),this._fromInput=document.createElement("input"),this._fromInput.type="text",this._fromInput.placeholder=((p=this._config.options)==null?void 0:p.fromPlaceholder)||"From",this._textField.appendChild(this._fromInput),this._toInput=document.createElement("input"),this._toInput.type="text",this._toInput.placeholder=((I=this._config.options)==null?void 0:I.toPlaceholder)||"To",this._textField.appendChild(this._toInput);let e=document.createElement("label");e.textContent=((T=this._config.options)==null?void 0:T.label)||"Choose date range",this._textField.appendChild(e),t.appendChild(this._textField)}};function $t(){y(s)}export{u as a,i as b,_ as c,c as d,s as e,$ as f,$t as g};
|
|
7
|
-
//# sourceMappingURL=chunk.
|
|
6
|
+
import{a as z,b as B,c as H,d as K,e as U}from"./chunk.X5LGVZGO.js";import{E as S}from"./chunk.6OKJPSUE.js";import{F as O}from"./chunk.DT7MZR5Y.js";import{a}from"./chunk.YPZNIYQL.js";import{a as m}from"./chunk.MLV25D2G.js";import{e as D}from"./chunk.DONAMICM.js";import{e as w}from"./chunk.V7WKXEZC.js";import{b as N}from"./chunk.7A6MX6CS.js";import{l as M}from"./chunk.MZLPUI6R.js";import{a as V}from"./chunk.YI4JTY4T.js";import{d as R,l as x}from"./chunk.JHBCYICS.js";import{a as F}from"./chunk.ARJ3EVVO.js";import{b}from"./chunk.FVRSGKJD.js";import{e as l}from"./chunk.U6WGJELL.js";import{a as C}from"./chunk.KTGSZEAG.js";import{a as A,b as L}from"./chunk.BE7PZANN.js";import{a as y,e as P,i as E}from"./chunk.Y4GKBJGI.js";import{s as v}from"./chunk.PN26D52V.js";import{f as g,g as k}from"./chunk.J2M2MXP2.js";import{f as h}from"./chunk.MCIQXNKY.js";var d=`${L}date-range-picker`,u=class{constructor(r){r&&(this.from=r.from,this.to=r.to)}copy(){return new u(this)}},q={FROM:"from",TO:"to",END_VALUE:"end-value"},G={INPUT:"input"},W={CHANGE:`${d}-change`,OPEN:`${d}-open`,CLOSE:`${d}-close`,INPUT:`${d}-input`},i={elementName:d,selectors:G,events:W,observedAttributes:q};var _=class extends K{constructor(t){super(t);this._dropdownIdentifier=`forge-date-range-picker-${this._identifier}`}_initializeInput(){if(this._fromInputElement=this._component.querySelectorAll(i.selectors.INPUT)[0],this._toInputElement=this._component.querySelectorAll(i.selectors.INPUT)[1],!this._fromInputElement||!this._fromInputElement)throw new Error(`The ${i.elementName} requires two inputs`)}_initializeCalendarDropdown(){let t=this._getDefaultTargetElement();this._calendarDropdown=new O(t,this._dropdownIdentifier)}initializeMask(t){this._fromInputMask&&this._fromInputMask.destroy(),this._fromInputMask=new b(this._fromInputElement,t)}initializeToMask(t){this._toInputMask&&this._toInputMask.destroy(),this._toInputMask=new b(this._toInputElement,t)}destroy(){super.destroy(),this._destroyToValueChangeListener()}destroyMask(){this._fromInputMask&&(this._fromInputMask.destroy(),this._fromInputMask=void 0),this._toInputMask&&(this._toInputMask.destroy(),this._toInputMask=void 0)}_destroyToValueChangeListener(){typeof this._toValueChangeListener=="function"&&this._toValueChangeListener()}initializeAccessibility(){this._applyToInputs(t=>t.setAttribute("autocomplete","off")),this._applyToInputs(t=>t.setAttribute("autocorrect","off")),this._applyToInputs(t=>t.setAttribute("autocapitalize","off")),this._applyToInputs(t=>t.setAttribute("spellcheck","false")),this._applyToInputs(t=>t.setAttribute("role","combobox")),this._applyToInputs(t=>t.setAttribute("aria-live","assertive")),this._applyToInputs(t=>t.setAttribute("aria-atomic","true")),this._applyToInputs(t=>t.setAttribute("aria-haspopup","true")),this._applyToInputs(t=>t.setAttribute("aria-expanded","false")),this._applyToInputs(t=>t.setAttribute("aria-owns",this._dropdownIdentifier))}addInputListener(t,e,n){var o;(o=this._fromInputElement)==null||o.addEventListener(t,e,{capture:n})}addToInputListener(t,e,n){var o;(o=this._toInputElement)==null||o.addEventListener(t,e,{capture:n})}removeInputListener(t,e){var n;(n=this._fromInputElement)==null||n.removeEventListener(t,e)}removeToInputListener(t,e){var n;(n=this._toInputElement)==null||n.removeEventListener(t,e)}setInputValueChangedListener(t,e){this._valueChangeListeners.length&&this.destroyValueChangeListener();let n=D(t,this._fromInputElement,"value",e);this._valueChangeListeners.push(n)}setToInputValueChangedListener(t,e){this._destroyToValueChangeListener(),this._toValueChangeListener=D(t,this._toInputElement,"value",e)}hasInputElement(){return!!this._fromInputElement&&!!this._toInputElement}attachCalendar(t,e){super.attachCalendar(t,e),this._fromInputElement.setAttribute("aria-expanded","true")}detachCalendar(){super.detachCalendar(),this._fromInputElement&&(this._fromInputElement.setAttribute("aria-expanded","false"),this._fromInputElement.removeAttribute("aria-activedescendant"))}setActiveDescendant(t){this._fromInputElement.setAttribute("aria-activedescendant",t)}setInputValue(t,e){this._fromInputElement.value!==t&&(this._fromInputElement.value=t,this._fromInputMask&&this._fromInputMask.updateMask(),e&&(this._fromInputElement.dispatchEvent(new Event("change")),this._fromInputElement.dispatchEvent(new Event("input"))))}setToInputValue(t,e){this._toInputElement.value!==t&&(this._toInputElement.value=t,this._toInputMask&&this._toInputMask.updateMask(),e&&(this._toInputElement.dispatchEvent(new Event("change")),this._toInputElement.dispatchEvent(new Event("input"))))}isInputDisabled(){return this._fromInputElement.disabled}isInputFocused(){return this._toInputElement===v()||this._fromInputElement===v()}getInputValue(){return this._fromInputElement.value}getToInputValue(){return this._toInputElement.value}setDisabled(t){this._fromInputElement.disabled=t,this._toInputElement.disabled=t,this._toInputElement.setAttribute("aria-disabled",t.toString()),this._fromInputElement.setAttribute("aria-disabled",t.toString()),this._toggleElement&&(this._toggleElement.setAttribute("aria-disabled",t.toString()),this._toggleElement.hasOwnProperty("disabled")&&(this._toggleElement.disabled=t))}emitInputEvent(t,e){E(this._fromInputElement,t,e)}emitToInputEvent(t,e){E(this._toInputElement,t,e)}_createToggleElement(){return H("date_range")}tryFocusInput(){this._fromInputElement.focus()}tryBlurInput(){this._fromInputElement.blur()}selectInputText(){this._fromInputElement.select()}selectToInputText(){this._toInputElement.select()}_applyToInputs(t){[this._fromInputElement,this._toInputElement].forEach(t)}};var c=class extends U{constructor(t){super(t);this._mode="range";this._from=null;this._to=null;this._toInputListener=e=>this._onToInput(e),this._toInputValueChangedListener=e=>this._onToInputValueChanged(e),this._toInputKeydownListener=e=>this._onInputKeydown(e),this._toInputFocusListener=e=>this._onToInputFocus(),this._toInputBlurListener=e=>this._onToInputBlur(e)}_initializeState(){this._from||(this._from=this._coerceDateValue(this._adapter.getInputValue())),this._to||(this._to=this._coerceDateValue(this._adapter.getToInputValue()))}_initializeListeners(){super._initializeListeners(),this._adapter.addToInputListener("keydown",this._toInputKeydownListener),this._adapter.addToInputListener("focus",this._toInputFocusListener),this._adapter.addToInputListener("blur",this._toInputBlurListener)}_initializeValueChangedListeners(){super._initializeValueChangedListeners(),this._adapter.setToInputValueChangedListener(this,this._toInputValueChangedListener)}_setInputChangeListeners(){super._setInputChangeListeners(),this._adapter.addToInputListener("input",this._toInputListener)}_removeInputChangeListeners(){super._removeInputChangeListeners(),this._adapter.removeToInputListener("input",this._toInputListener)}_openCalendar(t){this._formatToInputValue(),super._openCalendar(t);let e=this._getCurrentValue();e!=null&&e.to?this._adapter.goToCalendarDate(new Date(e.to)):e!=null&&e.from&&this._adapter.goToCalendarDate(new Date(e.from))}_emitChangeEvent(t,e){let n=this._getTypedValue(t&&t.from||null),o=this._getTypedValue(t&&t.to||null),p=new u({from:n,to:o});return this._adapter.emitHostEvent(i.events.CHANGE,p,!0,!e)?(this._setValue(this._coerceDateValue(t&&t.from||null)),this._setToValue(this._coerceDateValue(t&&t.to||null)),!0):!1}_emitOpenEvent(){this._adapter.emitHostEvent(i.events.OPEN,void 0,!1)}_emitCloseEvent(){this._adapter.emitHostEvent(i.events.CLOSE,void 0,!1)}_onToday(){let t=new Date,e=this._open?new a({from:this._from||t,to:this._to||void 0}):new a({from:t});!this._isDateRangeAcceptable(e)||(this.value=e,this._onDateSelected({date:t,range:e,selected:!0,type:"date"}),this._adapter.setCalendarActiveDate(t))}_onClear(){this._onDateSelected({date:null,range:new a,selected:!1,type:"date"}),this._closeCalendar(!0)}_getCurrentValue(){return this._value}_formatToInputValue(){let t=this._adapter.getToInputValue();if(t){let e=this._parseDateString(t);if(k(e)&&this._isDateValueAcceptable(e)){let n=this._formatDate(e);n&&this._adapter.setToInputValue(n,this._notifyInputValueChanges)}else this._allowInvalidDate||this._adapter.setToInputValue("",this._notifyInputValueChanges)}}_setFormattedInputValue(t){let e=this._formatDate(this._from);!e&&!this._allowInvalidDate&&(e=""),this._adapter.setInputValue(e,t?!1:this._notifyInputValueChanges)}_setFormattedToInputValue(t){let e=this._formatDate(this._to);!e&&!this._allowInvalidDate&&(e=""),this._adapter.setToInputValue(e,t?!1:this._notifyInputValueChanges)}_isDateRangeAcceptable(t){if(!(t!=null&&t.to))return!0;let e=()=>this._isDateValueAcceptable(t.from),n=()=>this._isDateValueAcceptable(t.to),o=()=>(t==null?void 0:t.from)&&(t==null?void 0:t.to)?t.from.getTime()<=t.to.getTime():!0;return e()&&n()&&o()}_setValue(t){this._isDateValueAcceptable(t)&&(this._from=t||null,this._value?this._value.from=this._from:this._value={from:this._from,to:this._to})}_setToValue(t){this._isDateValueAcceptable(t)&&(this._to=t||null,this._value?this._value.to=this._to:this._value={from:this._from,to:this._to})}_onDateSelected(t){let e=t.range;if(t.rangeSelectionState==="to"&&this._closeCalendar(!0),!this._emitChangeEvent(e!=null?e:null))return;let n=this._formatDate(e&&e.from||null),o=this._formatDate(e&&e.to||null);this._adapter.setInputValue(n,this._notifyInputValueChanges),this._adapter.setToInputValue(o,this._notifyInputValueChanges),this._formatInputValue(),this._formatToInputValue(),this._from=e&&e.from||null,this._to=e&&e.to||null,V.isMobile||(o?this._adapter.selectToInputText():this._adapter.selectInputText())}_applyMin(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue()),super._applyMin()}_applyMax(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue()),super._applyMax()}_initializeMask(){if(super._initializeMask(),this._masked){let t={showMaskFormat:this._showMaskFormat,pattern:this._maskFormat,onChange:e=>this._handleToInput(e)};this._prepareMaskCallback&&(t.prepareCallback=(e,n,o,p)=>this._prepareMaskCallback.call(null,e,n,o,p)),this._adapter.initializeToMask(t)}}_applyDisabledDates(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue())}_applyDisabledDaysOfWeek(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(null,!0),this._setFormattedToInputValue())}_onToInput(t){this._handleInput(this._adapter.getInputValue())}_handleInput(t){let e=this._getSanitizedDateString(t),n=this._coerceDateValue(e);this._masked&&this._adapter.emitInputEvent(i.events.INPUT,e),!l(n,this._from)&&this._isDateValueAcceptable(n)&&this._emitChangeEvent(new a({from:n||void 0,to:this._to||void 0}))}_handleToInput(t){let e=this._getSanitizedDateString(t),n=this._coerceDateValue(e);this._masked&&this._adapter.emitToInputEvent(i.events.INPUT,e),!l(n,this._to)&&this._isDateValueAcceptable(n)&&this._emitChangeEvent(new a({from:this._from||void 0,to:n||void 0}))}_onToInputFocus(){this._adapter.selectToInputText()}_onToInputBlur(t){this._formatToInputValue(),this._open&&this._closeCalendar(!0)}_onInputValueChanged(t){if(this._masked)return;let e=this._getSanitizedDateString(t),n=this._coerceDateValue(e);l(n,this._from)||(this.from=n,this._emitChangeEvent(new a({from:n||void 0,to:this._to||void 0})))}_onToInputValueChanged(t){if(this._masked)return;let e=this._getSanitizedDateString(t),n=this._coerceDateValue(e);l(n,this._to)||(this.to=n,this._emitChangeEvent(new a({from:this._from||void 0,to:n||void 0})))}get value(){return{from:this.from,to:this.to}}set value(t){t||(t={from:null,to:null}),t.from===void 0&&(t.from=null),t.to===void 0&&(t.to=null),this.from=t.from,this.to=t.to,this._value={from:this.from,to:this.to}}get from(){let t=this._getTypedValue(this._from);return t?g(t)?new Date(t.getTime()):t:null}set from(t){this._from!==t&&(this._setValue(this._coerceDateValue(t)),this._isInitialized&&(this._setFormattedInputValue(),this._open&&this._adapter.setCalendarValue(new a({from:this._coerceDateValue(t)||void 0,to:this._coerceDateValue(this._to)||void 0}))))}get to(){let t=this._getTypedValue(this._to);return t?g(t)?new Date(t.getTime()):t:null}set to(t){this._to!==t&&(this._setToValue(this._coerceDateValue(t)),this._isInitialized&&(this._setFormattedToInputValue(),this._open&&this._adapter.setCalendarValue(new a({to:this._coerceDateValue(t)||void 0,from:this._coerceDateValue(this._from)||void 0}))))}};var X="<template><slot></slot></template>",j=":host{display:block}:host([hidden]){display:none}",s=class extends B{constructor(){super();R.define(M),P(this,X,j),this._foundation=new c(new _(this))}static get observedAttributes(){return[...Object.values(z.observedAttributes),i.observedAttributes.FROM,i.observedAttributes.TO]}attributeChangedCallback(t,e,n){switch(t){case i.observedAttributes.FROM:this.from=n;return;case i.observedAttributes.TO:this.to=n;return}super.attributeChangedCallback(t,e,n)}};h([C()],s.prototype,"from",2),h([C()],s.prototype,"to",2),s=h([A({name:i.elementName,dependencies:[w,S,N,x]})],s);var $=class extends F{constructor(t){super(t)}_build(){let t=document.createElement(i.elementName);return this._attachTextField(t),t}get fromInput(){return this._textField.querySelector(`input[${m.attributes.MULTI_INPUT}-0]`)}get toInput(){return this._textField.querySelector(`input[${m.attributes.MULTI_INPUT}-1]`)}get textField(){return this._textField}get value(){return this._element.value}set value(t){this._element.value=t}get disabled(){return this._element.disabled}set disabled(t){this._element.disabled=t}get invalid(){return this._textField.invalid||!1}set invalid(t){this._textField.invalid=t}onChange(t){this._element.addEventListener(i.events.CHANGE,e=>t(e.detail))}onFocus(t){this._element.addEventListener("focusin",e=>{!this._element.contains(e.relatedTarget)&&t(e)})}onBlur(t){this._element.addEventListener("focusout",e=>{!this._element.contains(e.relatedTarget)&&t(e)})}_attachTextField(t){var n,o,p,I,T;this._textField=document.createElement(m.elementName),(n=this._config.options)!=null&&n.required&&(this._textField.required=!0),(o=this._config.options)!=null&&o.density&&(this._textField.density=this._config.options.density),this._fromInput=document.createElement("input"),this._fromInput.type="text",this._fromInput.placeholder=((p=this._config.options)==null?void 0:p.fromPlaceholder)||"From",this._textField.appendChild(this._fromInput),this._toInput=document.createElement("input"),this._toInput.type="text",this._toInput.placeholder=((I=this._config.options)==null?void 0:I.toPlaceholder)||"To",this._textField.appendChild(this._toInput);let e=document.createElement("label");e.textContent=((T=this._config.options)==null?void 0:T.label)||"Choose date range",this._textField.appendChild(e),t.appendChild(this._textField)}};function $t(){y(s)}export{u as a,i as b,_ as c,c as d,s as e,$ as f,$t as g};
|
|
7
|
+
//# sourceMappingURL=chunk.SAQVWOVK.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/date-range-picker/date-range-picker-constants.ts", "../../src/date-range-picker/date-range-picker-adapter.ts", "../../src/date-range-picker/date-range-picker-foundation.ts", "../../src/date-range-picker/date-range-picker.ts", "../../src/date-range-picker/date-range-picker-component-delegate.ts", "../../src/date-range-picker/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}date-range-picker`;\n\nexport class DatePickerRange implements IDatePickerRange {\n public from?: Date | string | null;\n public to?: Date | string | null;\n constructor(range?: IDatePickerRange) {\n if (range) {\n this.from = range.from;\n this.to = range.to;\n }\n }\n\n public copy(): DatePickerRange {\n return new DatePickerRange(this);\n }\n}\n\nexport interface IDatePickerRange {\n from?: Date | string | null;\n to?: Date | string | null;\n}\n\nconst observedAttributes = {\n FROM: 'from',\n TO: 'to',\n END_VALUE: 'end-value'\n};\n\nconst selectors = {\n INPUT: 'input'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`\n};\n\nexport const DATE_RANGE_PICKER_CONSTANTS = {\n elementName,\n selectors,\n events,\n observedAttributes\n};\n\n\nexport interface IDateRangePickerChangeEventData extends DatePickerRange {}\n", "import { emitEvent, listenOwnProperty, getActiveElement } from '@tylertech/forge-core';\nimport { CalendarDropdown, ICalendarDropdownPopupConfig } from '../calendar/calendar-dropdown';\nimport { DateInputMask, IDateInputMaskOptions } from '../core';\nimport { BaseDatePickerAdapter, IBaseDatePickerAdapter } from '../date-picker/base/base-date-picker-adapter';\nimport { IDatePickerCalendarDropdownConfig } from '../date-picker/base/base-date-picker-constants';\nimport { createToggleElement } from '../date-picker/base/base-date-picker-utils';\nimport { DateRangePickerComponent, IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS } from './date-range-picker-constants';\n\nexport interface IDateRangePickerAdapter extends IBaseDatePickerAdapter {\n initializeToMask(toOptions: IDateInputMaskOptions): void;\n addToInputListener(type: string, listener: (event: Event) => void): void;\n removeToInputListener(type: string, listener: (event: Event) => void): void;\n setToInputValueChangedListener(context: any, listener: (value: any) => void): void;\n getToInputValue(): string;\n setToInputValue(value: string, emitEvents: boolean): void;\n emitInputEvent(type: string, data?: any): void;\n emitToInputEvent(type: string, data?: any): void;\n tryFocusInput(): void;\n tryBlurInput(): void;\n selectToInputText(): void;\n}\n\nexport class DateRangePickerAdapter extends BaseDatePickerAdapter<IDateRangePickerComponent> implements IDateRangePickerAdapter {\n private _fromInputElement: HTMLInputElement;\n private _toInputElement: HTMLInputElement;\n private _toInputMask: DateInputMask | undefined;\n private _fromInputMask: DateInputMask | undefined;\n private _dropdownIdentifier: string;\n private _toValueChangeListener: (() => void) | undefined;\n\n constructor(component: DateRangePickerComponent) {\n super(component);\n this._dropdownIdentifier = `forge-date-range-picker-${this._identifier}`;\n }\n\n protected _initializeInput(): void {\n this._fromInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[0] as HTMLInputElement;\n this._toInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[1] as HTMLInputElement;\n\n if (!this._fromInputElement || !this._fromInputElement) {\n throw new Error(`The ${DATE_RANGE_PICKER_CONSTANTS.elementName} requires two inputs`);\n }\n }\n\n protected _initializeCalendarDropdown(): void {\n const targetElement = this._getDefaultTargetElement();\n this._calendarDropdown = new CalendarDropdown(targetElement, this._dropdownIdentifier);\n }\n\n public initializeMask(fromOptions: IDateInputMaskOptions): void {\n if (this._fromInputMask) {\n this._fromInputMask.destroy();\n }\n this._fromInputMask = new DateInputMask(this._fromInputElement, fromOptions);\n }\n\n public initializeToMask(toOptions: IDateInputMaskOptions): void {\n if (this._toInputMask) {\n this._toInputMask.destroy();\n }\n this._toInputMask = new DateInputMask(this._toInputElement, toOptions);\n }\n\n public destroy(): void {\n super.destroy();\n this._destroyToValueChangeListener();\n }\n\n public destroyMask(): void {\n if (this._fromInputMask) {\n this._fromInputMask.destroy();\n this._fromInputMask = undefined;\n }\n if (this._toInputMask) {\n this._toInputMask.destroy();\n this._toInputMask = undefined;\n }\n }\n\n private _destroyToValueChangeListener(): void {\n if (typeof this._toValueChangeListener === 'function') {\n this._toValueChangeListener();\n }\n }\n\n public initializeAccessibility(): void {\n this._applyToInputs(input => input.setAttribute('autocomplete', 'off'));\n this._applyToInputs(input => input.setAttribute('autocorrect', 'off'));\n this._applyToInputs(input => input.setAttribute('autocapitalize', 'off'));\n this._applyToInputs(input => input.setAttribute('spellcheck', 'false'));\n this._applyToInputs(input => input.setAttribute('role', 'combobox'));\n this._applyToInputs(input => input.setAttribute('aria-live', 'assertive'));\n this._applyToInputs(input => input.setAttribute('aria-atomic', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-haspopup', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-expanded', 'false'));\n this._applyToInputs(input => input.setAttribute('aria-owns', this._dropdownIdentifier));\n }\n\n public addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._fromInputElement?.addEventListener(type, listener, { capture });\n }\n\n public addToInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._toInputElement?.addEventListener(type, listener, { capture });\n }\n\n public removeInputListener(type: string, listener: (event: Event) => void): void {\n this._fromInputElement?.removeEventListener(type, listener);\n }\n \n public removeToInputListener(type: string, listener: (event: Event) => void): void {\n this._toInputElement?.removeEventListener(type, listener);\n }\n\n public setInputValueChangedListener(context: any, listener: (value: any) => void): void {\n if (this._valueChangeListeners.length) {\n this.destroyValueChangeListener();\n }\n const destroyListenerCb = listenOwnProperty(context, this._fromInputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListenerCb);\n }\n\n public setToInputValueChangedListener(context: any, listener: (value: any) => void): void {\n this._destroyToValueChangeListener();\n this._toValueChangeListener = listenOwnProperty(context, this._toInputElement, 'value', listener);\n }\n\n public hasInputElement(): boolean {\n return !!this._fromInputElement && !!this._toInputElement;\n }\n\n public override attachCalendar(calendarConfig: IDatePickerCalendarDropdownConfig<Date | null>, dropdownConfig?: ICalendarDropdownPopupConfig): void {\n super.attachCalendar(calendarConfig, dropdownConfig);\n this._fromInputElement.setAttribute('aria-expanded', 'true');\n }\n\n public override detachCalendar(): void {\n super.detachCalendar();\n if (this._fromInputElement) {\n this._fromInputElement.setAttribute('aria-expanded', 'false');\n this._fromInputElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public setActiveDescendant(id: string): void {\n this._fromInputElement.setAttribute('aria-activedescendant', id);\n }\n\n public setInputValue(value: string, emitEvents: boolean): void {\n if (this._fromInputElement.value === value) {\n return;\n }\n\n this._fromInputElement.value = value;\n \n if (this._fromInputMask) {\n this._fromInputMask.updateMask();\n }\n\n if (emitEvents) {\n this._fromInputElement.dispatchEvent(new Event('change'));\n this._fromInputElement.dispatchEvent(new Event('input'));;\n }\n }\n\n public setToInputValue(value: string, emitEvents: boolean): void {\n if (this._toInputElement.value === value) {\n return;\n }\n\n this._toInputElement.value = value;\n \n if (this._toInputMask) {\n this._toInputMask.updateMask();\n }\n \n if (emitEvents) {\n this._toInputElement.dispatchEvent(new Event('change'));\n this._toInputElement.dispatchEvent(new Event('input'));\n }\n }\n\n public isInputDisabled(): boolean {\n return this._fromInputElement.disabled;\n }\n\n public isInputFocused(): boolean {\n return this._toInputElement === getActiveElement() || this._fromInputElement === getActiveElement();\n }\n\n public getInputValue(): string {\n return this._fromInputElement.value;\n }\n\n public getToInputValue(): string {\n return this._toInputElement.value;\n }\n\n public setDisabled(isDisabled: boolean): void {\n this._fromInputElement.disabled = isDisabled;\n this._toInputElement.disabled = isDisabled;\n\n this._toInputElement.setAttribute('aria-disabled', isDisabled.toString());\n this._fromInputElement.setAttribute('aria-disabled', isDisabled.toString());\n\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', isDisabled.toString());\n if (this._toggleElement.hasOwnProperty('disabled')) {\n (this._toggleElement as HTMLButtonElement).disabled = isDisabled;\n }\n }\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._fromInputElement, type, data);\n }\n\n public emitToInputEvent(type: string, data?: any): void {\n emitEvent(this._toInputElement, type, data);\n }\n\n protected override _createToggleElement(): HTMLElement {\n return createToggleElement('date_range');\n }\n\n public tryFocusInput(): void {\n this._fromInputElement.focus();\n }\n\n public tryBlurInput(): void {\n this._fromInputElement.blur();\n }\n\n public selectInputText(): void {\n this._fromInputElement.select();\n }\n\n public selectToInputText(): void {\n this._toInputElement.select();\n }\n\n private _applyToInputs(action: (input: HTMLInputElement) => void): void {\n [this._fromInputElement, this._toInputElement].forEach(action);\n }\n}\n", "import { isDate, isValidDate, Platform } from '@tylertech/forge-core';\nimport { CalendarMode, DateRange, ICalendarDateSelectEventData } from '../calendar';\nimport { isSameDate } from '../core/utils/date-utils';\nimport { IDateInputMaskOptions } from '../core/mask/date-input-mask';\nimport { BaseDatePickerFoundation, IBaseDatePickerFoundation } from '../date-picker/base/base-date-picker-foundation';\nimport { IDateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DatePickerRange, DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport interface IDateRangePickerFoundation extends IBaseDatePickerFoundation<IDatePickerRange> {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n}\n\nexport class DateRangePickerFoundation extends BaseDatePickerFoundation<IDateRangePickerAdapter, IDatePickerRange> implements IDateRangePickerFoundation {\n protected _mode: CalendarMode = 'range';\n private _from?: Date | null = null;\n private _to?: Date | null = null;\n private _toInputListener: (evt: Event) => void;\n private _toInputKeydownListener: (evt: KeyboardEvent) => void;\n private _toInputFocusListener: (evt: Event) => void;\n private _toInputBlurListener: (evt: Event) => void;\n private _toInputValueChangedListener: (value: string) => void;\n\n constructor(adapter: IDateRangePickerAdapter) {\n super(adapter);\n this._toInputListener = evt => this._onToInput(evt);\n this._toInputValueChangedListener = value => this._onToInputValueChanged(value);\n this._toInputKeydownListener = evt => this._onInputKeydown(evt);\n this._toInputFocusListener = evt => this._onToInputFocus();\n this._toInputBlurListener = evt => this._onToInputBlur(evt);\n }\n\n protected _initializeState(): void {\n if (!this._from) {\n this._from = this._coerceDateValue(this._adapter.getInputValue());\n }\n if (!this._to) {\n this._to = this._coerceDateValue(this._adapter.getToInputValue());\n }\n }\n\n protected override _initializeListeners(): void {\n super._initializeListeners();\n this._adapter.addToInputListener('keydown', this._toInputKeydownListener);\n this._adapter.addToInputListener('focus', this._toInputFocusListener);\n this._adapter.addToInputListener('blur', this._toInputBlurListener);\n }\n\n protected override _initializeValueChangedListeners(): void {\n super._initializeValueChangedListeners();\n this._adapter.setToInputValueChangedListener(this, this._toInputValueChangedListener);\n }\n\n protected override _setInputChangeListeners(): void {\n super._setInputChangeListeners();\n this._adapter.addToInputListener('input', this._toInputListener);\n }\n\n protected override _removeInputChangeListeners(): void {\n super._removeInputChangeListeners();\n this._adapter.removeToInputListener('input', this._toInputListener);\n }\n\n protected override _openCalendar(emitOpenEvent?: boolean): void {\n this._formatToInputValue();\n super._openCalendar(emitOpenEvent);\n\n const currentValue = this._getCurrentValue();\n if (!!currentValue?.to) {\n this._adapter.goToCalendarDate(new Date(currentValue.to));\n } else if (!!currentValue?.from) {\n this._adapter.goToCalendarDate(new Date(currentValue.from));\n }\n }\n\n protected _emitChangeEvent(value: DateRange | null | undefined, force?: boolean): boolean {\n const typedStartValue = this._getTypedValue((value && value.from) || null);\n const typedEndValue = this._getTypedValue((value && value.to) || null);\n const detail: IDateRangePickerChangeEventData = new DatePickerRange({ from: typedStartValue, to: typedEndValue });\n const wasCancelled = !this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, detail, true, !force);\n if (!wasCancelled) {\n this._setValue(this._coerceDateValue((value && value.from) || null));\n this._setToValue(this._coerceDateValue((value && value.to) || null));\n return true;\n }\n return false;\n }\n\n protected _emitOpenEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n protected _emitCloseEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CLOSE, undefined, false);\n }\n \n protected _onToday(): void {\n const today = new Date();\n const range = this._open ? new DateRange({ from: this._from || today, to: this._to || undefined }) : new DateRange({ from: today });\n if (!this._isDateRangeAcceptable(range)) {\n return;\n }\n this.value = range;\n this._onDateSelected({ date: today, range, selected: true, type: 'date' });\n this._adapter.setCalendarActiveDate(today);\n }\n\n protected _onClear(): void {\n this._onDateSelected({ date: null, range: new DateRange(), selected: false, type: 'date' });\n this._closeCalendar(true);\n }\n\n protected _getCurrentValue(): IDatePickerRange | null | undefined {\n return this._value;\n }\n\n private _formatToInputValue(): void {\n const inputValue = this._adapter.getToInputValue();\n if (inputValue) {\n const parsedDate = this._parseDateString(inputValue);\n if (isValidDate(parsedDate) && this._isDateValueAcceptable(parsedDate)) {\n const formattedDate = this._formatDate(parsedDate);\n if (formattedDate) {\n this._adapter.setToInputValue(formattedDate, this._notifyInputValueChanges);\n }\n } else {\n if (!this._allowInvalidDate) {\n this._adapter.setToInputValue('', this._notifyInputValueChanges);\n }\n }\n }\n }\n\n protected _setFormattedInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._from);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n private _setFormattedToInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._to);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setToInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n protected _isDateRangeAcceptable(value?: DateRange | null | undefined): boolean {\n if (!value?.to) {\n return true;\n }\n\n const passesMinDate = (): boolean => this._isDateValueAcceptable(value.from);\n const passesMaxDate = (): boolean => this._isDateValueAcceptable(value.to);\n const passesDateRange = (): boolean => value?.from && value?.to ? value.from.getTime() <= value.to.getTime() : true;\n\n return passesMinDate() && passesMaxDate() && passesDateRange();\n }\n\n protected _setValue(value: Date | null | undefined): void {\n if (this._isDateValueAcceptable(value)) {\n this._from = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.from = this._from;\n }\n }\n }\n\n private _setToValue(value: Date | null | undefined): void {\n if (this._isDateValueAcceptable(value)) {\n this._to = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.to = this._to;\n }\n }\n }\n\n protected _onDateSelected(event: ICalendarDateSelectEventData): void {\n const value = event.range;\n\n if (event.rangeSelectionState === 'to') {\n this._closeCalendar(true);\n }\n\n if (!this._emitChangeEvent(value ?? null)) {\n return;\n }\n\n const formattedFromValue = this._formatDate((value && value.from) || null);\n const formattedToValue = this._formatDate((value && value.to) || null);\n this._adapter.setInputValue(formattedFromValue, this._notifyInputValueChanges);\n this._adapter.setToInputValue(formattedToValue, this._notifyInputValueChanges);\n this._formatInputValue();\n this._formatToInputValue();\n\n this._from = (value && value.from) || null;\n this._to = (value && value.to) || null;\n\n if (!Platform.isMobile) {\n if (formattedToValue) {\n this._adapter.selectToInputText();\n } else {\n this._adapter.selectInputText();\n }\n }\n }\n\n protected override _applyMin(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMin();\n }\n\n protected override _applyMax(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMax();\n }\n\n protected override _initializeMask(): void {\n super._initializeMask();\n\n // We also need to initialize our mask for the \"to\" input\n if (this._masked) {\n const options: IDateInputMaskOptions = {\n showMaskFormat: this._showMaskFormat,\n pattern: this._maskFormat,\n onChange: (value: string) => this._handleToInput(value)\n };\n\n if (this._prepareMaskCallback) {\n options.prepareCallback = (value, masked, flags, maskInstance) => {\n return this._prepareMaskCallback.call(null, value, masked, flags, maskInstance);\n };\n }\n\n this._adapter.initializeToMask(options);\n }\n }\n\n protected _applyDisabledDates(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n }\n\n protected _applyDisabledDaysOfWeek(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(null, true);\n this._setFormattedToInputValue();\n }\n }\n\n private _onToInput(evt: Event): void {\n this._handleInput(this._adapter.getInputValue());\n }\n\n protected _handleInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._from) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _handleToInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitToInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._to) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n private _onToInputFocus(): void {\n this._adapter.selectToInputText();\n }\n\n private _onToInputBlur(evt: Event): void {\n this._formatToInputValue();\n if (this._open) {\n this._closeCalendar(true);\n }\n }\n\n protected _onInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._from)) {\n this.from = date;\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _onToInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._to)) {\n this.to = date;\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n public get value(): IDatePickerRange {\n return { from: this.from, to: this.to };\n }\n public set value(value: IDatePickerRange) {\n if (!value) {\n return;\n }\n\n if (value.from === undefined) {\n value.from = null;\n }\n\n if (value.to === undefined) {\n value.to = null;\n }\n\n this.from = value.from;\n this.to = value.to;\n\n this._value = { from: this.from, to: this.to };\n }\n\n public get from(): Date | string | null | undefined {\n const date = this._getTypedValue(this._from);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set from(value: Date | string | null | undefined) {\n if (this._from !== value) {\n this._setValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ from: this._coerceDateValue(value) || undefined, to: this._coerceDateValue(this._to) || undefined }));\n }\n }\n }\n }\n\n public get to(): Date | string | null | undefined {\n const date = this._getTypedValue(this._to);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set to(value: Date | string | null | undefined) {\n if (this._to !== value) {\n this._setToValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedToInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ to: this._coerceDateValue(value) || undefined, from: this._coerceDateValue(this._from) || undefined }));\n }\n }\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconDateRange } from '@tylertech/tyler-icons/standard';\nimport { CalendarComponent } from '../calendar';\nimport { BaseDatePickerComponent, IBaseDatePickerComponent } from '../date-picker/base/base-date-picker';\nimport { BASE_DATE_PICKER_CONSTANTS } from '../date-picker/base/base-date-picker-constants';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { DateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\nimport { DateRangePickerFoundation } from './date-range-picker-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface IDateRangePickerComponent extends IBaseDatePickerComponent<IDatePickerRange> {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-date-range-picker': IDateRangePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-date-range-picker-change': CustomEvent<IDateRangePickerChangeEventData>;\n 'forge-date-range-picker-open': CustomEvent<void>;\n 'forge-date-range-picker-close': CustomEvent<void>;\n 'forge-date-range-picker-input': CustomEvent<string>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-date-range-picker>` element.\n * \n * @tag forge-date-range-picker\n */\n@CustomElement({\n name: DATE_RANGE_PICKER_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n CalendarComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class DateRangePickerComponent extends BaseDatePickerComponent<IDatePickerRange, IDatePickerRange, DateRangePickerFoundation> implements IDateRangePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(BASE_DATE_PICKER_CONSTANTS.observedAttributes),\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM,\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define(tylIconDateRange);\n attachShadowTemplate(this, template, styles);\n this._foundation = new DateRangePickerFoundation(new DateRangePickerAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM:\n this.from = newValue;\n return;\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO:\n this.to = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n /** Gets/sets the \"from\" date range value. */\n @FoundationProperty()\n public declare from: Date | string | null | undefined;\n\n /** Gets/sets the \"to\" date range value. */\n @FoundationProperty()\n public declare to: Date | string | null | undefined;\n}\n", "import { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions, IBaseComponentDelegateConfig } from '../core/delegates';\nimport { FieldDensityType } from '../field/field-constants';\nimport { ITextFieldComponent, TEXT_FIELD_CONSTANTS } from '../text-field';\nimport { IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport type DateRangePickerComponentDelegateProps = Partial<IDateRangePickerComponent>;\nexport interface IDateRangePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n useDropdownIcon?: boolean;\n fromPlaceholder?: string;\n toPlaceholder?: string;\n label?: string;\n required?: boolean;\n density?: FieldDensityType;\n}\nexport interface IDateRangePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {}\n\nexport class DateRangeComponentDelegate extends FormFieldComponentDelegate<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {\n private _textField: ITextFieldComponent;\n private _fromInput: HTMLInputElement;\n private _toInput: HTMLInputElement;\n\n constructor(config?: IDateRangePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IDateRangePickerComponent {\n const dateRangePicker = document.createElement(DATE_RANGE_PICKER_CONSTANTS.elementName) as IDateRangePickerComponent;\n this._attachTextField(dateRangePicker);\n return dateRangePicker;\n }\n\n public get fromInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-0]`) as HTMLInputElement;\n }\n\n public get toInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-1]`) as HTMLInputElement;\n }\n\n public get textField(): ITextFieldComponent {\n return this._textField;\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._textField.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textField.invalid = value;\n }\n\n public onChange(listener: (value: IDateRangePickerChangeEventData) => void): void {\n this._element.addEventListener(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, (evt: CustomEvent<IDateRangePickerChangeEventData>) => listener(evt.detail));\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusin', (evt: FocusEvent) => {\n const isFocusWithin = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusWithin) {\n listener(evt);\n }\n });\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusout', (evt: FocusEvent) => {\n const isFocusOutside = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusOutside) {\n listener(evt);\n }\n });\n }\n\n private _attachTextField(dateRangePicker: IDateRangePickerComponent): void {\n this._textField = document.createElement(TEXT_FIELD_CONSTANTS.elementName);\n\n if (this._config.options?.required) {\n this._textField.required = true;\n }\n if (this._config.options?.density) {\n this._textField.density = this._config.options.density;\n }\n\n this._fromInput = document.createElement('input');\n this._fromInput.type = 'text';\n this._fromInput.placeholder = this._config.options?.fromPlaceholder || 'From';\n this._textField.appendChild(this._fromInput);\n\n this._toInput = document.createElement('input');\n this._toInput.type = 'text';\n this._toInput.placeholder = this._config.options?.toPlaceholder || 'To';\n this._textField.appendChild(this._toInput);\n\n const label = document.createElement('label');\n label.textContent = this._config.options?.label || 'Choose date range';\n this._textField.appendChild(label);\n\n dateRangePicker.appendChild(this._textField);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DateRangePickerComponent } from './date-range-picker';\n\nexport * from './date-range-picker';\nexport * from './date-range-picker-adapter';\nexport * from './date-range-picker-constants';\nexport * from './date-range-picker-foundation';\nexport * from './date-range-picker-component-delegate';\n\nexport function defineDateRangePickerComponent(): void {\n defineCustomElement(DateRangePickerComponent);\n}\n"],
|
|
5
|
-
"mappings": "q1BAEA,GAAM,GAA2C,GAAG,qBAEvC,EAAN,KAAkD,CAGvD,YAAY,EAA0B,CACpC,AAAI,GACF,MAAK,KAAO,EAAM,KAClB,KAAK,GAAK,EAAM,GAEpB,CAEA,AAAO,MAAwB,CAC7B,MAAO,IAAI,GAAgB,IAAI,CACjC,CACF,EAOM,EAAqB,CACzB,KAAM,OACN,GAAI,KACJ,UAAW,WACb,EAEM,EAAY,CAChB,MAAO,OACT,EAEM,EAAS,CACb,OAAQ,GAAG,WACX,KAAM,GAAG,SACT,MAAO,GAAG,UACV,MAAO,GAAG,SACZ,EAEa,EAA8B,CACzC,cACA,YACA,SACA,oBACF,ECvBO,GAAM,GAAN,aAAqC,EAAoF,CAQ9H,YAAY,EAAqC,CAC/C,MAAM,CAAS,EACf,KAAK,oBAAsB,2BAA2B,KAAK,aAC7D,CAEA,AAAU,kBAAyB,CAIjC,GAHA,KAAK,kBAAoB,KAAK,WAAW,iBAAiB,EAA4B,UAAU,KAAK,EAAE,GACvG,KAAK,gBAAkB,KAAK,WAAW,iBAAiB,EAA4B,UAAU,KAAK,EAAE,GAEjG,CAAC,KAAK,mBAAqB,CAAC,KAAK,kBACnC,KAAM,IAAI,OAAM,OAAO,EAA4B,iCAAiC,CAExF,CAEA,AAAU,6BAAoC,CAC5C,GAAM,GAAgB,KAAK,yBAAyB,EACpD,KAAK,kBAAoB,GAAI,GAAiB,EAAe,KAAK,mBAAmB,CACvF,CAEA,AAAO,eAAe,EAA0C,CAC9D,AAAI,KAAK,gBACP,KAAK,eAAe,QAAQ,EAE9B,KAAK,eAAiB,GAAI,GAAc,KAAK,kBAAmB,CAAW,CAC7E,CAEA,AAAO,iBAAiB,EAAwC,CAC9D,AAAI,KAAK,cACP,KAAK,aAAa,QAAQ,EAE5B,KAAK,aAAe,GAAI,GAAc,KAAK,gBAAiB,CAAS,CACvE,CAEA,AAAO,SAAgB,CACrB,MAAM,QAAQ,EACd,KAAK,8BAA8B,CACrC,CAEA,AAAO,aAAoB,CACzB,AAAI,KAAK,gBACP,MAAK,eAAe,QAAQ,EAC5B,KAAK,eAAiB,QAEpB,KAAK,cACP,MAAK,aAAa,QAAQ,EAC1B,KAAK,aAAe,OAExB,CAEA,AAAQ,+BAAsC,CAC5C,AAAI,MAAO,MAAK,wBAA2B,YACzC,KAAK,uBAAuB,CAEhC,CAEA,AAAO,yBAAgC,CACrC,KAAK,eAAe,GAAS,EAAM,aAAa,eAAgB,KAAK,CAAC,EACtE,KAAK,eAAe,GAAS,EAAM,aAAa,cAAe,KAAK,CAAC,EACrE,KAAK,eAAe,GAAS,EAAM,aAAa,iBAAkB,KAAK,CAAC,EACxE,KAAK,eAAe,GAAS,EAAM,aAAa,aAAc,OAAO,CAAC,EACtE,KAAK,eAAe,GAAS,EAAM,aAAa,OAAQ,UAAU,CAAC,EACnE,KAAK,eAAe,GAAS,EAAM,aAAa,YAAa,WAAW,CAAC,EACzE,KAAK,eAAe,GAAS,EAAM,aAAa,cAAe,MAAM,CAAC,EACtE,KAAK,eAAe,GAAS,EAAM,aAAa,gBAAiB,MAAM,CAAC,EACxE,KAAK,eAAe,GAAS,EAAM,aAAa,gBAAiB,OAAO,CAAC,EACzE,KAAK,eAAe,GAAS,EAAM,aAAa,YAAa,KAAK,mBAAmB,CAAC,CACxF,CAEA,AAAO,iBAAiB,EAAc,EAAkC,EAAyB,CAnGnG,MAoGI,QAAK,oBAAL,QAAwB,iBAAiB,EAAM,EAAU,CAAE,SAAQ,EACrE,CAEA,AAAO,mBAAmB,EAAc,EAAkC,EAAyB,CAvGrG,MAwGI,QAAK,kBAAL,QAAsB,iBAAiB,EAAM,EAAU,CAAE,SAAQ,EACnE,CAEA,AAAO,oBAAoB,EAAc,EAAwC,CA3GnF,MA4GI,QAAK,oBAAL,QAAwB,oBAAoB,EAAM,EACpD,CAEA,AAAO,sBAAsB,EAAc,EAAwC,CA/GrF,MAgHI,QAAK,kBAAL,QAAsB,oBAAoB,EAAM,EAClD,CAEA,AAAO,6BAA6B,EAAc,EAAsC,CACtF,AAAI,KAAK,sBAAsB,QAC7B,KAAK,2BAA2B,EAElC,GAAM,GAAoB,EAAkB,EAAS,KAAK,kBAAmB,QAAS,CAAQ,EAC9F,KAAK,sBAAsB,KAAK,CAAiB,CACnD,CAEA,AAAO,+BAA+B,EAAc,EAAsC,CACxF,KAAK,8BAA8B,EACnC,KAAK,uBAAyB,EAAkB,EAAS,KAAK,gBAAiB,QAAS,CAAQ,CAClG,CAEA,AAAO,iBAA2B,CAChC,MAAO,CAAC,CAAC,KAAK,mBAAqB,CAAC,CAAC,KAAK,eAC5C,CAEA,AAAgB,eAAe,EAAgE,EAAqD,CAClJ,MAAM,eAAe,EAAgB,CAAc,EACnD,KAAK,kBAAkB,aAAa,gBAAiB,MAAM,CAC7D,CAEA,AAAgB,gBAAuB,CACrC,MAAM,eAAe,EACjB,KAAK,mBACP,MAAK,kBAAkB,aAAa,gBAAiB,OAAO,EAC5D,KAAK,kBAAkB,gBAAgB,uBAAuB,EAElE,CAEA,AAAO,oBAAoB,EAAkB,CAC3C,KAAK,kBAAkB,aAAa,wBAAyB,CAAE,CACjE,CAEA,AAAO,cAAc,EAAe,EAA2B,CAC7D,AAAI,KAAK,kBAAkB,QAAU,GAIrC,MAAK,kBAAkB,MAAQ,EAE3B,KAAK,gBACP,KAAK,eAAe,WAAW,EAG7B,GACF,MAAK,kBAAkB,cAAc,GAAI,OAAM,QAAQ,CAAC,EACxD,KAAK,kBAAkB,cAAc,GAAI,OAAM,OAAO,CAAC,GAE3D,CAEA,AAAO,gBAAgB,EAAe,EAA2B,CAC/D,AAAI,KAAK,gBAAgB,QAAU,GAInC,MAAK,gBAAgB,MAAQ,EAEzB,KAAK,cACP,KAAK,aAAa,WAAW,EAG3B,GACF,MAAK,gBAAgB,cAAc,GAAI,OAAM,QAAQ,CAAC,EACtD,KAAK,gBAAgB,cAAc,GAAI,OAAM,OAAO,CAAC,GAEzD,CAEA,AAAO,iBAA2B,CAChC,MAAO,MAAK,kBAAkB,QAChC,CAEA,AAAO,gBAA0B,CAC/B,MAAO,MAAK,kBAAoB,EAAiB,GAAK,KAAK,oBAAsB,EAAiB,CACpG,CAEA,AAAO,eAAwB,CAC7B,MAAO,MAAK,kBAAkB,KAChC,CAEA,AAAO,iBAA0B,CAC/B,MAAO,MAAK,gBAAgB,KAC9B,CAEA,AAAO,YAAY,EAA2B,CAC5C,KAAK,kBAAkB,SAAW,EAClC,KAAK,gBAAgB,SAAW,EAEhC,KAAK,gBAAgB,aAAa,gBAAiB,EAAW,SAAS,CAAC,EACxE,KAAK,kBAAkB,aAAa,gBAAiB,EAAW,SAAS,CAAC,EAEtE,KAAK,gBACP,MAAK,eAAe,aAAa,gBAAiB,EAAW,SAAS,CAAC,EACnE,KAAK,eAAe,eAAe,UAAU,GAC9C,MAAK,eAAqC,SAAW,GAG5D,CAEA,AAAO,eAAe,EAAc,EAAkB,CACpD,EAAU,KAAK,kBAAmB,EAAM,CAAI,CAC9C,CAEA,AAAO,iBAAiB,EAAc,EAAkB,CACtD,EAAU,KAAK,gBAAiB,EAAM,CAAI,CAC5C,CAEA,AAAmB,sBAAoC,CACrD,MAAO,GAAoB,YAAY,CACzC,CAEA,AAAO,eAAsB,CAC3B,KAAK,kBAAkB,MAAM,CAC/B,CAEA,AAAO,cAAqB,CAC1B,KAAK,kBAAkB,KAAK,CAC9B,CAEA,AAAO,iBAAwB,CAC7B,KAAK,kBAAkB,OAAO,CAChC,CAEA,AAAO,mBAA0B,CAC/B,KAAK,gBAAgB,OAAO,CAC9B,CAEA,AAAQ,eAAe,EAAiD,CACtE,CAAC,KAAK,kBAAmB,KAAK,eAAe,EAAE,QAAQ,CAAM,CAC/D,CACF,ECxOO,GAAM,GAAN,aAAwC,EAA0G,CAUvJ,YAAY,EAAkC,CAC5C,MAAM,CAAO,EAVf,KAAU,MAAsB,QAChC,KAAQ,MAAsB,KAC9B,KAAQ,IAAoB,KAS1B,KAAK,iBAAmB,GAAO,KAAK,WAAW,CAAG,EAClD,KAAK,6BAA+B,GAAS,KAAK,uBAAuB,CAAK,EAC9E,KAAK,wBAA0B,GAAO,KAAK,gBAAgB,CAAG,EAC9D,KAAK,sBAAwB,GAAO,KAAK,gBAAgB,EACzD,KAAK,qBAAuB,GAAO,KAAK,eAAe,CAAG,CAC5D,CAEA,AAAU,kBAAyB,CACjC,AAAK,KAAK,OACR,MAAK,MAAQ,KAAK,iBAAiB,KAAK,SAAS,cAAc,CAAC,GAE7D,KAAK,KACR,MAAK,IAAM,KAAK,iBAAiB,KAAK,SAAS,gBAAgB,CAAC,EAEpE,CAEA,AAAmB,sBAA6B,CAC9C,MAAM,qBAAqB,EAC3B,KAAK,SAAS,mBAAmB,UAAW,KAAK,uBAAuB,EACxE,KAAK,SAAS,mBAAmB,QAAS,KAAK,qBAAqB,EACpE,KAAK,SAAS,mBAAmB,OAAQ,KAAK,oBAAoB,CACpE,CAEA,AAAmB,kCAAyC,CAC1D,MAAM,iCAAiC,EACvC,KAAK,SAAS,+BAA+B,KAAM,KAAK,4BAA4B,CACtF,CAEA,AAAmB,0BAAiC,CAClD,MAAM,yBAAyB,EAC/B,KAAK,SAAS,mBAAmB,QAAS,KAAK,gBAAgB,CACjE,CAEA,AAAmB,6BAAoC,CACrD,MAAM,4BAA4B,EAClC,KAAK,SAAS,sBAAsB,QAAS,KAAK,gBAAgB,CACpE,CAEA,AAAmB,cAAc,EAA+B,CAC9D,KAAK,oBAAoB,EACzB,MAAM,cAAc,CAAa,EAEjC,GAAM,GAAe,KAAK,iBAAiB,EAC3C,AAAM,WAAc,GAClB,KAAK,SAAS,iBAAiB,GAAI,MAAK,EAAa,EAAE,CAAC,EAC7C,WAAc,MACzB,KAAK,SAAS,iBAAiB,GAAI,MAAK,EAAa,IAAI,CAAC,CAE9D,CAEA,AAAU,iBAAiB,EAAqC,EAA0B,CACxF,GAAM,GAAkB,KAAK,eAAgB,GAAS,EAAM,MAAS,IAAI,EACnE,EAAgB,KAAK,eAAgB,GAAS,EAAM,IAAO,IAAI,EAC/D,EAA0C,GAAI,GAAgB,CAAE,KAAM,EAAiB,GAAI,CAAc,CAAC,EAEhH,MADqB,AAAC,MAAK,SAAS,cAAc,EAA4B,OAAO,OAAQ,EAAQ,GAAM,CAAC,CAAK,EAE/G,MAAK,UAAU,KAAK,iBAAkB,GAAS,EAAM,MAAS,IAAI,CAAC,EACnE,KAAK,YAAY,KAAK,iBAAkB,GAAS,EAAM,IAAO,IAAI,CAAC,EAC5D,IAEF,EACT,CAEA,AAAU,gBAAuB,CAC/B,KAAK,SAAS,cAAc,EAA4B,OAAO,KAAM,OAAW,EAAK,CACvF,CAEA,AAAU,iBAAwB,CAChC,KAAK,SAAS,cAAc,EAA4B,OAAO,MAAO,OAAW,EAAK,CACxF,CAEA,AAAU,UAAiB,CACzB,GAAM,GAAQ,GAAI,MACZ,EAAQ,KAAK,MAAQ,GAAI,GAAU,CAAE,KAAM,KAAK,OAAS,EAAO,GAAI,KAAK,KAAO,MAAU,CAAC,EAAI,GAAI,GAAU,CAAE,KAAM,CAAM,CAAC,EAClI,AAAI,CAAC,KAAK,uBAAuB,CAAK,GAGtC,MAAK,MAAQ,EACb,KAAK,gBAAgB,CAAE,KAAM,EAAO,QAAO,SAAU,GAAM,KAAM,MAAO,CAAC,EACzE,KAAK,SAAS,sBAAsB,CAAK,EAC3C,CAEA,AAAU,UAAiB,CACzB,KAAK,gBAAgB,CAAE,KAAM,KAAM,MAAO,GAAI,GAAa,SAAU,GAAO,KAAM,MAAO,CAAC,EAC1F,KAAK,eAAe,EAAI,CAC1B,CAEA,AAAU,kBAAwD,CAChE,MAAO,MAAK,MACd,CAEA,AAAQ,qBAA4B,CAClC,GAAM,GAAa,KAAK,SAAS,gBAAgB,EACjD,GAAI,EAAY,CACd,GAAM,GAAa,KAAK,iBAAiB,CAAU,EACnD,GAAI,EAAY,CAAU,GAAK,KAAK,uBAAuB,CAAU,EAAG,CACtE,GAAM,GAAgB,KAAK,YAAY,CAAU,EACjD,AAAI,GACF,KAAK,SAAS,gBAAgB,EAAe,KAAK,wBAAwB,CAE9E,KACE,AAAK,MAAK,mBACR,KAAK,SAAS,gBAAgB,GAAI,KAAK,wBAAwB,CAGrE,CACF,CAEA,AAAU,wBAAwB,EAAsC,CACtE,GAAI,GAAgB,KAAK,YAAY,KAAK,KAAK,EAC/C,AAAI,CAAC,GAAiB,CAAC,KAAK,mBAC1B,GAAgB,IAElB,KAAK,SAAS,cAAc,EAAe,EAAuB,GAAQ,KAAK,wBAAwB,CACzG,CAEA,AAAQ,0BAA0B,EAAsC,CACtE,GAAI,GAAgB,KAAK,YAAY,KAAK,GAAG,EAC7C,AAAI,CAAC,GAAiB,CAAC,KAAK,mBAC1B,GAAgB,IAElB,KAAK,SAAS,gBAAgB,EAAe,EAAuB,GAAQ,KAAK,wBAAwB,CAC3G,CAEA,AAAU,uBAAuB,EAA+C,CAC9E,GAAI,CAAC,YAAO,IACV,MAAO,GAGT,GAAM,GAAgB,IAAe,KAAK,uBAAuB,EAAM,IAAI,EACrE,EAAgB,IAAe,KAAK,uBAAuB,EAAM,EAAE,EACnE,EAAkB,IAAe,kBAAO,OAAQ,kBAAO,IAAK,EAAM,KAAK,QAAQ,GAAK,EAAM,GAAG,QAAQ,EAAI,GAE/G,MAAO,GAAc,GAAK,EAAc,GAAK,EAAgB,CAC/D,CAEA,AAAU,UAAU,EAAsC,CACxD,AAAI,KAAK,uBAAuB,CAAK,GACnC,MAAK,MAAQ,GAAS,KACtB,AAAK,KAAK,OAGR,KAAK,OAAO,KAAO,KAAK,MAFxB,KAAK,OAAS,CAAE,KAAM,KAAK,MAAO,GAAI,KAAK,GAAI,EAKrD,CAEA,AAAQ,YAAY,EAAsC,CACxD,AAAI,KAAK,uBAAuB,CAAK,GACnC,MAAK,IAAM,GAAS,KACpB,AAAK,KAAK,OAGR,KAAK,OAAO,GAAK,KAAK,IAFtB,KAAK,OAAS,CAAE,KAAM,KAAK,MAAO,GAAI,KAAK,GAAI,EAKrD,CAEA,AAAU,gBAAgB,EAA2C,CACnE,GAAM,GAAQ,EAAM,MAMpB,GAJI,EAAM,sBAAwB,MAChC,KAAK,eAAe,EAAI,EAGtB,CAAC,KAAK,iBAAiB,UAAS,IAAI,EACtC,OAGF,GAAM,GAAqB,KAAK,YAAa,GAAS,EAAM,MAAS,IAAI,EACnE,EAAmB,KAAK,YAAa,GAAS,EAAM,IAAO,IAAI,EACrE,KAAK,SAAS,cAAc,EAAoB,KAAK,wBAAwB,EAC7E,KAAK,SAAS,gBAAgB,EAAkB,KAAK,wBAAwB,EAC7E,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAEzB,KAAK,MAAS,GAAS,EAAM,MAAS,KACtC,KAAK,IAAO,GAAS,EAAM,IAAO,KAE7B,EAAS,UACZ,CAAI,EACF,KAAK,SAAS,kBAAkB,EAEhC,KAAK,SAAS,gBAAgB,EAGpC,CAEA,AAAmB,WAAkB,CACnC,AAAI,KAAK,OAAS,CAAC,KAAK,uBAAuB,KAAK,KAAK,GACvD,MAAK,iBAAiB,GAAI,GAAU,CAAE,GAAI,KAAK,KAAO,MAAU,CAAC,EAAG,EAAI,EACxE,KAAK,wBAAwB,GAE3B,KAAK,KAAO,CAAC,KAAK,uBAAuB,KAAK,GAAG,GACnD,MAAK,iBAAiB,GAAI,GAAU,CAAE,KAAM,KAAK,OAAS,MAAU,CAAC,EAAG,EAAI,EAC5E,KAAK,0BAA0B,GAEjC,MAAM,UAAU,CAClB,CAEA,AAAmB,WAAkB,CACnC,AAAI,KAAK,OAAS,CAAC,KAAK,uBAAuB,KAAK,KAAK,GACvD,MAAK,iBAAiB,GAAI,GAAU,CAAE,GAAI,KAAK,KAAO,MAAU,CAAC,EAAG,EAAI,EACxE,KAAK,wBAAwB,GAE3B,KAAK,KAAO,CAAC,KAAK,uBAAuB,KAAK,GAAG,GACnD,MAAK,iBAAiB,GAAI,GAAU,CAAE,KAAM,KAAK,OAAS,MAAU,CAAC,EAAG,EAAI,EAC5E,KAAK,0BAA0B,GAEjC,MAAM,UAAU,CAClB,CAEA,AAAmB,iBAAwB,CAIzC,GAHA,MAAM,gBAAgB,EAGlB,KAAK,QAAS,CAChB,GAAM,GAAiC,CACrC,eAAgB,KAAK,gBACrB,QAAS,KAAK,YACd,SAAU,AAAC,GAAkB,KAAK,eAAe,CAAK,CACxD,EAEA,AAAI,KAAK,sBACP,GAAQ,gBAAkB,CAAC,EAAO,EAAQ,EAAO,IACxC,KAAK,qBAAqB,KAAK,KAAM,EAAO,EAAQ,EAAO,CAAY,GAIlF,KAAK,SAAS,iBAAiB,CAAO,CACxC,CACF,CAEA,AAAU,qBAA4B,CACpC,AAAI,KAAK,OAAS,CAAC,KAAK,uBAAuB,KAAK,KAAK,GACvD,MAAK,iBAAiB,GAAI,GAAU,CAAE,GAAI,KAAK,KAAO,MAAU,CAAC,EAAG,EAAI,EACxE,KAAK,wBAAwB,GAE3B,KAAK,KAAO,CAAC,KAAK,uBAAuB,KAAK,GAAG,GACnD,MAAK,iBAAiB,GAAI,GAAU,CAAE,KAAM,KAAK,OAAS,MAAU,CAAC,EAAG,EAAI,EAC5E,KAAK,0BAA0B,EAEnC,CAEA,AAAU,0BAAiC,CACzC,AAAI,KAAK,OAAS,CAAC,KAAK,uBAAuB,KAAK,KAAK,GACvD,MAAK,iBAAiB,KAAM,EAAI,EAChC,KAAK,wBAAwB,GAE3B,KAAK,KAAO,CAAC,KAAK,uBAAuB,KAAK,GAAG,GACnD,MAAK,iBAAiB,KAAM,EAAI,EAChC,KAAK,0BAA0B,EAEnC,CAEA,AAAQ,WAAW,EAAkB,CACnC,KAAK,aAAa,KAAK,SAAS,cAAc,CAAC,CACjD,CAEA,AAAU,aAAa,EAAqB,CAC1C,GAAM,GAAiB,KAAK,wBAAwB,CAAK,EACnD,EAAO,KAAK,iBAAiB,CAAc,EACjD,AAAI,KAAK,SACP,KAAK,SAAS,eAAe,EAA4B,OAAO,MAAO,CAAc,EAEnF,CAAC,EAAW,EAAM,KAAK,KAAK,GAAK,KAAK,uBAAuB,CAAI,GACnE,KAAK,iBAAiB,GAAI,GAAU,CAAE,KAAM,GAAQ,OAAW,GAAI,KAAK,KAAO,MAAU,CAAC,CAAC,CAE/F,CAEA,AAAQ,eAAe,EAAqB,CAC1C,GAAM,GAAiB,KAAK,wBAAwB,CAAK,EACnD,EAAO,KAAK,iBAAiB,CAAc,EACjD,AAAI,KAAK,SACP,KAAK,SAAS,iBAAiB,EAA4B,OAAO,MAAO,CAAc,EAErF,CAAC,EAAW,EAAM,KAAK,GAAG,GAAK,KAAK,uBAAuB,CAAI,GACjE,KAAK,iBAAiB,GAAI,GAAU,CAAE,KAAM,KAAK,OAAS,OAAW,GAAI,GAAQ,MAAU,CAAC,CAAC,CAEjG,CAEA,AAAQ,iBAAwB,CAC9B,KAAK,SAAS,kBAAkB,CAClC,CAEA,AAAQ,eAAe,EAAkB,CACvC,KAAK,oBAAoB,EACrB,KAAK,OACP,KAAK,eAAe,EAAI,CAE5B,CAEA,AAAU,qBAAqB,EAAqB,CAClD,GAAI,KAAK,QACP,OAEF,GAAM,GAAiB,KAAK,wBAAwB,CAAK,EACnD,EAAO,KAAK,iBAAiB,CAAc,EACjD,AAAK,EAAW,EAAM,KAAK,KAAK,GAC9B,MAAK,KAAO,EACZ,KAAK,iBAAiB,GAAI,GAAU,CAAE,KAAM,GAAQ,OAAW,GAAI,KAAK,KAAO,MAAU,CAAC,CAAC,EAE/F,CAEA,AAAQ,uBAAuB,EAAqB,CAClD,GAAI,KAAK,QACP,OAEF,GAAM,GAAiB,KAAK,wBAAwB,CAAK,EACnD,EAAO,KAAK,iBAAiB,CAAc,EACjD,AAAK,EAAW,EAAM,KAAK,GAAG,GAC5B,MAAK,GAAK,EACV,KAAK,iBAAiB,GAAI,GAAU,CAAE,KAAM,KAAK,OAAS,OAAW,GAAI,GAAQ,MAAU,CAAC,CAAC,EAEjG,CAEA,GAAW,QAA0B,CACnC,MAAO,CAAE,KAAM,KAAK,KAAM,GAAI,KAAK,EAAG,CACxC,CACA,GAAW,OAAM,EAAyB,CACxC,AAAI,CAAC,GAID,GAAM,OAAS,QACjB,GAAM,KAAO,MAGX,EAAM,KAAO,QACf,GAAM,GAAK,MAGb,KAAK,KAAO,EAAM,KAClB,KAAK,GAAK,EAAM,GAEhB,KAAK,OAAS,CAAE,KAAM,KAAK,KAAM,GAAI,KAAK,EAAG,EAC/C,CAEA,GAAW,OAAyC,CAClD,GAAM,GAAO,KAAK,eAAe,KAAK,KAAK,EAE3C,MAAK,GAID,EAAO,CAAI,EACN,GAAI,MAAK,EAAK,QAAQ,CAAC,EAGzB,EAPE,IAQX,CACA,GAAW,MAAK,EAAyC,CACvD,AAAI,KAAK,QAAU,GACjB,MAAK,UAAU,KAAK,iBAAiB,CAAK,CAAC,EACvC,KAAK,gBACP,MAAK,wBAAwB,EACzB,KAAK,OACP,KAAK,SAAS,iBAAiB,GAAI,GAAU,CAAE,KAAM,KAAK,iBAAiB,CAAK,GAAK,OAAW,GAAI,KAAK,iBAAiB,KAAK,GAAG,GAAK,MAAU,CAAC,CAAC,GAI3J,CAEA,GAAW,KAAuC,CAChD,GAAM,GAAO,KAAK,eAAe,KAAK,GAAG,EAEzC,MAAK,GAID,EAAO,CAAI,EACN,GAAI,MAAK,EAAK,QAAQ,CAAC,EAGzB,EAPE,IAQX,CACA,GAAW,IAAG,EAAyC,CACrD,AAAI,KAAK,MAAQ,GACf,MAAK,YAAY,KAAK,iBAAiB,CAAK,CAAC,EACzC,KAAK,gBACP,MAAK,0BAA0B,EAC3B,KAAK,OACP,KAAK,SAAS,iBAAiB,GAAI,GAAU,CAAE,GAAI,KAAK,iBAAiB,CAAK,GAAK,OAAW,KAAM,KAAK,iBAAiB,KAAK,KAAK,GAAK,MAAU,CAAC,CAAC,GAI7J,CACF,EChZA,GAAM,GAAW,qCACX,EAAS,oDAkCF,EAAN,aAAuC,EAA4H,CASxK,aAAc,CACZ,MAAM,EACN,EAAa,OAAO,CAAgB,EACpC,EAAqB,KAAM,EAAU,CAAM,EAC3C,KAAK,YAAc,GAAI,GAA0B,GAAI,GAAuB,IAAI,CAAC,CACnF,CAbA,UAAkB,qBAA+B,CAC/C,MAAO,CACL,GAAG,OAAO,OAAO,EAA2B,kBAAkB,EAC9D,EAA4B,mBAAmB,KAC/C,EAA4B,mBAAmB,EACjD,CACF,CASA,AAAO,yBAAyB,EAAc,EAAkB,EAAwB,CACtF,OAAQ,OACD,GAA4B,mBAAmB,KAClD,KAAK,KAAO,EACZ,WACG,GAA4B,mBAAmB,GAClD,KAAK,GAAK,EACV,OAEJ,MAAM,yBAAyB,EAAM,EAAU,CAAQ,CACzD,CASF,EALiB,GADf,AAAC,EAAmB,GACL,AA9BJ,EA8BI,oBAIA,GADf,AAAC,EAAmB,GACL,AAlCJ,EAkCI,kBAlCJ,EAAN,GATP,AAAC,EAAc,CACb,KAAM,EAA4B,YAClC,aAAc,CACZ,EACA,EACA,EACA,CACF,CACF,CAAC,GACY,GC9BN,GAAM,GAAN,aAAyC,EAAgG,CAK9I,YAAY,EAAkD,CAC5D,MAAM,CAAM,CACd,CAEA,AAAU,QAAoC,CAC5C,GAAM,GAAkB,SAAS,cAAc,EAA4B,WAAW,EACtF,YAAK,iBAAiB,CAAe,EAC9B,CACT,CAEA,GAAW,YAA8B,CACvC,MAAO,MAAK,WAAW,cAAc,SAAS,EAAqB,WAAW,gBAAgB,CAChG,CAEA,GAAW,UAA4B,CACrC,MAAO,MAAK,WAAW,cAAc,SAAS,EAAqB,WAAW,gBAAgB,CAChG,CAEA,GAAW,YAAiC,CAC1C,MAAO,MAAK,UACd,CAEA,GAAW,QAAa,CACtB,MAAO,MAAK,SAAS,KACvB,CACA,GAAW,OAAM,EAAY,CAC3B,KAAK,SAAS,MAAQ,CACxB,CAEA,GAAW,WAAoB,CAC7B,MAAO,MAAK,SAAS,QACvB,CACA,GAAW,UAAS,EAAgB,CAClC,KAAK,SAAS,SAAW,CAC3B,CAEA,GAAW,UAAmB,CAC5B,MAAO,MAAK,WAAW,SAAW,EACpC,CACA,GAAW,SAAQ,EAAgB,CACjC,KAAK,WAAW,QAAU,CAC5B,CAEA,AAAO,SAAS,EAAkE,CAChF,KAAK,SAAS,iBAAiB,EAA4B,OAAO,OAAQ,AAAC,GAAsD,EAAS,EAAI,MAAM,CAAC,CACvJ,CAEA,AAAO,QAAQ,EAA2C,CACxD,KAAK,SAAS,iBAAiB,UAAW,AAAC,GAAoB,CAE7D,AAAI,AADkB,CAAC,KAAK,SAAS,SAAS,EAAI,aAAqB,GAErE,EAAS,CAAG,CAEhB,CAAC,CACH,CAEA,AAAO,OAAO,EAA2C,CACvD,KAAK,SAAS,iBAAiB,WAAY,AAAC,GAAoB,CAE9D,AAAI,AADmB,CAAC,KAAK,SAAS,SAAS,EAAI,aAAqB,GAEtE,EAAS,CAAG,CAEhB,CAAC,CACH,CAEA,AAAQ,iBAAiB,EAAkD,CAvF7E,cAwFI,KAAK,WAAa,SAAS,cAAc,EAAqB,WAAW,EAErE,QAAK,QAAQ,UAAb,QAAsB,UACxB,MAAK,WAAW,SAAW,IAEzB,QAAK,QAAQ,UAAb,QAAsB,SACxB,MAAK,WAAW,QAAU,KAAK,QAAQ,QAAQ,SAGjD,KAAK,WAAa,SAAS,cAAc,OAAO,EAChD,KAAK,WAAW,KAAO,OACvB,KAAK,WAAW,YAAc,SAAK,QAAQ,UAAb,cAAsB,kBAAmB,OACvE,KAAK,WAAW,YAAY,KAAK,UAAU,EAE3C,KAAK,SAAW,SAAS,cAAc,OAAO,EAC9C,KAAK,SAAS,KAAO,OACrB,KAAK,SAAS,YAAc,SAAK,QAAQ,UAAb,cAAsB,gBAAiB,KACnE,KAAK,WAAW,YAAY,KAAK,QAAQ,EAEzC,GAAM,GAAQ,SAAS,cAAc,OAAO,EAC5C,EAAM,YAAc,SAAK,QAAQ,UAAb,cAAsB,QAAS,oBACnD,KAAK,WAAW,YAAY,CAAK,EAEjC,EAAgB,YAAY,KAAK,UAAU,CAC7C,CACF,ECxGO,aAAgD,CACrD,EAAoB,CAAwB,CAC9C",
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}date-range-picker`;\n\nexport class DatePickerRange implements IDatePickerRange {\n public from?: Date | string | null;\n public to?: Date | string | null;\n constructor(range?: IDatePickerRange) {\n if (range) {\n this.from = range.from;\n this.to = range.to;\n }\n }\n\n public copy(): DatePickerRange {\n return new DatePickerRange(this);\n }\n}\n\nexport interface IDatePickerRange {\n from?: Date | string | null;\n to?: Date | string | null;\n}\n\nconst observedAttributes = {\n FROM: 'from',\n TO: 'to',\n END_VALUE: 'end-value'\n};\n\nconst selectors = {\n INPUT: 'input'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`\n};\n\nexport const DATE_RANGE_PICKER_CONSTANTS = {\n elementName,\n selectors,\n events,\n observedAttributes\n};\n\n\nexport interface IDateRangePickerChangeEventData extends DatePickerRange {}\n", "import { emitEvent, listenOwnProperty, getActiveElement } from '@tylertech/forge-core';\nimport { CalendarDropdown, ICalendarDropdownPopupConfig } from '../calendar/calendar-dropdown';\nimport { DateInputMask, IDateInputMaskOptions } from '../core';\nimport { BaseDatePickerAdapter, IBaseDatePickerAdapter } from '../date-picker/base/base-date-picker-adapter';\nimport { IDatePickerCalendarDropdownConfig } from '../date-picker/base/base-date-picker-constants';\nimport { createToggleElement } from '../date-picker/base/base-date-picker-utils';\nimport { DateRangePickerComponent, IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS } from './date-range-picker-constants';\n\nexport interface IDateRangePickerAdapter extends IBaseDatePickerAdapter {\n initializeToMask(toOptions: IDateInputMaskOptions): void;\n addToInputListener(type: string, listener: (event: Event) => void): void;\n removeToInputListener(type: string, listener: (event: Event) => void): void;\n setToInputValueChangedListener(context: any, listener: (value: any) => void): void;\n getToInputValue(): string;\n setToInputValue(value: string, emitEvents: boolean): void;\n emitInputEvent(type: string, data?: any): void;\n emitToInputEvent(type: string, data?: any): void;\n tryFocusInput(): void;\n tryBlurInput(): void;\n selectToInputText(): void;\n}\n\nexport class DateRangePickerAdapter extends BaseDatePickerAdapter<IDateRangePickerComponent> implements IDateRangePickerAdapter {\n private _fromInputElement: HTMLInputElement;\n private _toInputElement: HTMLInputElement;\n private _toInputMask: DateInputMask | undefined;\n private _fromInputMask: DateInputMask | undefined;\n private _dropdownIdentifier: string;\n private _toValueChangeListener: (() => void) | undefined;\n\n constructor(component: DateRangePickerComponent) {\n super(component);\n this._dropdownIdentifier = `forge-date-range-picker-${this._identifier}`;\n }\n\n protected _initializeInput(): void {\n this._fromInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[0] as HTMLInputElement;\n this._toInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[1] as HTMLInputElement;\n\n if (!this._fromInputElement || !this._fromInputElement) {\n throw new Error(`The ${DATE_RANGE_PICKER_CONSTANTS.elementName} requires two inputs`);\n }\n }\n\n protected _initializeCalendarDropdown(): void {\n const targetElement = this._getDefaultTargetElement();\n this._calendarDropdown = new CalendarDropdown(targetElement, this._dropdownIdentifier);\n }\n\n public initializeMask(fromOptions: IDateInputMaskOptions): void {\n if (this._fromInputMask) {\n this._fromInputMask.destroy();\n }\n this._fromInputMask = new DateInputMask(this._fromInputElement, fromOptions);\n }\n\n public initializeToMask(toOptions: IDateInputMaskOptions): void {\n if (this._toInputMask) {\n this._toInputMask.destroy();\n }\n this._toInputMask = new DateInputMask(this._toInputElement, toOptions);\n }\n\n public destroy(): void {\n super.destroy();\n this._destroyToValueChangeListener();\n }\n\n public destroyMask(): void {\n if (this._fromInputMask) {\n this._fromInputMask.destroy();\n this._fromInputMask = undefined;\n }\n if (this._toInputMask) {\n this._toInputMask.destroy();\n this._toInputMask = undefined;\n }\n }\n\n private _destroyToValueChangeListener(): void {\n if (typeof this._toValueChangeListener === 'function') {\n this._toValueChangeListener();\n }\n }\n\n public initializeAccessibility(): void {\n this._applyToInputs(input => input.setAttribute('autocomplete', 'off'));\n this._applyToInputs(input => input.setAttribute('autocorrect', 'off'));\n this._applyToInputs(input => input.setAttribute('autocapitalize', 'off'));\n this._applyToInputs(input => input.setAttribute('spellcheck', 'false'));\n this._applyToInputs(input => input.setAttribute('role', 'combobox'));\n this._applyToInputs(input => input.setAttribute('aria-live', 'assertive'));\n this._applyToInputs(input => input.setAttribute('aria-atomic', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-haspopup', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-expanded', 'false'));\n this._applyToInputs(input => input.setAttribute('aria-owns', this._dropdownIdentifier));\n }\n\n public addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._fromInputElement?.addEventListener(type, listener, { capture });\n }\n\n public addToInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._toInputElement?.addEventListener(type, listener, { capture });\n }\n\n public removeInputListener(type: string, listener: (event: Event) => void): void {\n this._fromInputElement?.removeEventListener(type, listener);\n }\n \n public removeToInputListener(type: string, listener: (event: Event) => void): void {\n this._toInputElement?.removeEventListener(type, listener);\n }\n\n public setInputValueChangedListener(context: any, listener: (value: any) => void): void {\n if (this._valueChangeListeners.length) {\n this.destroyValueChangeListener();\n }\n const destroyListenerCb = listenOwnProperty(context, this._fromInputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListenerCb);\n }\n\n public setToInputValueChangedListener(context: any, listener: (value: any) => void): void {\n this._destroyToValueChangeListener();\n this._toValueChangeListener = listenOwnProperty(context, this._toInputElement, 'value', listener);\n }\n\n public hasInputElement(): boolean {\n return !!this._fromInputElement && !!this._toInputElement;\n }\n\n public override attachCalendar(calendarConfig: IDatePickerCalendarDropdownConfig<Date | null>, dropdownConfig?: ICalendarDropdownPopupConfig): void {\n super.attachCalendar(calendarConfig, dropdownConfig);\n this._fromInputElement.setAttribute('aria-expanded', 'true');\n }\n\n public override detachCalendar(): void {\n super.detachCalendar();\n if (this._fromInputElement) {\n this._fromInputElement.setAttribute('aria-expanded', 'false');\n this._fromInputElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public setActiveDescendant(id: string): void {\n this._fromInputElement.setAttribute('aria-activedescendant', id);\n }\n\n public setInputValue(value: string, emitEvents: boolean): void {\n if (this._fromInputElement.value === value) {\n return;\n }\n\n this._fromInputElement.value = value;\n \n if (this._fromInputMask) {\n this._fromInputMask.updateMask();\n }\n\n if (emitEvents) {\n this._fromInputElement.dispatchEvent(new Event('change'));\n this._fromInputElement.dispatchEvent(new Event('input'));;\n }\n }\n\n public setToInputValue(value: string, emitEvents: boolean): void {\n if (this._toInputElement.value === value) {\n return;\n }\n\n this._toInputElement.value = value;\n \n if (this._toInputMask) {\n this._toInputMask.updateMask();\n }\n \n if (emitEvents) {\n this._toInputElement.dispatchEvent(new Event('change'));\n this._toInputElement.dispatchEvent(new Event('input'));\n }\n }\n\n public isInputDisabled(): boolean {\n return this._fromInputElement.disabled;\n }\n\n public isInputFocused(): boolean {\n return this._toInputElement === getActiveElement() || this._fromInputElement === getActiveElement();\n }\n\n public getInputValue(): string {\n return this._fromInputElement.value;\n }\n\n public getToInputValue(): string {\n return this._toInputElement.value;\n }\n\n public setDisabled(isDisabled: boolean): void {\n this._fromInputElement.disabled = isDisabled;\n this._toInputElement.disabled = isDisabled;\n\n this._toInputElement.setAttribute('aria-disabled', isDisabled.toString());\n this._fromInputElement.setAttribute('aria-disabled', isDisabled.toString());\n\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', isDisabled.toString());\n if (this._toggleElement.hasOwnProperty('disabled')) {\n (this._toggleElement as HTMLButtonElement).disabled = isDisabled;\n }\n }\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._fromInputElement, type, data);\n }\n\n public emitToInputEvent(type: string, data?: any): void {\n emitEvent(this._toInputElement, type, data);\n }\n\n protected override _createToggleElement(): HTMLElement {\n return createToggleElement('date_range');\n }\n\n public tryFocusInput(): void {\n this._fromInputElement.focus();\n }\n\n public tryBlurInput(): void {\n this._fromInputElement.blur();\n }\n\n public selectInputText(): void {\n this._fromInputElement.select();\n }\n\n public selectToInputText(): void {\n this._toInputElement.select();\n }\n\n private _applyToInputs(action: (input: HTMLInputElement) => void): void {\n [this._fromInputElement, this._toInputElement].forEach(action);\n }\n}\n", "import { isDate, isValidDate, Platform } from '@tylertech/forge-core';\nimport { CalendarMode, DateRange, ICalendarDateSelectEventData } from '../calendar';\nimport { isSameDate } from '../core/utils/date-utils';\nimport { IDateInputMaskOptions } from '../core/mask/date-input-mask';\nimport { BaseDatePickerFoundation, IBaseDatePickerFoundation } from '../date-picker/base/base-date-picker-foundation';\nimport { IDateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DatePickerRange, DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport interface IDateRangePickerFoundation extends IBaseDatePickerFoundation<IDatePickerRange> {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n}\n\nexport class DateRangePickerFoundation extends BaseDatePickerFoundation<IDateRangePickerAdapter, IDatePickerRange> implements IDateRangePickerFoundation {\n protected _mode: CalendarMode = 'range';\n private _from?: Date | null = null;\n private _to?: Date | null = null;\n private _toInputListener: (evt: Event) => void;\n private _toInputKeydownListener: (evt: KeyboardEvent) => void;\n private _toInputFocusListener: (evt: Event) => void;\n private _toInputBlurListener: (evt: Event) => void;\n private _toInputValueChangedListener: (value: string) => void;\n\n constructor(adapter: IDateRangePickerAdapter) {\n super(adapter);\n this._toInputListener = evt => this._onToInput(evt);\n this._toInputValueChangedListener = value => this._onToInputValueChanged(value);\n this._toInputKeydownListener = evt => this._onInputKeydown(evt);\n this._toInputFocusListener = evt => this._onToInputFocus();\n this._toInputBlurListener = evt => this._onToInputBlur(evt);\n }\n\n protected _initializeState(): void {\n if (!this._from) {\n this._from = this._coerceDateValue(this._adapter.getInputValue());\n }\n if (!this._to) {\n this._to = this._coerceDateValue(this._adapter.getToInputValue());\n }\n }\n\n protected override _initializeListeners(): void {\n super._initializeListeners();\n this._adapter.addToInputListener('keydown', this._toInputKeydownListener);\n this._adapter.addToInputListener('focus', this._toInputFocusListener);\n this._adapter.addToInputListener('blur', this._toInputBlurListener);\n }\n\n protected override _initializeValueChangedListeners(): void {\n super._initializeValueChangedListeners();\n this._adapter.setToInputValueChangedListener(this, this._toInputValueChangedListener);\n }\n\n protected override _setInputChangeListeners(): void {\n super._setInputChangeListeners();\n this._adapter.addToInputListener('input', this._toInputListener);\n }\n\n protected override _removeInputChangeListeners(): void {\n super._removeInputChangeListeners();\n this._adapter.removeToInputListener('input', this._toInputListener);\n }\n\n protected override _openCalendar(emitOpenEvent?: boolean): void {\n this._formatToInputValue();\n super._openCalendar(emitOpenEvent);\n\n const currentValue = this._getCurrentValue();\n if (!!currentValue?.to) {\n this._adapter.goToCalendarDate(new Date(currentValue.to));\n } else if (!!currentValue?.from) {\n this._adapter.goToCalendarDate(new Date(currentValue.from));\n }\n }\n\n protected _emitChangeEvent(value: DateRange | null | undefined, force?: boolean): boolean {\n const typedStartValue = this._getTypedValue((value && value.from) || null);\n const typedEndValue = this._getTypedValue((value && value.to) || null);\n const detail: IDateRangePickerChangeEventData = new DatePickerRange({ from: typedStartValue, to: typedEndValue });\n const wasCancelled = !this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, detail, true, !force);\n if (!wasCancelled) {\n this._setValue(this._coerceDateValue((value && value.from) || null));\n this._setToValue(this._coerceDateValue((value && value.to) || null));\n return true;\n }\n return false;\n }\n\n protected _emitOpenEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n protected _emitCloseEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CLOSE, undefined, false);\n }\n \n protected _onToday(): void {\n const today = new Date();\n const range = this._open ? new DateRange({ from: this._from || today, to: this._to || undefined }) : new DateRange({ from: today });\n if (!this._isDateRangeAcceptable(range)) {\n return;\n }\n this.value = range;\n this._onDateSelected({ date: today, range, selected: true, type: 'date' });\n this._adapter.setCalendarActiveDate(today);\n }\n\n protected _onClear(): void {\n this._onDateSelected({ date: null, range: new DateRange(), selected: false, type: 'date' });\n this._closeCalendar(true);\n }\n\n protected _getCurrentValue(): IDatePickerRange | null | undefined {\n return this._value;\n }\n\n private _formatToInputValue(): void {\n const inputValue = this._adapter.getToInputValue();\n if (inputValue) {\n const parsedDate = this._parseDateString(inputValue);\n if (isValidDate(parsedDate) && this._isDateValueAcceptable(parsedDate)) {\n const formattedDate = this._formatDate(parsedDate);\n if (formattedDate) {\n this._adapter.setToInputValue(formattedDate, this._notifyInputValueChanges);\n }\n } else {\n if (!this._allowInvalidDate) {\n this._adapter.setToInputValue('', this._notifyInputValueChanges);\n }\n }\n }\n }\n\n protected _setFormattedInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._from);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n private _setFormattedToInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._to);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setToInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n protected _isDateRangeAcceptable(value?: DateRange | null | undefined): boolean {\n if (!value?.to) {\n return true;\n }\n\n const passesMinDate = (): boolean => this._isDateValueAcceptable(value.from);\n const passesMaxDate = (): boolean => this._isDateValueAcceptable(value.to);\n const passesDateRange = (): boolean => value?.from && value?.to ? value.from.getTime() <= value.to.getTime() : true;\n\n return passesMinDate() && passesMaxDate() && passesDateRange();\n }\n\n protected _setValue(value: Date | null | undefined): void {\n if (this._isDateValueAcceptable(value)) {\n this._from = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.from = this._from;\n }\n }\n }\n\n private _setToValue(value: Date | null | undefined): void {\n if (this._isDateValueAcceptable(value)) {\n this._to = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.to = this._to;\n }\n }\n }\n\n protected _onDateSelected(event: ICalendarDateSelectEventData): void {\n const value = event.range;\n\n if (event.rangeSelectionState === 'to') {\n this._closeCalendar(true);\n }\n\n if (!this._emitChangeEvent(value ?? null)) {\n return;\n }\n\n const formattedFromValue = this._formatDate((value && value.from) || null);\n const formattedToValue = this._formatDate((value && value.to) || null);\n this._adapter.setInputValue(formattedFromValue, this._notifyInputValueChanges);\n this._adapter.setToInputValue(formattedToValue, this._notifyInputValueChanges);\n this._formatInputValue();\n this._formatToInputValue();\n\n this._from = (value && value.from) || null;\n this._to = (value && value.to) || null;\n\n if (!Platform.isMobile) {\n if (formattedToValue) {\n this._adapter.selectToInputText();\n } else {\n this._adapter.selectInputText();\n }\n }\n }\n\n protected override _applyMin(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMin();\n }\n\n protected override _applyMax(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMax();\n }\n\n protected override _initializeMask(): void {\n super._initializeMask();\n\n // We also need to initialize our mask for the \"to\" input\n if (this._masked) {\n const options: IDateInputMaskOptions = {\n showMaskFormat: this._showMaskFormat,\n pattern: this._maskFormat,\n onChange: (value: string) => this._handleToInput(value)\n };\n\n if (this._prepareMaskCallback) {\n options.prepareCallback = (value, masked, flags, maskInstance) => {\n return this._prepareMaskCallback.call(null, value, masked, flags, maskInstance);\n };\n }\n\n this._adapter.initializeToMask(options);\n }\n }\n\n protected _applyDisabledDates(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n }\n\n protected _applyDisabledDaysOfWeek(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(null, true);\n this._setFormattedToInputValue();\n }\n }\n\n private _onToInput(evt: Event): void {\n this._handleInput(this._adapter.getInputValue());\n }\n\n protected _handleInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._from) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _handleToInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitToInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._to) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n private _onToInputFocus(): void {\n this._adapter.selectToInputText();\n }\n\n private _onToInputBlur(evt: Event): void {\n this._formatToInputValue();\n if (this._open) {\n this._closeCalendar(true);\n }\n }\n\n protected _onInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._from)) {\n this.from = date;\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _onToInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._to)) {\n this.to = date;\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n public get value(): IDatePickerRange | null | undefined {\n return { from: this.from, to: this.to };\n }\n public set value(value: IDatePickerRange | null | undefined) {\n if (!value) {\n value = { from: null, to: null };\n }\n\n if (value.from === undefined) {\n value.from = null;\n }\n\n if (value.to === undefined) {\n value.to = null;\n }\n\n this.from = value.from;\n this.to = value.to;\n\n this._value = { from: this.from, to: this.to };\n }\n\n public get from(): Date | string | null | undefined {\n const date = this._getTypedValue(this._from);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set from(value: Date | string | null | undefined) {\n if (this._from !== value) {\n this._setValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ from: this._coerceDateValue(value) || undefined, to: this._coerceDateValue(this._to) || undefined }));\n }\n }\n }\n }\n\n public get to(): Date | string | null | undefined {\n const date = this._getTypedValue(this._to);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set to(value: Date | string | null | undefined) {\n if (this._to !== value) {\n this._setToValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedToInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ to: this._coerceDateValue(value) || undefined, from: this._coerceDateValue(this._from) || undefined }));\n }\n }\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconDateRange } from '@tylertech/tyler-icons/standard';\nimport { CalendarComponent } from '../calendar';\nimport { BaseDatePickerComponent, IBaseDatePickerComponent } from '../date-picker/base/base-date-picker';\nimport { BASE_DATE_PICKER_CONSTANTS } from '../date-picker/base/base-date-picker-constants';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { DateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\nimport { DateRangePickerFoundation } from './date-range-picker-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface IDateRangePickerComponent extends IBaseDatePickerComponent<IDatePickerRange> {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-date-range-picker': IDateRangePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-date-range-picker-change': CustomEvent<IDateRangePickerChangeEventData>;\n 'forge-date-range-picker-open': CustomEvent<void>;\n 'forge-date-range-picker-close': CustomEvent<void>;\n 'forge-date-range-picker-input': CustomEvent<string>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-date-range-picker>` element.\n * \n * @tag forge-date-range-picker\n */\n@CustomElement({\n name: DATE_RANGE_PICKER_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n CalendarComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class DateRangePickerComponent extends BaseDatePickerComponent<IDatePickerRange, IDatePickerRange, DateRangePickerFoundation> implements IDateRangePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(BASE_DATE_PICKER_CONSTANTS.observedAttributes),\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM,\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define(tylIconDateRange);\n attachShadowTemplate(this, template, styles);\n this._foundation = new DateRangePickerFoundation(new DateRangePickerAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM:\n this.from = newValue;\n return;\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO:\n this.to = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n /** Gets/sets the \"from\" date range value. */\n @FoundationProperty()\n public declare from: Date | string | null | undefined;\n\n /** Gets/sets the \"to\" date range value. */\n @FoundationProperty()\n public declare to: Date | string | null | undefined;\n}\n", "import { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions, IBaseComponentDelegateConfig } from '../core/delegates';\nimport { FieldDensityType } from '../field/field-constants';\nimport { ITextFieldComponent, TEXT_FIELD_CONSTANTS } from '../text-field';\nimport { IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport type DateRangePickerComponentDelegateProps = Partial<IDateRangePickerComponent>;\nexport interface IDateRangePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n useDropdownIcon?: boolean;\n fromPlaceholder?: string;\n toPlaceholder?: string;\n label?: string;\n required?: boolean;\n density?: FieldDensityType;\n}\nexport interface IDateRangePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {}\n\nexport class DateRangeComponentDelegate extends FormFieldComponentDelegate<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {\n private _textField: ITextFieldComponent;\n private _fromInput: HTMLInputElement;\n private _toInput: HTMLInputElement;\n\n constructor(config?: IDateRangePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IDateRangePickerComponent {\n const dateRangePicker = document.createElement(DATE_RANGE_PICKER_CONSTANTS.elementName) as IDateRangePickerComponent;\n this._attachTextField(dateRangePicker);\n return dateRangePicker;\n }\n\n public get fromInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-0]`) as HTMLInputElement;\n }\n\n public get toInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-1]`) as HTMLInputElement;\n }\n\n public get textField(): ITextFieldComponent {\n return this._textField;\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._textField.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textField.invalid = value;\n }\n\n public onChange(listener: (value: IDateRangePickerChangeEventData) => void): void {\n this._element.addEventListener(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, (evt: CustomEvent<IDateRangePickerChangeEventData>) => listener(evt.detail));\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusin', (evt: FocusEvent) => {\n const isFocusWithin = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusWithin) {\n listener(evt);\n }\n });\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusout', (evt: FocusEvent) => {\n const isFocusOutside = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusOutside) {\n listener(evt);\n }\n });\n }\n\n private _attachTextField(dateRangePicker: IDateRangePickerComponent): void {\n this._textField = document.createElement(TEXT_FIELD_CONSTANTS.elementName);\n\n if (this._config.options?.required) {\n this._textField.required = true;\n }\n if (this._config.options?.density) {\n this._textField.density = this._config.options.density;\n }\n\n this._fromInput = document.createElement('input');\n this._fromInput.type = 'text';\n this._fromInput.placeholder = this._config.options?.fromPlaceholder || 'From';\n this._textField.appendChild(this._fromInput);\n\n this._toInput = document.createElement('input');\n this._toInput.type = 'text';\n this._toInput.placeholder = this._config.options?.toPlaceholder || 'To';\n this._textField.appendChild(this._toInput);\n\n const label = document.createElement('label');\n label.textContent = this._config.options?.label || 'Choose date range';\n this._textField.appendChild(label);\n\n dateRangePicker.appendChild(this._textField);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DateRangePickerComponent } from './date-range-picker';\n\nexport * from './date-range-picker';\nexport * from './date-range-picker-adapter';\nexport * from './date-range-picker-constants';\nexport * from './date-range-picker-foundation';\nexport * from './date-range-picker-component-delegate';\n\nexport function defineDateRangePickerComponent(): void {\n defineCustomElement(DateRangePickerComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["elementName", "COMPONENT_NAME_PREFIX", "DatePickerRange", "range", "observedAttributes", "selectors", "events", "DATE_RANGE_PICKER_CONSTANTS", "DateRangePickerAdapter", "BaseDatePickerAdapter", "component", "DATE_RANGE_PICKER_CONSTANTS", "targetElement", "CalendarDropdown", "fromOptions", "DateInputMask", "toOptions", "input", "type", "listener", "capture", "_a", "context", "destroyListenerCb", "listenOwnProperty", "calendarConfig", "dropdownConfig", "id", "value", "emitEvents", "getActiveElement", "isDisabled", "data", "emitEvent", "createToggleElement", "action", "DateRangePickerFoundation", "BaseDatePickerFoundation", "adapter", "evt", "value", "emitOpenEvent", "currentValue", "force", "typedStartValue", "typedEndValue", "detail", "DatePickerRange", "DATE_RANGE_PICKER_CONSTANTS", "today", "range", "DateRange", "inputValue", "parsedDate", "isValidDate", "formattedDate", "suppressValueChanges", "passesMinDate", "passesMaxDate", "passesDateRange", "event", "formattedFromValue", "formattedToValue", "Platform", "options", "masked", "flags", "maskInstance", "sanitizedValue", "date", "isSameDate", "isDate", "template", "styles", "DateRangePickerComponent", "BaseDatePickerComponent", "IconRegistry", "tylIconDateRange", "attachShadowTemplate", "DateRangePickerFoundation", "DateRangePickerAdapter", "BASE_DATE_PICKER_CONSTANTS", "DATE_RANGE_PICKER_CONSTANTS", "name", "oldValue", "newValue", "__decorateClass", "FoundationProperty", "CustomElement", "PopupComponent", "CalendarComponent", "IconButtonComponent", "IconComponent", "DateRangeComponentDelegate", "FormFieldComponentDelegate", "config", "dateRangePicker", "DATE_RANGE_PICKER_CONSTANTS", "TEXT_FIELD_CONSTANTS", "value", "listener", "evt", "_a", "_b", "_c", "_d", "_e", "label", "defineDateRangePickerComponent", "defineCustomElement", "DateRangePickerComponent"]
|
|
7
7
|
}
|