@tylertech/forge 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -13
- package/dist/esm/accordion/index.js +39 -0
- package/dist/esm/accordion/index.js.map +7 -0
- package/dist/esm/app-bar/help-button/index.js +58 -0
- package/dist/esm/app-bar/help-button/index.js.map +7 -0
- package/dist/esm/app-bar/index.js +136 -0
- package/dist/esm/app-bar/index.js.map +7 -0
- package/dist/esm/app-bar/menu-button/index.js +41 -0
- package/dist/esm/app-bar/menu-button/index.js.map +7 -0
- package/dist/esm/app-bar/notification-button/index.js +46 -0
- package/dist/esm/app-bar/notification-button/index.js.map +7 -0
- package/dist/esm/app-bar/profile-button/index.js +51 -0
- package/dist/esm/app-bar/profile-button/index.js.map +7 -0
- package/dist/esm/app-bar/search/index.js +43 -0
- package/dist/esm/app-bar/search/index.js.map +7 -0
- package/dist/esm/autocomplete/index.js +77 -0
- package/dist/esm/autocomplete/index.js.map +7 -0
- package/dist/esm/avatar/index.js +33 -0
- package/dist/esm/avatar/index.js.map +7 -0
- package/dist/esm/backdrop/index.js +28 -0
- package/dist/esm/backdrop/index.js.map +7 -0
- package/dist/esm/badge/index.js +31 -0
- package/dist/esm/badge/index.js.map +7 -0
- package/dist/esm/banner/index.js +45 -0
- package/dist/esm/banner/index.js.map +7 -0
- package/dist/esm/bottom-sheet/index.js +45 -0
- package/dist/esm/bottom-sheet/index.js.map +7 -0
- package/dist/esm/busy-indicator/index.js +37 -0
- package/dist/esm/busy-indicator/index.js.map +7 -0
- package/dist/esm/button/index.js +29 -0
- package/dist/esm/button/index.js.map +7 -0
- package/dist/esm/button-toggle/button-toggle/index.js +33 -0
- package/dist/esm/button-toggle/button-toggle/index.js.map +7 -0
- package/dist/esm/button-toggle/button-toggle-group/index.js +32 -0
- package/dist/esm/button-toggle/button-toggle-group/index.js.map +7 -0
- package/dist/esm/button-toggle/index.js +46 -0
- package/dist/esm/button-toggle/index.js.map +7 -0
- package/dist/esm/calendar/calendar-dropdown/index.js +35 -0
- package/dist/esm/calendar/calendar-dropdown/index.js.map +7 -0
- package/dist/esm/calendar/calendar-menu/index.js +48 -0
- package/dist/esm/calendar/calendar-menu/index.js.map +7 -0
- package/dist/esm/calendar/core/index.js +13 -0
- package/dist/esm/calendar/core/index.js.map +7 -0
- package/dist/esm/calendar/index.js +199 -0
- package/dist/esm/calendar/index.js.map +7 -0
- package/dist/esm/card/index.js +22 -0
- package/dist/esm/card/index.js.map +7 -0
- package/dist/esm/checkbox/index.js +44 -0
- package/dist/esm/checkbox/index.js.map +7 -0
- package/dist/esm/chip-field/index.js +51 -0
- package/dist/esm/chip-field/index.js.map +7 -0
- package/dist/esm/chips/chip/index.js +42 -0
- package/dist/esm/chips/chip/index.js.map +7 -0
- package/dist/esm/chips/chip-set/index.js +42 -0
- package/dist/esm/chips/chip-set/index.js.map +7 -0
- package/dist/esm/chips/index.js +55 -0
- package/dist/esm/chips/index.js.map +7 -0
- package/dist/esm/chunks/chunk.2F6PST3N.js +476 -0
- package/dist/esm/chunks/chunk.2F6PST3N.js.map +7 -0
- package/dist/esm/chunks/chunk.2FXYTBYG.js +1450 -0
- package/dist/esm/chunks/chunk.2FXYTBYG.js.map +7 -0
- package/dist/esm/chunks/chunk.2LQMHAC7.js +187 -0
- package/dist/esm/chunks/chunk.2LQMHAC7.js.map +7 -0
- package/dist/esm/chunks/chunk.2LSEVYAC.js +342 -0
- package/dist/esm/chunks/chunk.2LSEVYAC.js.map +7 -0
- package/dist/esm/chunks/chunk.2NUAEZY7.js +221 -0
- package/dist/esm/chunks/chunk.2NUAEZY7.js.map +7 -0
- package/dist/esm/chunks/chunk.35U3UPDV.js +70 -0
- package/dist/esm/chunks/chunk.35U3UPDV.js.map +7 -0
- package/dist/esm/chunks/chunk.3KCCCXWS.js +344 -0
- package/dist/esm/chunks/chunk.3KCCCXWS.js.map +7 -0
- package/dist/esm/chunks/chunk.3NOZRZ7R.js +145 -0
- package/dist/esm/chunks/chunk.3NOZRZ7R.js.map +7 -0
- package/dist/esm/chunks/chunk.3ZKORL4I.js +212 -0
- package/dist/esm/chunks/chunk.3ZKORL4I.js.map +7 -0
- package/dist/esm/chunks/chunk.4BG22DGY.js +317 -0
- package/dist/esm/chunks/chunk.4BG22DGY.js.map +7 -0
- package/dist/esm/chunks/chunk.4HQ5VELO.js +793 -0
- package/dist/esm/chunks/chunk.4HQ5VELO.js.map +7 -0
- package/dist/esm/chunks/chunk.4JURZYE4.js +410 -0
- package/dist/esm/chunks/chunk.4JURZYE4.js.map +7 -0
- package/dist/esm/chunks/chunk.4UKSUUTX.js +296 -0
- package/dist/esm/chunks/chunk.4UKSUUTX.js.map +7 -0
- package/dist/esm/chunks/chunk.4V5O2CPU.js +417 -0
- package/dist/esm/chunks/chunk.4V5O2CPU.js.map +7 -0
- package/dist/esm/chunks/chunk.52F6VUCF.js +273 -0
- package/dist/esm/chunks/chunk.52F6VUCF.js.map +7 -0
- package/dist/esm/chunks/chunk.5EEEKOOK.js +552 -0
- package/dist/esm/chunks/chunk.5EEEKOOK.js.map +7 -0
- package/dist/esm/chunks/chunk.5NXVVSTU.js +243 -0
- package/dist/esm/chunks/chunk.5NXVVSTU.js.map +7 -0
- package/dist/esm/chunks/chunk.5VKAVHLM.js +610 -0
- package/dist/esm/chunks/chunk.5VKAVHLM.js.map +7 -0
- package/dist/esm/chunks/chunk.6KTLOA7V.js +6 -0
- package/dist/esm/chunks/chunk.6KTLOA7V.js.map +7 -0
- package/dist/esm/chunks/chunk.6V463G4I.js +105 -0
- package/dist/esm/chunks/chunk.6V463G4I.js.map +7 -0
- package/dist/esm/chunks/chunk.7FC5CPLE.js +603 -0
- package/dist/esm/chunks/chunk.7FC5CPLE.js.map +7 -0
- package/dist/esm/chunks/chunk.7G2S3DCM.js +458 -0
- package/dist/esm/chunks/chunk.7G2S3DCM.js.map +7 -0
- package/dist/esm/chunks/chunk.7I2XNJBL.js +593 -0
- package/dist/esm/chunks/chunk.7I2XNJBL.js.map +7 -0
- package/dist/esm/chunks/chunk.7KILTPJ6.js +72 -0
- package/dist/esm/chunks/chunk.7KILTPJ6.js.map +7 -0
- package/dist/esm/chunks/chunk.7XGNGXLR.js +648 -0
- package/dist/esm/chunks/chunk.7XGNGXLR.js.map +7 -0
- package/dist/esm/chunks/chunk.7Y4NHCJH.js +338 -0
- package/dist/esm/chunks/chunk.7Y4NHCJH.js.map +7 -0
- package/dist/esm/chunks/chunk.AHQ6QX3J.js +716 -0
- package/dist/esm/chunks/chunk.AHQ6QX3J.js.map +7 -0
- package/dist/esm/chunks/chunk.AYOZGYGO.js +21 -0
- package/dist/esm/chunks/chunk.AYOZGYGO.js.map +7 -0
- package/dist/esm/chunks/chunk.BKMWXPAS.js +439 -0
- package/dist/esm/chunks/chunk.BKMWXPAS.js.map +7 -0
- package/dist/esm/chunks/chunk.BOWCSPCH.js +2428 -0
- package/dist/esm/chunks/chunk.BOWCSPCH.js.map +7 -0
- package/dist/esm/chunks/chunk.BYN27JXZ.js +51 -0
- package/dist/esm/chunks/chunk.BYN27JXZ.js.map +7 -0
- package/dist/esm/chunks/chunk.BZPQIDQP.js +602 -0
- package/dist/esm/chunks/chunk.BZPQIDQP.js.map +7 -0
- package/dist/esm/chunks/chunk.C2MR3RDF.js +202 -0
- package/dist/esm/chunks/chunk.C2MR3RDF.js.map +7 -0
- package/dist/esm/chunks/chunk.C64YUJHS.js +55 -0
- package/dist/esm/chunks/chunk.C64YUJHS.js.map +7 -0
- package/dist/esm/chunks/chunk.CGHKW6S6.js +683 -0
- package/dist/esm/chunks/chunk.CGHKW6S6.js.map +7 -0
- package/dist/esm/chunks/chunk.CKS5A4YN.js +6 -0
- package/dist/esm/chunks/chunk.CKS5A4YN.js.map +7 -0
- package/dist/esm/chunks/chunk.COF6DD6T.js +293 -0
- package/dist/esm/chunks/chunk.COF6DD6T.js.map +7 -0
- package/dist/esm/chunks/chunk.D4XU5MZN.js +1203 -0
- package/dist/esm/chunks/chunk.D4XU5MZN.js.map +7 -0
- package/dist/esm/chunks/chunk.D5DMZ7ZG.js +350 -0
- package/dist/esm/chunks/chunk.D5DMZ7ZG.js.map +7 -0
- package/dist/esm/chunks/chunk.DB7ZQBES.js +244 -0
- package/dist/esm/chunks/chunk.DB7ZQBES.js.map +7 -0
- package/dist/esm/chunks/chunk.E4NCI7MS.js +6 -0
- package/dist/esm/chunks/chunk.E4NCI7MS.js.map +7 -0
- package/dist/esm/chunks/chunk.EA7XMXI5.js +200 -0
- package/dist/esm/chunks/chunk.EA7XMXI5.js.map +7 -0
- package/dist/esm/chunks/chunk.EARNUKJ2.js +401 -0
- package/dist/esm/chunks/chunk.EARNUKJ2.js.map +7 -0
- package/dist/esm/chunks/chunk.EKIW7VYG.js +419 -0
- package/dist/esm/chunks/chunk.EKIW7VYG.js.map +7 -0
- package/dist/esm/chunks/chunk.EL6B2ODN.js +52 -0
- package/dist/esm/chunks/chunk.EL6B2ODN.js.map +7 -0
- package/dist/esm/chunks/chunk.ETP6HSXO.js +513 -0
- package/dist/esm/chunks/chunk.ETP6HSXO.js.map +7 -0
- package/dist/esm/chunks/chunk.ETQIBLKP.js +978 -0
- package/dist/esm/chunks/chunk.ETQIBLKP.js.map +7 -0
- package/dist/esm/chunks/chunk.EWQENJ4W.js +505 -0
- package/dist/esm/chunks/chunk.EWQENJ4W.js.map +7 -0
- package/dist/esm/chunks/chunk.EY57VTRF.js +33 -0
- package/dist/esm/chunks/chunk.EY57VTRF.js.map +7 -0
- package/dist/esm/chunks/chunk.FBUQQD2T.js +732 -0
- package/dist/esm/chunks/chunk.FBUQQD2T.js.map +7 -0
- package/dist/esm/chunks/chunk.FMMPWQKC.js +439 -0
- package/dist/esm/chunks/chunk.FMMPWQKC.js.map +7 -0
- package/dist/esm/chunks/chunk.FWJ7SIFA.js +433 -0
- package/dist/esm/chunks/chunk.FWJ7SIFA.js.map +7 -0
- package/dist/esm/chunks/chunk.FZQCBRPK.js +6 -0
- package/dist/esm/chunks/chunk.FZQCBRPK.js.map +7 -0
- package/dist/esm/chunks/chunk.G6FY472A.js +658 -0
- package/dist/esm/chunks/chunk.G6FY472A.js.map +7 -0
- package/dist/esm/chunks/chunk.GS2AXUCN.js +150 -0
- package/dist/esm/chunks/chunk.GS2AXUCN.js.map +7 -0
- package/dist/esm/chunks/chunk.HHHMDDTU.js +297 -0
- package/dist/esm/chunks/chunk.HHHMDDTU.js.map +7 -0
- package/dist/esm/chunks/chunk.HZISALRH.js +20 -0
- package/dist/esm/chunks/chunk.HZISALRH.js.map +7 -0
- package/dist/esm/chunks/chunk.IBH5GL7A.js +258 -0
- package/dist/esm/chunks/chunk.IBH5GL7A.js.map +7 -0
- package/dist/esm/chunks/chunk.IWXT6VVJ.js +222 -0
- package/dist/esm/chunks/chunk.IWXT6VVJ.js.map +7 -0
- package/dist/esm/chunks/chunk.J6LOWXOG.js +654 -0
- package/dist/esm/chunks/chunk.J6LOWXOG.js.map +7 -0
- package/dist/esm/chunks/chunk.JICZQ2BO.js +168 -0
- package/dist/esm/chunks/chunk.JICZQ2BO.js.map +7 -0
- package/dist/esm/chunks/chunk.JKC5PU23.js +42 -0
- package/dist/esm/chunks/chunk.JKC5PU23.js.map +7 -0
- package/dist/esm/chunks/chunk.JQQOZMKQ.js +2994 -0
- package/dist/esm/chunks/chunk.JQQOZMKQ.js.map +7 -0
- package/dist/esm/chunks/chunk.JVQP6BJ3.js +1591 -0
- package/dist/esm/chunks/chunk.JVQP6BJ3.js.map +7 -0
- package/dist/esm/chunks/chunk.K2PCTUVN.js +139 -0
- package/dist/esm/chunks/chunk.K2PCTUVN.js.map +7 -0
- package/dist/esm/chunks/chunk.KCK3G74Y.js +634 -0
- package/dist/esm/chunks/chunk.KCK3G74Y.js.map +7 -0
- package/dist/esm/chunks/chunk.KI3IHPS2.js +801 -0
- package/dist/esm/chunks/chunk.KI3IHPS2.js.map +7 -0
- package/dist/esm/chunks/chunk.KRW2IAIU.js +445 -0
- package/dist/esm/chunks/chunk.KRW2IAIU.js.map +7 -0
- package/dist/esm/chunks/chunk.KZ2QNQK2.js +21 -0
- package/dist/esm/chunks/chunk.KZ2QNQK2.js.map +7 -0
- package/dist/esm/chunks/chunk.KZATVOA6.js +68 -0
- package/dist/esm/chunks/chunk.KZATVOA6.js.map +7 -0
- package/dist/esm/chunks/chunk.LCWRP2UI.js +59 -0
- package/dist/esm/chunks/chunk.LCWRP2UI.js.map +7 -0
- package/dist/esm/chunks/chunk.LM5TVNZY.js +71 -0
- package/dist/esm/chunks/chunk.LM5TVNZY.js.map +7 -0
- package/dist/esm/chunks/chunk.MAGJQ2PP.js +964 -0
- package/dist/esm/chunks/chunk.MAGJQ2PP.js.map +7 -0
- package/dist/esm/chunks/chunk.MEFT5FQC.js +158 -0
- package/dist/esm/chunks/chunk.MEFT5FQC.js.map +7 -0
- package/dist/esm/chunks/chunk.MHEJZJT3.js +6 -0
- package/dist/esm/chunks/chunk.MHEJZJT3.js.map +7 -0
- package/dist/esm/chunks/chunk.MMIZOYAS.js +147 -0
- package/dist/esm/chunks/chunk.MMIZOYAS.js.map +7 -0
- package/dist/esm/chunks/chunk.MNFGVNDI.js +6 -0
- package/dist/esm/chunks/chunk.MNFGVNDI.js.map +7 -0
- package/dist/esm/chunks/chunk.NQOD2XB3.js +840 -0
- package/dist/esm/chunks/chunk.NQOD2XB3.js.map +7 -0
- package/dist/esm/chunks/chunk.NRI7SWVX.js +1347 -0
- package/dist/esm/chunks/chunk.NRI7SWVX.js.map +7 -0
- package/dist/esm/chunks/chunk.NX5SKZLU.js +50 -0
- package/dist/esm/chunks/chunk.NX5SKZLU.js.map +7 -0
- package/dist/esm/chunks/chunk.O6UHX6FK.js +463 -0
- package/dist/esm/chunks/chunk.O6UHX6FK.js.map +7 -0
- package/dist/esm/chunks/chunk.OJI6ZRYW.js +561 -0
- package/dist/esm/chunks/chunk.OJI6ZRYW.js.map +7 -0
- package/dist/esm/chunks/chunk.OQRMHHPB.js +1335 -0
- package/dist/esm/chunks/chunk.OQRMHHPB.js.map +7 -0
- package/dist/esm/chunks/chunk.OYO6NUZY.js +52 -0
- package/dist/esm/chunks/chunk.OYO6NUZY.js.map +7 -0
- package/dist/esm/chunks/chunk.P43Z3YAS.js +507 -0
- package/dist/esm/chunks/chunk.P43Z3YAS.js.map +7 -0
- package/dist/esm/chunks/chunk.P7NOYP4O.js +73 -0
- package/dist/esm/chunks/chunk.P7NOYP4O.js.map +7 -0
- package/dist/esm/chunks/chunk.PBGL3BRX.js +27 -0
- package/dist/esm/chunks/chunk.PBGL3BRX.js.map +7 -0
- package/dist/esm/chunks/chunk.PCYIY5OY.js +461 -0
- package/dist/esm/chunks/chunk.PCYIY5OY.js.map +7 -0
- package/dist/esm/chunks/chunk.Q4YMHFRY.js +155 -0
- package/dist/esm/chunks/chunk.Q4YMHFRY.js.map +7 -0
- package/dist/esm/chunks/chunk.QD7EPCL6.js +144 -0
- package/dist/esm/chunks/chunk.QD7EPCL6.js.map +7 -0
- package/dist/esm/chunks/chunk.QQDDGRY6.js +6 -0
- package/dist/esm/chunks/chunk.QQDDGRY6.js.map +7 -0
- package/dist/esm/chunks/chunk.RNPIV3BY.js +540 -0
- package/dist/esm/chunks/chunk.RNPIV3BY.js.map +7 -0
- package/dist/esm/chunks/chunk.RR7HDQU6.js +236 -0
- package/dist/esm/chunks/chunk.RR7HDQU6.js.map +7 -0
- package/dist/esm/chunks/chunk.RV3E762Y.js +73 -0
- package/dist/esm/chunks/chunk.RV3E762Y.js.map +7 -0
- package/dist/esm/chunks/chunk.RWCC6E4O.js +52 -0
- package/dist/esm/chunks/chunk.RWCC6E4O.js.map +7 -0
- package/dist/esm/chunks/chunk.SJZ54RE3.js +56 -0
- package/dist/esm/chunks/chunk.SJZ54RE3.js.map +7 -0
- package/dist/esm/chunks/chunk.SKISCNSC.js +559 -0
- package/dist/esm/chunks/chunk.SKISCNSC.js.map +7 -0
- package/dist/esm/chunks/chunk.SKLCDWYQ.js +6 -0
- package/dist/esm/chunks/chunk.SKLCDWYQ.js.map +7 -0
- package/dist/esm/chunks/chunk.SNAZ6JSS.js +22 -0
- package/dist/esm/chunks/chunk.SNAZ6JSS.js.map +7 -0
- package/dist/esm/chunks/chunk.ST3R6JEE.js +73 -0
- package/dist/esm/chunks/chunk.ST3R6JEE.js.map +7 -0
- package/dist/esm/chunks/chunk.TLCGGWBO.js +6 -0
- package/dist/esm/chunks/chunk.TLCGGWBO.js.map +7 -0
- package/dist/esm/chunks/chunk.U35QQZVK.js +422 -0
- package/dist/esm/chunks/chunk.U35QQZVK.js.map +7 -0
- package/dist/esm/chunks/chunk.U6FJJGO3.js +6 -0
- package/dist/esm/chunks/chunk.U6FJJGO3.js.map +7 -0
- package/dist/esm/chunks/chunk.VAPJ75PS.js +21 -0
- package/dist/esm/chunks/chunk.VAPJ75PS.js.map +7 -0
- package/dist/esm/chunks/chunk.VHO7NUMI.js +37 -0
- package/dist/esm/chunks/chunk.VHO7NUMI.js.map +7 -0
- package/dist/esm/chunks/chunk.VK6LIH3B.js +13 -0
- package/dist/esm/chunks/chunk.VK6LIH3B.js.map +7 -0
- package/dist/esm/chunks/chunk.VTXXZ5KT.js +450 -0
- package/dist/esm/chunks/chunk.VTXXZ5KT.js.map +7 -0
- package/dist/esm/chunks/chunk.WAJDLUSQ.js +56 -0
- package/dist/esm/chunks/chunk.WAJDLUSQ.js.map +7 -0
- package/dist/esm/chunks/chunk.WF2MFLG4.js +6 -0
- package/dist/esm/chunks/chunk.WF2MFLG4.js.map +7 -0
- package/dist/esm/chunks/chunk.WINL2C7Q.js +6 -0
- package/dist/esm/chunks/chunk.WINL2C7Q.js.map +7 -0
- package/dist/esm/chunks/chunk.WIYLQTSX.js +3550 -0
- package/dist/esm/chunks/chunk.WIYLQTSX.js.map +7 -0
- package/dist/esm/chunks/chunk.WT4W2IFT.js +92 -0
- package/dist/esm/chunks/chunk.WT4W2IFT.js.map +7 -0
- package/dist/esm/chunks/chunk.WXFCZJJI.js +52 -0
- package/dist/esm/chunks/chunk.WXFCZJJI.js.map +7 -0
- package/dist/esm/chunks/chunk.XEF6G5NS.js +248 -0
- package/dist/esm/chunks/chunk.XEF6G5NS.js.map +7 -0
- package/dist/esm/chunks/chunk.XGMOOPIE.js +136 -0
- package/dist/esm/chunks/chunk.XGMOOPIE.js.map +7 -0
- package/dist/esm/chunks/chunk.XIDZXGD4.js +912 -0
- package/dist/esm/chunks/chunk.XIDZXGD4.js.map +7 -0
- package/dist/esm/chunks/chunk.XJVLHRVJ.js +59 -0
- package/dist/esm/chunks/chunk.XJVLHRVJ.js.map +7 -0
- package/dist/esm/chunks/chunk.XO3XVXWW.js +72 -0
- package/dist/esm/chunks/chunk.XO3XVXWW.js.map +7 -0
- package/dist/esm/chunks/chunk.XY3ZHN7Y.js +649 -0
- package/dist/esm/chunks/chunk.XY3ZHN7Y.js.map +7 -0
- package/dist/esm/chunks/chunk.Y2TDQIA4.js +307 -0
- package/dist/esm/chunks/chunk.Y2TDQIA4.js.map +7 -0
- package/dist/esm/chunks/chunk.YCW56AVX.js +176 -0
- package/dist/esm/chunks/chunk.YCW56AVX.js.map +7 -0
- package/dist/esm/chunks/chunk.YDPSV74L.js +742 -0
- package/dist/esm/chunks/chunk.YDPSV74L.js.map +7 -0
- package/dist/esm/chunks/chunk.YJ5X3WZ4.js +110 -0
- package/dist/esm/chunks/chunk.YJ5X3WZ4.js.map +7 -0
- package/dist/esm/chunks/chunk.ZABF5CI6.js +760 -0
- package/dist/esm/chunks/chunk.ZABF5CI6.js.map +7 -0
- package/dist/esm/chunks/chunk.ZG4NZM2P.js +173 -0
- package/dist/esm/chunks/chunk.ZG4NZM2P.js.map +7 -0
- package/dist/esm/chunks/chunk.ZUM5YLB2.js +291 -0
- package/dist/esm/chunks/chunk.ZUM5YLB2.js.map +7 -0
- package/dist/esm/circular-progress/index.js +28 -0
- package/dist/esm/circular-progress/index.js.map +7 -0
- package/dist/esm/color-picker/index.js +49 -0
- package/dist/esm/color-picker/index.js.map +7 -0
- package/dist/esm/core/base/index.js +21 -0
- package/dist/esm/core/base/index.js.map +7 -0
- package/dist/esm/core/delegates/index.js +20 -0
- package/dist/esm/core/delegates/index.js.map +7 -0
- package/dist/esm/core/index.js +83 -0
- package/dist/esm/core/index.js.map +7 -0
- package/dist/esm/core/mask/index.js +26 -0
- package/dist/esm/core/mask/index.js.map +7 -0
- package/dist/esm/core/utils/index.js +46 -0
- package/dist/esm/core/utils/index.js.map +7 -0
- package/dist/esm/date-picker/index.js +62 -0
- package/dist/esm/date-picker/index.js.map +7 -0
- package/dist/esm/date-range-picker/index.js +64 -0
- package/dist/esm/date-range-picker/index.js.map +7 -0
- package/dist/esm/dialog/index.js +44 -0
- package/dist/esm/dialog/index.js.map +7 -0
- package/dist/esm/divider/index.js +22 -0
- package/dist/esm/divider/index.js.map +7 -0
- package/dist/esm/drawer/base/index.js +25 -0
- package/dist/esm/drawer/base/index.js.map +7 -0
- package/dist/esm/drawer/drawer/index.js +25 -0
- package/dist/esm/drawer/drawer/index.js.map +7 -0
- package/dist/esm/drawer/index.js +56 -0
- package/dist/esm/drawer/index.js.map +7 -0
- package/dist/esm/drawer/mini-drawer/index.js +25 -0
- package/dist/esm/drawer/mini-drawer/index.js.map +7 -0
- package/dist/esm/drawer/modal-drawer/index.js +30 -0
- package/dist/esm/drawer/modal-drawer/index.js.map +7 -0
- package/dist/esm/expansion-panel/index.js +38 -0
- package/dist/esm/expansion-panel/index.js.map +7 -0
- package/dist/esm/file-picker/index.js +41 -0
- package/dist/esm/file-picker/index.js.map +7 -0
- package/dist/esm/floating-action-button/index.js +29 -0
- package/dist/esm/floating-action-button/index.js.map +7 -0
- package/dist/esm/floating-label/index.js +23 -0
- package/dist/esm/floating-label/index.js.map +7 -0
- package/dist/esm/icon/index.js +53 -0
- package/dist/esm/icon/index.js.map +7 -0
- package/dist/esm/icon-button/index.js +37 -0
- package/dist/esm/icon-button/index.js.map +7 -0
- package/dist/esm/index.js +1275 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/inline-message/index.js +22 -0
- package/dist/esm/inline-message/index.js.map +7 -0
- package/dist/esm/keyboard-shortcut/index.js +41 -0
- package/dist/esm/keyboard-shortcut/index.js.map +7 -0
- package/dist/esm/label-value/index.js +32 -0
- package/dist/esm/label-value/index.js.map +7 -0
- package/dist/esm/linear-progress/index.js +24 -0
- package/dist/esm/linear-progress/index.js.map +7 -0
- package/dist/esm/list/index.js +44 -0
- package/dist/esm/list/index.js.map +7 -0
- package/dist/esm/list/list/index.js +33 -0
- package/dist/esm/list/list/index.js.map +7 -0
- package/dist/esm/list/list-item/index.js +31 -0
- package/dist/esm/list/list-item/index.js.map +7 -0
- package/dist/esm/list-dropdown/index.js +55 -0
- package/dist/esm/list-dropdown/index.js.map +7 -0
- package/dist/esm/menu/index.js +53 -0
- package/dist/esm/menu/index.js.map +7 -0
- package/dist/esm/open-icon/index.js +37 -0
- package/dist/esm/open-icon/index.js.map +7 -0
- package/dist/esm/page-state/index.js +22 -0
- package/dist/esm/page-state/index.js.map +7 -0
- package/dist/esm/paginator/index.js +66 -0
- package/dist/esm/paginator/index.js.map +7 -0
- package/dist/esm/popup/index.js +31 -0
- package/dist/esm/popup/index.js.map +7 -0
- package/dist/esm/product-icon/index.js +29 -0
- package/dist/esm/product-icon/index.js.map +7 -0
- package/dist/esm/profile-card/index.js +37 -0
- package/dist/esm/profile-card/index.js.map +7 -0
- package/dist/esm/quantity-field/index.js +46 -0
- package/dist/esm/quantity-field/index.js.map +7 -0
- package/dist/esm/radio/index.js +26 -0
- package/dist/esm/radio/index.js.map +7 -0
- package/dist/esm/ripple/index.js +32 -0
- package/dist/esm/ripple/index.js.map +7 -0
- package/dist/esm/scaffold/index.js +22 -0
- package/dist/esm/scaffold/index.js.map +7 -0
- package/dist/esm/select/core/index.js +60 -0
- package/dist/esm/select/core/index.js.map +7 -0
- package/dist/esm/select/index.js +114 -0
- package/dist/esm/select/index.js.map +7 -0
- package/dist/esm/select/option/index.js +28 -0
- package/dist/esm/select/option/index.js.map +7 -0
- package/dist/esm/select/option-group/index.js +22 -0
- package/dist/esm/select/option-group/index.js.map +7 -0
- package/dist/esm/select/select/index.js +63 -0
- package/dist/esm/select/select/index.js.map +7 -0
- package/dist/esm/select/select-dropdown/index.js +59 -0
- package/dist/esm/select/select-dropdown/index.js.map +7 -0
- package/dist/esm/skeleton/index.js +22 -0
- package/dist/esm/skeleton/index.js.map +7 -0
- package/dist/esm/slider/index.js +35 -0
- package/dist/esm/slider/index.js.map +7 -0
- package/dist/esm/stepper/index.js +55 -0
- package/dist/esm/stepper/index.js.map +7 -0
- package/dist/esm/stepper/step/index.js +40 -0
- package/dist/esm/stepper/step/index.js.map +7 -0
- package/dist/esm/stepper/stepper/index.js +43 -0
- package/dist/esm/stepper/stepper/index.js.map +7 -0
- package/dist/esm/switch/index.js +34 -0
- package/dist/esm/switch/index.js.map +7 -0
- package/dist/esm/table/index.js +57 -0
- package/dist/esm/table/index.js.map +7 -0
- package/dist/esm/tabs/index.js +61 -0
- package/dist/esm/tabs/index.js.map +7 -0
- package/dist/esm/tabs/tab/index.js +33 -0
- package/dist/esm/tabs/tab/index.js.map +7 -0
- package/dist/esm/tabs/tab-bar/index.js +47 -0
- package/dist/esm/tabs/tab-bar/index.js.map +7 -0
- package/dist/esm/text-field/index.js +39 -0
- package/dist/esm/text-field/index.js.map +7 -0
- package/dist/esm/theme/index.js +17 -0
- package/dist/esm/theme/index.js.map +7 -0
- package/dist/esm/time-picker/index.js +92 -0
- package/dist/esm/time-picker/index.js.map +7 -0
- package/dist/esm/toast/index.js +42 -0
- package/dist/esm/toast/index.js.map +7 -0
- package/dist/esm/toolbar/index.js +22 -0
- package/dist/esm/toolbar/index.js.map +7 -0
- package/dist/esm/tooltip/index.js +34 -0
- package/dist/esm/tooltip/index.js.map +7 -0
- package/dist/esm/utils/index.js +17 -0
- package/dist/esm/utils/index.js.map +7 -0
- package/dist/esm/view-switcher/index.js +40 -0
- package/dist/esm/view-switcher/index.js.map +7 -0
- package/dist/esm/view-switcher/view/index.js +22 -0
- package/dist/esm/view-switcher/view/index.js.map +7 -0
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/bottom-sheet/bottom-sheet-constants.ts", "../../src/bottom-sheet/bottom-sheet-adapter.ts", "../../src/bottom-sheet/bottom-sheet-foundation.ts", "../../src/bottom-sheet/bottom-sheet.ts", "../../src/bottom-sheet/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { BACKDROP_CONSTANTS } from '../backdrop';\nimport { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}bottom-sheet`;\n\nconst classes = {\n DRAGGING: 'forge-bottom-sheet--dragging',\n FULLSCREEN: 'forge-bottom-sheet--fullscreen',\n OPEN: 'forge-bottom-sheet--open',\n SCROLLABLE: 'forge-bottom-sheet--scrollable'\n};\n\nconst attributes = {\n BACKDROP_CLOSE: 'backdrop-close',\n ESCAPE_CLOSE: 'escape-close',\n FULLSCREEN: 'fullscreen',\n INITIAL_FOCUS: `${elementName}-focus`,\n OPEN: `${elementName}-open`,\n SHOW_BACKDROP: 'show-backdrop'\n};\n\nconst selectors = {\n BACKDROP: BACKDROP_CONSTANTS.elementName,\n CONTAINER: '.forge-bottom-sheet',\n CONTENT_BODY: '[forge-bottom-sheet-body]',\n INITIAL_FOCUS: `[${attributes.INITIAL_FOCUS}]`,\n HOST: `[${elementName}-host]`\n};\n\nconst events = {\n BEFORE_CLOSE: `forge-bottom-sheet-before-close`,\n CLOSE: `forge-bottom-sheet-close`,\n OPEN: `forge-bottom-sheet-open`,\n READY: `forge-bottom-sheet-ready`,\n DRAG_START: `forge-bottom-sheet-drag-start`,\n DRAGGED: `forge-bottom-sheet-dragged`,\n DRAG_END: `forge-bottom-sheet-drag-end`,\n DRAG_CANCEL: `forge-bottom-sheet-drag-cancel`,\n FULLSCREEN: `forge-bottom-sheet-fullscreen`\n};\n\nexport const BOTTOM_SHEET_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events\n};\n\nexport interface IBottomSheetDragEventData {\n y: number;\n}\n\nexport interface IBottomSheetDragStartEventData extends IBottomSheetDragEventData {}\n\nexport interface IBottomSheetDragContext {\n top: number;\n height: number;\n}\n", "import { getShadowElement, removeElement, deepQuerySelectorAll, toggleClass } from '@tylertech/forge-core';\nimport { BACKDROP_CONSTANTS, IBackdropComponent } from '../backdrop';\nimport { CHECKBOX_CONSTANTS } from '../checkbox';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { ICON_BUTTON_CONSTANTS } from '../icon-button';\nimport { RADIO_CONSTANTS } from '../radio';\nimport { SWITCH_CONSTANTS } from '../switch';\nimport { IBottomSheetComponent } from './bottom-sheet';\nimport { BOTTOM_SHEET_CONSTANTS } from './bottom-sheet-constants';\n\nexport interface IBottomSheetAdapter extends IBaseAdapter {\n initializeAccessibility(): void;\n setVisibility(visible: boolean): void;\n attach(): void;\n detach(): void;\n registerTransitionEndHandler: (handler: (evt: TransitionEvent) => void) => void;\n deregisterTransitionEndHandler: (handler: (evt: TransitionEvent) => void) => void;\n setBodyListener(type: string, listener: (evt: Event) => void, options?: AddEventListenerOptions): void;\n removeBodyListener(type: string, listener: (evt: Event) => void): void;\n setDocumentListener(type: string, listener: (evt: Event) => void): void;\n removeDocumentListener(type: string, listener: (evt: Event) => void): void;\n registerBackdropClickHandler: (handler: (evt: CustomEvent) => void) => void;\n deregisterBackdropClickHandler: (handler: (evt: CustomEvent) => void) => void;\n getOpenBottomSheets: (selector: string) => NodeListOf<HTMLElement>;\n trySetInitialFocus: () => void;\n isScrollable(): boolean;\n isContentChild(el: HTMLElement): boolean;\n initScrollable(): void;\n setDragging(isDragging: boolean): void;\n setBackdropVisiblity(value: boolean): void;\n setFullscreen(value: boolean): void;\n tryLayoutChildren(): void;\n setContainerHeight(height: number | null): void;\n getContainerBounds(): DOMRect;\n setDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;\n removeDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;\n setBodyScrollHandler(listener: (evt: Event) => void): void;\n}\n\n/**\n * Provides facilities for interacting with the internal DOM of `BottomSheetComponent`.\n */\nexport class BottomSheetAdapter extends BaseAdapter<IBottomSheetComponent> implements IBottomSheetAdapter {\n private _backdropElement: IBackdropComponent;\n private _containerElement: HTMLElement;\n\n constructor(component: IBottomSheetComponent) {\n super(component);\n this._backdropElement = getShadowElement(component, BOTTOM_SHEET_CONSTANTS.selectors.BACKDROP) as IBackdropComponent;\n this._containerElement = getShadowElement(component, BOTTOM_SHEET_CONSTANTS.selectors.CONTAINER);\n }\n\n public initializeAccessibility(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'dialog');\n this._component.setAttribute('aria-modal', 'true');\n }\n }\n\n public setVisibility(visible: boolean): void {\n toggleClass(this._containerElement, visible, BOTTOM_SHEET_CONSTANTS.classes.OPEN);\n }\n\n public attach(): void {\n const hostElement = document.querySelector(BOTTOM_SHEET_CONSTANTS.selectors.HOST) || document.body;\n hostElement.appendChild(this._component);\n }\n\n public detach(): void {\n removeElement(this._component);\n }\n\n public registerTransitionEndHandler(handler: (evt: TransitionEvent) => void): void {\n this._containerElement.addEventListener('transitionend', handler);\n }\n\n public deregisterTransitionEndHandler(handler: (evt: TransitionEvent) => void): void {\n this._containerElement.removeEventListener('transitionend', handler);\n }\n\n public setBodyListener(type: string, listener: (evt: Event) => void, options?: AddEventListenerOptions): void {\n document.body.addEventListener(type, listener, options);\n }\n\n public removeBodyListener(type: string, listener: (evt: Event) => void): void {\n document.body.removeEventListener(type, listener);\n }\n\n public setDocumentListener(type: string, listener: (evt: Event) => void): void {\n document.addEventListener(type, listener);\n }\n\n public removeDocumentListener(type: string, listener: (evt: Event) => void): void {\n document.removeEventListener(type, listener);\n }\n\n public registerBackdropClickHandler(handler: (evt: CustomEvent) => void): void {\n this._backdropElement.addEventListener(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, handler);\n }\n\n public deregisterBackdropClickHandler(handler: (evt: CustomEvent) => void): void {\n this._backdropElement.removeEventListener(BACKDROP_CONSTANTS.events.BACKDROP_CLICK, handler);\n }\n\n public getOpenBottomSheets(selector: string): NodeListOf<HTMLElement> {\n return document.querySelectorAll(selector);\n }\n\n public trySetInitialFocus(): void {\n const elements = deepQuerySelectorAll(this._component, BOTTOM_SHEET_CONSTANTS.selectors.INITIAL_FOCUS);\n if (elements && elements.length) {\n const initialElement = elements[elements.length - 1] as HTMLElement;\n initialElement.focus();\n }\n }\n\n public isScrollable(): boolean {\n const contentElement = this._getContentElement();\n return contentElement ? contentElement.scrollHeight > contentElement.offsetHeight : false;\n }\n\n public isContentChild(el: HTMLElement): boolean {\n const contentElement = this._getContentElement();\n return contentElement ? contentElement.contains(el) : false;\n }\n\n public initScrollable(): void {\n const isScrollable = this.isScrollable();\n toggleClass(this._component, isScrollable, BOTTOM_SHEET_CONSTANTS.classes.SCROLLABLE);\n toggleClass(this._containerElement, isScrollable, BOTTOM_SHEET_CONSTANTS.classes.SCROLLABLE);\n }\n\n public setDragging(isDragging: boolean): void {\n toggleClass(this._containerElement, isDragging, BOTTOM_SHEET_CONSTANTS.classes.DRAGGING);\n toggleClass(this._component, isDragging, BOTTOM_SHEET_CONSTANTS.classes.DRAGGING);\n }\n\n public setBackdropVisiblity(value: boolean): void {\n this._backdropElement.hidden = !value;\n }\n\n public setFullscreen(value: boolean): void {\n toggleClass(this._containerElement, value, BOTTOM_SHEET_CONSTANTS.classes.FULLSCREEN);\n }\n\n public tryLayoutChildren(): void {\n const layoutChildren = [ICON_BUTTON_CONSTANTS.elementName, SWITCH_CONSTANTS.elementName, CHECKBOX_CONSTANTS.elementName, RADIO_CONSTANTS.elementName];\n const commonLayoutElements = Array.from(this._component.querySelectorAll(layoutChildren.join(','))) as any[];\n commonLayoutElements.filter(el => typeof el.layout === 'function').forEach(el => el.layout());\n }\n\n public setContainerHeight(height: number | null): void {\n if (height !== null) {\n const percent = Math.min(100, 100 * height / window.innerHeight);\n this._containerElement.style.maxHeight = `${percent}%`;\n } else {\n this._containerElement.style.removeProperty('max-height');\n }\n }\n\n public getContainerBounds(): DOMRect {\n return this._containerElement.getBoundingClientRect() as DOMRect;\n }\n\n public setDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void {\n this._containerElement.addEventListener(type, listener);\n }\n\n public removeDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void {\n this._containerElement.removeEventListener(type, listener);\n }\n\n public setBodyScrollHandler(listener: (evt: MouseEvent) => void): void {\n const contentElement = this._getContentElement();\n if (contentElement) {\n contentElement.addEventListener('scroll', listener);\n }\n }\n\n private _getContentElement(): HTMLElement | null {\n const contentElements = Array.from(deepQuerySelectorAll(this._component, BOTTOM_SHEET_CONSTANTS.selectors.CONTENT_BODY, false)) as HTMLElement[];\n return contentElements.length ? contentElements[0] : null;\n }\n}\n", "import { ICustomElementFoundation, getEventPath } from '@tylertech/forge-core';\n\nimport { IBottomSheetAdapter } from './bottom-sheet-adapter';\nimport { BOTTOM_SHEET_CONSTANTS, IBottomSheetDragContext, IBottomSheetDragStartEventData } from './bottom-sheet-constants';\n\nexport interface IBottomSheetFoundation extends ICustomElementFoundation {\n backdropClose: boolean;\n escapeClose: boolean;\n open: boolean;\n fullscreen: boolean;\n showBackdrop: boolean;\n openCallback: () => void | Promise<void>;\n closeCallback: () => void | Promise<void>;\n beforeCloseCallback: () => boolean | Promise<boolean>;\n}\n\nexport class BottomSheetFoundation implements IBottomSheetFoundation {\n private _open = false;\n private _backdropClose = true;\n private _escapeClose = true;\n private _fullscreen = false;\n private _showBackdrop = false;\n private _openCallback: () => void | Promise<void>;\n private _closeCallback: () => void | Promise<void>;\n private _beforeCloseCallback: () => boolean | Promise<boolean>;\n private _openTransitionEndHandler: (evt: TransitionEvent) => void;\n private _closeTransitionEndHandler: (evt: TransitionEvent) => void;\n private _documentKeydownHandler: (evt: KeyboardEvent) => void;\n private _backdropClickHandler: (evt: CustomEvent) => void;\n private _isDragging = false;\n private _dragContext: IBottomSheetDragContext | undefined;\n private _lastPosition: { y: number; clientY: number } | undefined;\n private _bodyScrollHandler = (): void => this._onBodyScroll();\n private _dragStartHandler = ($event: MouseEvent): void => this._onDragStart($event);\n private _dragMoveHandler = ($event: MouseEvent): void => this._onDragMove($event);\n private _dragEndHandler = (): void => this._onDragEnd();\n private _dragCancelHandler = (): void => this._onDragCancel();\n\n constructor(public _adapter: IBottomSheetAdapter) {\n this._openTransitionEndHandler = (_evt: TransitionEvent) => this._onOpenTransitionEnd();\n this._closeTransitionEndHandler = (_evt: TransitionEvent) => this._onCloseTransitionEnd();\n this._documentKeydownHandler = (evt: KeyboardEvent) => this._onDocumentKeydown(evt);\n this._backdropClickHandler = (evt: CustomEvent) => this._onBackdropClick(evt);\n }\n\n public initialize(): void {\n this._adapter.initializeAccessibility();\n }\n\n public destroy(): void {\n if (this._open) {\n this._adapter.deregisterTransitionEndHandler(this._openTransitionEndHandler);\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n }\n }\n\n private _setOpen(open: boolean): void {\n this._open = open;\n if (this._open) {\n this._openBottomSheet();\n } else {\n this._closeBottomSheet();\n }\n this._adapter.toggleHostAttribute(BOTTOM_SHEET_CONSTANTS.attributes.OPEN, this._open);\n }\n\n private _openBottomSheet(): void {\n this._adapter.attach();\n this._adapter.setBodyAttribute(BOTTOM_SHEET_CONSTANTS.attributes.OPEN, 'true');\n this._adapter.registerTransitionEndHandler(this._openTransitionEndHandler);\n this._setDocumentKeydownListener(this._escapeClose);\n this._setBackdropClickListener(this._backdropClose);\n\n // Ensure transitions are triggered properly\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n this._adapter.setVisibility(true);\n this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.OPEN);\n this._adapter.trySetInitialFocus();\n this._adapter.initScrollable();\n });\n });\n }\n\n private _closeBottomSheet(): void {\n this._adapter.deregisterTransitionEndHandler(this._openTransitionEndHandler);\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n this._adapter.registerTransitionEndHandler(this._closeTransitionEndHandler);\n\n this._adapter.setVisibility(false);\n }\n\n private _onCloseTransitionEnd(): void {\n this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.CLOSE);\n this._adapter.detach();\n const openBottomSheets = this._adapter.getOpenBottomSheets(BOTTOM_SHEET_CONSTANTS.elementName);\n if (!openBottomSheets.length) {\n this._adapter.removeBodyAttribute(BOTTOM_SHEET_CONSTANTS.attributes.OPEN);\n }\n }\n\n private _onOpenTransitionEnd(): void {\n if (!this._open) {\n return;\n }\n this._adapter.deregisterTransitionEndHandler(this._openTransitionEndHandler);\n this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.READY);\n this._adapter.tryLayoutChildren();\n if (this._adapter.isScrollable()) {\n this._initScrollableHandlers();\n }\n }\n\n private _onDocumentKeydown(evt: KeyboardEvent): void {\n evt.stopPropagation();\n if (evt.key && (evt.key === 'Escape' || evt.key === 'Esc')) {\n this._tryClose();\n }\n }\n\n private _onBackdropClick(evt: CustomEvent): void {\n evt.stopPropagation();\n this._tryClose();\n }\n\n private async _tryClose(): Promise<void> {\n const isCancelled = !this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.BEFORE_CLOSE, undefined, undefined, true);\n if (isCancelled) {\n return;\n }\n\n if (!this._beforeCloseCallback) {\n this.open = false;\n return;\n }\n\n try {\n const shouldClose = await Promise.resolve(this._beforeCloseCallback());\n if (shouldClose) {\n this.open = false;\n return;\n }\n } catch (err) {\n return;\n }\n }\n\n private _setBackdropClickListener(attach: boolean): void {\n if (!this._open) {\n return;\n }\n\n if (attach) {\n this._adapter.registerBackdropClickHandler(this._backdropClickHandler);\n } else {\n this._adapter.deregisterBackdropClickHandler(this._backdropClickHandler);\n }\n }\n\n private _setDocumentKeydownListener(attach: boolean): void {\n if (!this._open) {\n return;\n }\n\n if (attach) {\n this._adapter.addDocumentListener('keydown', this._documentKeydownHandler);\n } else {\n this._adapter.removeDocumentListener('keydown', this._documentKeydownHandler);\n }\n }\n\n /** Controls whether clicking the backdrop closes the bottom sheet or not. */\n public set backdropClose(value: boolean) {\n value = Boolean(value);\n if (this._backdropClose !== value) {\n this._backdropClose = value;\n this._setBackdropClickListener(this._backdropClose);\n this._adapter.toggleHostAttribute(BOTTOM_SHEET_CONSTANTS.attributes.BACKDROP_CLOSE, this._backdropClose);\n }\n }\n public get backdropClose(): boolean {\n return this._backdropClose;\n }\n\n /** Controls whether pressing the escape key closes the sheet or not. */\n public set escapeClose(value: boolean) {\n value = Boolean(value);\n if (this._escapeClose !== value) {\n this._escapeClose = value;\n this._setDocumentKeydownListener(this._escapeClose);\n this._adapter.toggleHostAttribute(BOTTOM_SHEET_CONSTANTS.attributes.ESCAPE_CLOSE, this._escapeClose);\n }\n }\n public get escapeClose(): boolean {\n return this._escapeClose;\n }\n\n public get open(): boolean {\n return this._open;\n }\n\n public set open(value: boolean) {\n if (this._open !== value) {\n value = Boolean(value);\n if (value !== this._open) {\n const callback = value ? this._openCallback : this._closeCallback;\n if (callback) {\n Promise.resolve(callback())\n .then(() => {\n this._setOpen(value);\n })\n .catch(() => { });\n } else {\n this._setOpen(value);\n }\n }\n }\n }\n\n public get fullscreen(): boolean {\n return this._fullscreen;\n }\n public set fullscreen(value: boolean) {\n if (this._fullscreen !== value) {\n this._fullscreen = value;\n this._adapter.setFullscreen(this._fullscreen);\n this._adapter.toggleHostAttribute(BOTTOM_SHEET_CONSTANTS.attributes.FULLSCREEN, this._fullscreen);\n }\n }\n\n public get showBackdrop(): boolean {\n return this._showBackdrop;\n }\n public set showBackdrop(value: boolean) {\n if (this._showBackdrop !== value) {\n this._showBackdrop = value;\n this._adapter.setBackdropVisiblity(value);\n this._adapter.toggleHostAttribute(BOTTOM_SHEET_CONSTANTS.attributes.SHOW_BACKDROP, this._showBackdrop);\n }\n }\n\n public get openCallback(): () => void | Promise<void> {\n return this._openCallback;\n }\n public set openCallback(callback: () => void | Promise<void>) {\n this._openCallback = callback;\n }\n\n public get closeCallback(): () => void | Promise<void> {\n return this._closeCallback;\n }\n public set closeCallback(callback: () => void | Promise<void>) {\n this._closeCallback = callback;\n }\n\n public get beforeCloseCallback(): () => boolean | Promise<boolean> {\n return this._beforeCloseCallback;\n }\n public set beforeCloseCallback(callback: () => boolean | Promise<boolean>) {\n this._beforeCloseCallback = callback;\n }\n\n /** If scrollable, allow drag to/from fullscreen, and make fullscreen on scroll. */\n private _initScrollableHandlers(): void {\n if (!this._fullscreen && this._adapter.isScrollable()) {\n this._adapter.setDragTargetHandler('mousedown', this._dragStartHandler);\n this._adapter.setDragTargetHandler('touchstart', this._dragStartHandler);\n this._adapter.setBodyScrollHandler(this._bodyScrollHandler);\n }\n }\n\n private _onBodyScroll(): void {\n if (!this._fullscreen && !this._isDragging) {\n this.fullscreen = true;\n this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.FULLSCREEN, this._fullscreen);\n }\n }\n\n private _onDragStart(evt: MouseEvent | TouchEvent): void {\n if (this._fullscreen) {\n const eventPath = getEventPath(evt);\n const isWithinScrollContainer = this._adapter.isScrollable() && this._adapter.isContentChild(eventPath[0]);\n if (isWithinScrollContainer) {\n // We ignore drag events that originate from within the scrollable content when in full screen mode (to allow for scroll interactions)\n return;\n }\n }\n\n evt.stopPropagation();\n const bounds = this._adapter.getContainerBounds();\n const clientY = evt instanceof MouseEvent ? evt.clientY : evt.touches[0].clientY;\n this._dragContext = {\n top: clientY - bounds.top,\n height: bounds.height\n };\n this._adapter.setBodyListener('mousemove', this._dragMoveHandler, { passive: false });\n this._adapter.setBodyListener('touchmove', this._dragMoveHandler, { passive: false });\n this._adapter.setBodyListener('mouseup', this._dragEndHandler);\n this._adapter.setBodyListener('touchend', this._dragEndHandler);\n this._adapter.setBodyListener('touchcancel', this._dragCancelHandler);\n }\n\n private _onDragMove(evt: MouseEvent | TouchEvent): void {\n evt.stopPropagation();\n evt.preventDefault();\n if (!this._dragContext) {\n return;\n }\n const clientY = evt instanceof MouseEvent ? evt.clientY : evt.touches[0].clientY;\n const height = { y: window.innerHeight - clientY + this._dragContext.top };\n\n // If this is the beginning of the move sequence, we emit the start event (to allow for preventing default) and\n // then update the surface position if not prevented\n if (!this._isDragging) {\n this._isDragging = true;\n const canDrag = this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.DRAG_START, height as IBottomSheetDragStartEventData, true, true);\n if (!canDrag) {\n return;\n }\n this._adapter.setDragging(true);\n }\n\n // If not fullscreen, clamp to minimum of original height.\n const newPosition = this._fullscreen ? height : { y: Math.max(height.y, this._dragContext.height) };\n\n // Only update the position if it actually changed\n if (!this._lastPosition || newPosition.y !== this._lastPosition.y) {\n const canMove = this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.DRAGGED, newPosition as IBottomSheetDragStartEventData, true, true);\n if (canMove) {\n this._lastPosition = { ...newPosition, clientY };\n this._adapter.setContainerHeight(newPosition.y);\n }\n }\n }\n\n private _onDragEnd(): void {\n if (this._lastPosition) {\n const clientY = this._lastPosition.clientY;\n const dragContext = this._dragContext;\n if (dragContext) {\n if (this._fullscreen && clientY > 0) {\n this.fullscreen = false;\n this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.FULLSCREEN, this._fullscreen);\n } else if (!this._fullscreen && clientY < dragContext.height + dragContext.top) {\n this.fullscreen = true;\n this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.FULLSCREEN, this._fullscreen);\n }\n }\n }\n if (this._isDragging) {\n this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.DRAG_END);\n }\n this._dragComplete();\n }\n\n private _onDragCancel(): void {\n if (this._isDragging) {\n this._adapter.emitHostEvent(BOTTOM_SHEET_CONSTANTS.events.DRAG_CANCEL);\n }\n this._dragComplete();\n }\n\n private _dragComplete(): void {\n this._adapter.setDragging(false);\n this._adapter.removeBodyListener('mousemove', this._dragMoveHandler);\n this._adapter.removeBodyListener('touchmove', this._dragMoveHandler);\n this._adapter.removeBodyListener('mouseup', this._dragEndHandler);\n this._adapter.removeBodyListener('touchend', this._dragEndHandler);\n this._adapter.removeBodyListener('touchcancel', this._dragCancelHandler);\n this._adapter.setContainerHeight(null);\n this._lastPosition = undefined;\n this._dragContext = undefined;\n this._isDragging = false;\n }\n}\n", "import { attachShadowTemplate, CustomElement, FoundationProperty, ICustomElement, upgradeProperty, coerceBoolean } from '@tylertech/forge-core';\n\nimport { BackdropComponent } from '../backdrop';\nimport { BottomSheetAdapter } from './bottom-sheet-adapter';\nimport { BOTTOM_SHEET_CONSTANTS, IBottomSheetDragEventData, IBottomSheetDragStartEventData } from './bottom-sheet-constants';\nimport { BottomSheetFoundation } from './bottom-sheet-foundation';\n\nconst template = '<template><forge-backdrop hidden part=\\\"backdrop\\\"></forge-backdrop><div class=\\\"forge-bottom-sheet\\\" part=\\\"root\\\"><slot></slot></div></template>';\nconst styles = '.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.forge-bottom-sheet{background-color:#fff;background-color:var(--mdc-theme-surface,#fff);-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);border-radius:4px 4px 0 0;border-radius:var(--forge-bottom-sheet-border-radius,4px 4px 0 0);max-width:50%;max-width:var(--forge-bottom-sheet-desktop-max-width,50%);-webkit-box-sizing:border-box;box-sizing:border-box;position:fixed;bottom:0;right:0;left:0;max-height:50%;margin:0 auto;display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:max-height var(--forge-bottom-sheet-transition-duration, 250ms) ease-in,-webkit-transform var(--forge-bottom-sheet-transition-duration-close, 200ms) cubic-bezier(.4, 0, .2, 1);transition:max-height var(--forge-bottom-sheet-transition-duration, 250ms) ease-in,-webkit-transform var(--forge-bottom-sheet-transition-duration-close, 200ms) cubic-bezier(.4, 0, .2, 1);transition:max-height var(--forge-bottom-sheet-transition-duration, 250ms) ease-in,transform var(--forge-bottom-sheet-transition-duration-close, 200ms) cubic-bezier(.4, 0, .2, 1);transition:max-height var(--forge-bottom-sheet-transition-duration, 250ms) ease-in,transform var(--forge-bottom-sheet-transition-duration-close, 200ms) cubic-bezier(.4, 0, .2, 1),-webkit-transform var(--forge-bottom-sheet-transition-duration-close, 200ms) cubic-bezier(.4, 0, .2, 1)}@media (max-width:600px){.forge-bottom-sheet{max-width:100%;width:100%;margin:0;border-radius:0}}.forge-bottom-sheet--open{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition-duration:var(--forge-bottom-sheet-transition-duration, 250ms);transition-duration:var(--forge-bottom-sheet-transition-duration, 250ms)}.forge-bottom-sheet--fullscreen.forge-bottom-sheet--open{height:100%;max-height:100%;-webkit-transition:max-height var(--forge-bottom-sheet-transition-duration, 250ms) ease-in;transition:max-height var(--forge-bottom-sheet-transition-duration, 250ms) ease-in}.forge-bottom-sheet--dragging{-webkit-transition:none!important;transition:none!important}.forge-bottom-sheet--scrollable{height:100%}:host{z-index:8;z-index:var(--forge-z-index-dialog,8);position:fixed}:host forge-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;position:fixed}:host([hidden]){display:none}';\n\nexport interface IBottomSheetComponent extends ICustomElement {\n showBackdrop: boolean;\n backdropClose: boolean;\n escapeClose: boolean;\n open: boolean;\n fullscreen: boolean;\n openCallback: () => void | Promise<void>;\n closeCallback: () => void | Promise<void>;\n beforeCloseCallback: () => boolean | Promise<boolean>;\n}\n\ndeclare global {\n // tslint:disable-next-line: interface-name\n interface HTMLElementTagNameMap {\n 'forge-bottom-sheet': IBottomSheetComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-bottom-sheet-open': CustomEvent<void>;\n 'forge-bottom-sheet-close': CustomEvent<void>;\n 'forge-bottom-sheet-before-close': CustomEvent<void>;\n 'forge-bottom-sheet-before-open': CustomEvent<void>;\n 'forge-bottom-sheet-ready': CustomEvent<void>;\n 'forge-bottom-sheet-drag-start': CustomEvent<IBottomSheetDragStartEventData>;\n 'forge-bottom-sheet-dragged': CustomEvent<IBottomSheetDragEventData>;\n 'forge-bottom-sheet-drag-end': CustomEvent<void>;\n 'forge-bottom-sheet-drag-cancel': CustomEvent<void>;\n 'forge-bottom-sheet-fullscreen': CustomEvent<boolean>;\n }\n}\n\n@CustomElement({\n name: BOTTOM_SHEET_CONSTANTS.elementName,\n dependencies: [BackdropComponent]\n})\nexport class BottomSheetComponent extends HTMLElement implements IBottomSheetComponent {\n public static get observedAttributes(): string[] {\n return [\n BOTTOM_SHEET_CONSTANTS.attributes.BACKDROP_CLOSE,\n BOTTOM_SHEET_CONSTANTS.attributes.ESCAPE_CLOSE,\n BOTTOM_SHEET_CONSTANTS.attributes.OPEN,\n BOTTOM_SHEET_CONSTANTS.attributes.FULLSCREEN,\n BOTTOM_SHEET_CONSTANTS.attributes.SHOW_BACKDROP\n ];\n }\n\n private _foundation: BottomSheetFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new BottomSheetFoundation(new BottomSheetAdapter(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 BOTTOM_SHEET_CONSTANTS.attributes.BACKDROP_CLOSE:\n this.backdropClose = coerceBoolean(newValue);\n break;\n case BOTTOM_SHEET_CONSTANTS.attributes.ESCAPE_CLOSE:\n this.escapeClose = coerceBoolean(newValue);\n break;\n case BOTTOM_SHEET_CONSTANTS.attributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case BOTTOM_SHEET_CONSTANTS.attributes.FULLSCREEN:\n this.fullscreen = coerceBoolean(newValue);\n break;\n case BOTTOM_SHEET_CONSTANTS.attributes.SHOW_BACKDROP:\n this.showBackdrop = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Controls whether clicking the backdrop closes the bottom-sheet or not. Default is true. */\n @FoundationProperty()\n public backdropClose: boolean;\n\n /** Controls whether pressing the escape key closes the bottom-sheet or not. Default is true. */\n @FoundationProperty()\n public escapeClose: boolean;\n\n /** Controls whether the bottom-sheet is open or not. Default is false. */\n @FoundationProperty()\n public open: boolean;\n\n /** Controls whether the bottom-sheet is full screen or not. Default is false. */\n @FoundationProperty()\n public fullscreen: boolean;\n\n /** Shows a backdrop to prevent interacting with other content until the bottom sheet is dismissed. Default is false. */\n @FoundationProperty()\n public showBackdrop: boolean;\n\n /** The function to call when the bottom-sheet wants to open. */\n @FoundationProperty()\n public openCallback: () => void | Promise<void>;\n\n /** the function to call when the bottom-sheet wants to close. */\n @FoundationProperty()\n public closeCallback: () => void | Promise<void>;\n\n /** the function to call when the bottom-sheet wants to close. */\n @FoundationProperty()\n public beforeCloseCallback: () => boolean | Promise<boolean>;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { BottomSheetComponent } from './bottom-sheet';\n\nexport * from './bottom-sheet-adapter';\nexport * from './bottom-sheet-constants';\nexport * from './bottom-sheet-foundation';\nexport * from './bottom-sheet';\n\nexport function defineBottomSheetComponent(): void {\n defineCustomElement(BottomSheetComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
ViewComponent
|
|
8
|
+
} from "./chunk.RWCC6E4O.js";
|
|
9
|
+
import {
|
|
10
|
+
BaseAdapter
|
|
11
|
+
} from "./chunk.KZATVOA6.js";
|
|
12
|
+
import {
|
|
13
|
+
FoundationProperty
|
|
14
|
+
} from "./chunk.MMIZOYAS.js";
|
|
15
|
+
import {
|
|
16
|
+
COMPONENT_NAME_PREFIX,
|
|
17
|
+
CustomElement
|
|
18
|
+
} from "./chunk.35U3UPDV.js";
|
|
19
|
+
import {
|
|
20
|
+
BaseComponent
|
|
21
|
+
} from "./chunk.VK6LIH3B.js";
|
|
22
|
+
import {
|
|
23
|
+
attachShadowTemplate,
|
|
24
|
+
defineCustomElement,
|
|
25
|
+
getShadowElement
|
|
26
|
+
} from "./chunk.K2PCTUVN.js";
|
|
27
|
+
import {
|
|
28
|
+
removeClass
|
|
29
|
+
} from "./chunk.4JURZYE4.js";
|
|
30
|
+
import {
|
|
31
|
+
coerceNumber,
|
|
32
|
+
isDefined
|
|
33
|
+
} from "./chunk.MEFT5FQC.js";
|
|
34
|
+
import {
|
|
35
|
+
__decorateClass
|
|
36
|
+
} from "./chunk.LM5TVNZY.js";
|
|
37
|
+
|
|
38
|
+
// dist/build/lib/staging/src/view-switcher/view-switcher-constants.ts
|
|
39
|
+
var elementName = `${COMPONENT_NAME_PREFIX}view-switcher`;
|
|
40
|
+
var classes = {
|
|
41
|
+
ROOT: "forge-view-switcher",
|
|
42
|
+
VIEW_HIDDEN: "forge-view-switcher__view--hidden",
|
|
43
|
+
VIEW_SWITCHER_SLIDE: "forge-view-switcher--slide",
|
|
44
|
+
VIEW_SWITCHER_FADE: "forge-view-switcher--fade"
|
|
45
|
+
};
|
|
46
|
+
var selectors = {
|
|
47
|
+
ROOT: `.${classes.ROOT}`,
|
|
48
|
+
DEFAULT_SLOT: "slot:not([name])",
|
|
49
|
+
VIEW_HIDDEN: `.${classes.VIEW_HIDDEN}`
|
|
50
|
+
};
|
|
51
|
+
var attributes = {
|
|
52
|
+
INDEX: "index",
|
|
53
|
+
ANIMATION_TYPE: "animation-type"
|
|
54
|
+
};
|
|
55
|
+
var numbers = {
|
|
56
|
+
DEFAULT_TRANSITION_DURATION: 500
|
|
57
|
+
};
|
|
58
|
+
var VIEW_SWITCHER_CONSTANTS = {
|
|
59
|
+
elementName,
|
|
60
|
+
attributes,
|
|
61
|
+
classes,
|
|
62
|
+
selectors,
|
|
63
|
+
numbers
|
|
64
|
+
};
|
|
65
|
+
var ViewAnimationDirection = /* @__PURE__ */ ((ViewAnimationDirection2) => {
|
|
66
|
+
ViewAnimationDirection2["Left"] = "left";
|
|
67
|
+
ViewAnimationDirection2["Right"] = "right";
|
|
68
|
+
return ViewAnimationDirection2;
|
|
69
|
+
})(ViewAnimationDirection || {});
|
|
70
|
+
var ViewSwitcherAnimationType = /* @__PURE__ */ ((ViewSwitcherAnimationType3) => {
|
|
71
|
+
ViewSwitcherAnimationType3["None"] = "none";
|
|
72
|
+
ViewSwitcherAnimationType3["Slide"] = "slide";
|
|
73
|
+
ViewSwitcherAnimationType3["Fade"] = "fade";
|
|
74
|
+
return ViewSwitcherAnimationType3;
|
|
75
|
+
})(ViewSwitcherAnimationType || {});
|
|
76
|
+
|
|
77
|
+
// dist/build/lib/staging/src/view-switcher/view-switcher-adapter.ts
|
|
78
|
+
var ViewSwitcherAdapter = class extends BaseAdapter {
|
|
79
|
+
constructor(component) {
|
|
80
|
+
super(component);
|
|
81
|
+
this._rootElement = getShadowElement(component, VIEW_SWITCHER_CONSTANTS.selectors.ROOT);
|
|
82
|
+
this._slotElement = getShadowElement(component, VIEW_SWITCHER_CONSTANTS.selectors.DEFAULT_SLOT);
|
|
83
|
+
}
|
|
84
|
+
getViewCount() {
|
|
85
|
+
return this._getViews().length;
|
|
86
|
+
}
|
|
87
|
+
startViewObserver(callback) {
|
|
88
|
+
this._viewObserver = new MutationObserver(callback);
|
|
89
|
+
this._viewObserver.observe(this._component, { childList: true });
|
|
90
|
+
}
|
|
91
|
+
stopViewObserver() {
|
|
92
|
+
if (this._viewObserver) {
|
|
93
|
+
this._viewObserver.disconnect();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
initializeSlideViews(index) {
|
|
97
|
+
let views = this._getViews();
|
|
98
|
+
views.forEach((view, i) => {
|
|
99
|
+
view.style.removeProperty("opacity");
|
|
100
|
+
view.style.removeProperty("display");
|
|
101
|
+
if (i === index) {
|
|
102
|
+
views[index].classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
103
|
+
view.style.removeProperty("visibility");
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
view.style.transition = "none";
|
|
107
|
+
view.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
108
|
+
view.style.visibility = "hidden";
|
|
109
|
+
if (i > index) {
|
|
110
|
+
view.style.transform = "translate3d(100%, 0, 0)";
|
|
111
|
+
} else {
|
|
112
|
+
view.style.transform = "translate3d(-100%, 0, 0)";
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
window.requestAnimationFrame(() => {
|
|
116
|
+
views = this._getViews();
|
|
117
|
+
views.forEach((v, i) => {
|
|
118
|
+
if (i === index) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
v.style.removeProperty("transition");
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
initializeFadeViews(index) {
|
|
126
|
+
const views = this._getViews();
|
|
127
|
+
views.forEach((view, i) => {
|
|
128
|
+
view.style.removeProperty("transform");
|
|
129
|
+
view.style.removeProperty("display");
|
|
130
|
+
if (i === index) {
|
|
131
|
+
view.classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
132
|
+
view.style.removeProperty("visibility");
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
view.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
136
|
+
view.style.visibility = "hidden";
|
|
137
|
+
});
|
|
138
|
+
if (views[index]) {
|
|
139
|
+
views[index].style.opacity = "1";
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
setActiveView(index) {
|
|
143
|
+
const views = this._getViews();
|
|
144
|
+
views.forEach((view, i) => {
|
|
145
|
+
if (i === index) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
view.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
149
|
+
view.style.display = "none";
|
|
150
|
+
});
|
|
151
|
+
if (views[index]) {
|
|
152
|
+
views[index].classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
153
|
+
views[index].style.removeProperty("display");
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
hideInactiveViews(index) {
|
|
157
|
+
const views = this._getViews();
|
|
158
|
+
views.forEach((view, i) => {
|
|
159
|
+
view.style.removeProperty("opacity");
|
|
160
|
+
view.style.removeProperty("transform");
|
|
161
|
+
view.style.removeProperty("visibility");
|
|
162
|
+
if (i === index) {
|
|
163
|
+
view.classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
view.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
167
|
+
view.style.display = "none";
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
async transitionToView(fromIndex, toIndex, animationType, direction) {
|
|
171
|
+
const views = this._getViews();
|
|
172
|
+
const fromView = views[fromIndex];
|
|
173
|
+
const toView = views[toIndex];
|
|
174
|
+
return new Promise((resolve) => {
|
|
175
|
+
toView.style.removeProperty("visibility");
|
|
176
|
+
window.requestAnimationFrame(() => {
|
|
177
|
+
let transitionProp;
|
|
178
|
+
switch (animationType) {
|
|
179
|
+
case "slide" /* Slide */:
|
|
180
|
+
this._slideToView(fromView, toView, direction);
|
|
181
|
+
transitionProp = "transform";
|
|
182
|
+
break;
|
|
183
|
+
case "fade" /* Fade */:
|
|
184
|
+
this._fadeToView(fromView, toView);
|
|
185
|
+
transitionProp = "opacity";
|
|
186
|
+
break;
|
|
187
|
+
default:
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
this._animateHeight(fromView, toView);
|
|
191
|
+
if (fromView) {
|
|
192
|
+
fromView.addEventListener("transitionend", transitionEndHandler);
|
|
193
|
+
} else {
|
|
194
|
+
toView.classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
195
|
+
}
|
|
196
|
+
function transitionEndHandler(evt) {
|
|
197
|
+
if (evt.propertyName === transitionProp) {
|
|
198
|
+
fromView.removeEventListener("transitionend", transitionEndHandler);
|
|
199
|
+
toView.classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);
|
|
200
|
+
resolve();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
_slideToView(fromView, toView, direction) {
|
|
207
|
+
if (direction === "left" /* Left */) {
|
|
208
|
+
if (fromView) {
|
|
209
|
+
fromView.style.transform = "translate3d(-100%, 0, 0)";
|
|
210
|
+
}
|
|
211
|
+
toView.style.transform = "translate3d(0, 0, 0)";
|
|
212
|
+
} else {
|
|
213
|
+
if (fromView) {
|
|
214
|
+
fromView.style.transform = "translate3d(100%, 0, 0)";
|
|
215
|
+
}
|
|
216
|
+
toView.style.transform = "translate3d(0, 0, 0)";
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
_fadeToView(fromView, toView) {
|
|
220
|
+
if (fromView) {
|
|
221
|
+
fromView.style.opacity = "0";
|
|
222
|
+
}
|
|
223
|
+
toView.style.opacity = "1";
|
|
224
|
+
}
|
|
225
|
+
_animateHeight(fromView, toView) {
|
|
226
|
+
const fromViewHeight = fromView ? this._getViewHeight(fromView) : 0;
|
|
227
|
+
const toViewHeight = this._getViewHeight(toView);
|
|
228
|
+
if (fromViewHeight !== toViewHeight) {
|
|
229
|
+
this._rootElement.addEventListener("transitionend", this._onRootTransitionEnd.bind(this));
|
|
230
|
+
this._setHeight(fromViewHeight);
|
|
231
|
+
window.requestAnimationFrame(() => {
|
|
232
|
+
window.requestAnimationFrame(() => {
|
|
233
|
+
this._setHeight(toViewHeight);
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
_onRootTransitionEnd(evt) {
|
|
239
|
+
if (evt.propertyName === "height") {
|
|
240
|
+
this._rootElement.removeEventListener("transitionend", this._onRootTransitionEnd);
|
|
241
|
+
this._rootElement.style.removeProperty("height");
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
setAnimationType(type) {
|
|
245
|
+
removeClass([VIEW_SWITCHER_CONSTANTS.classes.VIEW_SWITCHER_SLIDE, VIEW_SWITCHER_CONSTANTS.classes.VIEW_SWITCHER_FADE], this._component);
|
|
246
|
+
switch (type) {
|
|
247
|
+
case "slide" /* Slide */:
|
|
248
|
+
this._component.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_SWITCHER_SLIDE);
|
|
249
|
+
break;
|
|
250
|
+
case "fade" /* Fade */:
|
|
251
|
+
this._component.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_SWITCHER_FADE);
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
_getViews() {
|
|
256
|
+
return this._slotElement.assignedNodes().filter((n) => n.nodeType === 1);
|
|
257
|
+
}
|
|
258
|
+
_setHeight(viewHeight) {
|
|
259
|
+
this._rootElement.style.height = `${viewHeight}px`;
|
|
260
|
+
}
|
|
261
|
+
_getViewHeight(view) {
|
|
262
|
+
let height = 0;
|
|
263
|
+
const elements = view.children.length ? Array.from(view.children) : [view];
|
|
264
|
+
for (const element of elements) {
|
|
265
|
+
const styles2 = window.getComputedStyle(element);
|
|
266
|
+
const margin = parseFloat(styles2.marginTop) + parseFloat(styles2.marginBottom);
|
|
267
|
+
height += Math.ceil(element.offsetHeight + margin);
|
|
268
|
+
}
|
|
269
|
+
return height;
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
// dist/build/lib/staging/src/view-switcher/view-switcher-foundation.ts
|
|
274
|
+
var ViewSwitcherFoundation = class {
|
|
275
|
+
constructor(_adapter) {
|
|
276
|
+
this._adapter = _adapter;
|
|
277
|
+
this._viewCount = 0;
|
|
278
|
+
this._viewIndex = 0;
|
|
279
|
+
this._animationType = "none" /* None */;
|
|
280
|
+
this._viewsChangedListener = () => this._onViewsChanged();
|
|
281
|
+
}
|
|
282
|
+
initialize() {
|
|
283
|
+
this._viewCount = this._adapter.getViewCount();
|
|
284
|
+
this._adapter.startViewObserver(this._viewsChangedListener);
|
|
285
|
+
this._adapter.setAnimationType(this._animationType);
|
|
286
|
+
if (this._viewCount) {
|
|
287
|
+
this._initializeAnimationType();
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
disconnect() {
|
|
291
|
+
this._adapter.stopViewObserver();
|
|
292
|
+
}
|
|
293
|
+
_initializeAnimationType() {
|
|
294
|
+
switch (this._animationType) {
|
|
295
|
+
case "slide" /* Slide */:
|
|
296
|
+
this._adapter.initializeSlideViews(this._viewIndex);
|
|
297
|
+
break;
|
|
298
|
+
case "fade" /* Fade */:
|
|
299
|
+
this._adapter.initializeFadeViews(this._viewIndex);
|
|
300
|
+
break;
|
|
301
|
+
case "none" /* None */:
|
|
302
|
+
default:
|
|
303
|
+
this._adapter.hideInactiveViews(this._viewIndex);
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
_onViewsChanged() {
|
|
308
|
+
this._viewCount = this._adapter.getViewCount();
|
|
309
|
+
if (this._viewCount === 0) {
|
|
310
|
+
this._viewIndex = 0;
|
|
311
|
+
}
|
|
312
|
+
if (this._viewCount) {
|
|
313
|
+
this._initializeAnimationType();
|
|
314
|
+
}
|
|
315
|
+
if (this._viewCount > 0 && this._viewIndex >= this._viewCount) {
|
|
316
|
+
const currIndex = this._viewIndex;
|
|
317
|
+
this._viewIndex = this._viewCount > 0 ? this._viewCount - 1 : 0;
|
|
318
|
+
this._goToView(currIndex, this._viewCount);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
async _goToView(fromIndex, viewCount) {
|
|
322
|
+
this._viewCount = !isDefined(viewCount) ? this._adapter.getViewCount() : viewCount;
|
|
323
|
+
const isValidIndex = this._viewIndex >= 0 && this._viewIndex <= this._viewCount - 1;
|
|
324
|
+
if (!isValidIndex || fromIndex === this._clampedViewIndex(this._viewIndex, this._viewCount)) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
switch (this._animationType) {
|
|
328
|
+
case "slide" /* Slide */:
|
|
329
|
+
const animationDirection = this._viewIndex > fromIndex ? "left" /* Left */ : "right" /* Right */;
|
|
330
|
+
await this._adapter.transitionToView(fromIndex, this._viewIndex, "slide" /* Slide */, animationDirection);
|
|
331
|
+
this._adapter.initializeSlideViews(this._viewIndex);
|
|
332
|
+
break;
|
|
333
|
+
case "fade" /* Fade */:
|
|
334
|
+
await this._adapter.transitionToView(fromIndex, this._viewIndex, "fade" /* Fade */);
|
|
335
|
+
this._adapter.initializeFadeViews(this._viewIndex);
|
|
336
|
+
break;
|
|
337
|
+
case "none" /* None */:
|
|
338
|
+
default:
|
|
339
|
+
this._adapter.setActiveView(this._viewIndex);
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
_clampedViewIndex(viewIndex, viewCount) {
|
|
344
|
+
if (viewIndex < 0) {
|
|
345
|
+
viewIndex = 0;
|
|
346
|
+
} else if (viewIndex > viewCount - 1) {
|
|
347
|
+
viewIndex = viewCount > 0 ? viewCount - 1 : 0;
|
|
348
|
+
}
|
|
349
|
+
return viewIndex;
|
|
350
|
+
}
|
|
351
|
+
next() {
|
|
352
|
+
this.index++;
|
|
353
|
+
}
|
|
354
|
+
previous() {
|
|
355
|
+
this.index--;
|
|
356
|
+
}
|
|
357
|
+
goToStart() {
|
|
358
|
+
this.index = 0;
|
|
359
|
+
}
|
|
360
|
+
goToEnd() {
|
|
361
|
+
this.index = this._viewCount - 1;
|
|
362
|
+
}
|
|
363
|
+
get index() {
|
|
364
|
+
return this._viewIndex;
|
|
365
|
+
}
|
|
366
|
+
set index(value) {
|
|
367
|
+
if (this._viewIndex !== value) {
|
|
368
|
+
const currIndex = this._viewIndex;
|
|
369
|
+
this._viewIndex = value;
|
|
370
|
+
this._goToView(currIndex);
|
|
371
|
+
this._adapter.setHostAttribute(VIEW_SWITCHER_CONSTANTS.attributes.INDEX, this._viewIndex.toString());
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
get animationType() {
|
|
375
|
+
return this._animationType;
|
|
376
|
+
}
|
|
377
|
+
set animationType(value) {
|
|
378
|
+
if (this._animationType !== value) {
|
|
379
|
+
this._animationType = value;
|
|
380
|
+
this._initializeAnimationType();
|
|
381
|
+
this._adapter.setAnimationType(this._animationType);
|
|
382
|
+
this._adapter.setHostAttribute(VIEW_SWITCHER_CONSTANTS.attributes.ANIMATION_TYPE, this._animationType);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
// dist/build/lib/staging/src/view-switcher/view-switcher.ts
|
|
388
|
+
var template = '<template><div class="forge-view-switcher" part="root"><slot></slot></div></template>';
|
|
389
|
+
var styles = ".forge-view-switcher{height:auto;height:var(--forge-view-switcher-height,auto);position:relative;overflow:hidden;-webkit-transition:height var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:height var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1)}.forge-view-switcher ::slotted(.forge-view-switcher__view--hidden){position:absolute;top:0;right:0;bottom:0;left:0}:host{height:auto;height:var(--forge-view-switcher-height,auto);display:block}:host([hidden]){display:none}:host(.forge-view-switcher--slide) ::slotted(forge-view){-webkit-transition:-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1),-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);will-change:transform}:host(.forge-view-switcher--fade) ::slotted(forge-view){-webkit-transition:opacity var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:opacity var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);will-change:opacity}:host(.forge-view-switcher--fade) ::slotted(.forge-view-switcher__view--hidden){opacity:0}";
|
|
390
|
+
var ViewSwitcherComponent = class extends BaseComponent {
|
|
391
|
+
constructor() {
|
|
392
|
+
super();
|
|
393
|
+
attachShadowTemplate(this, template, styles);
|
|
394
|
+
this._foundation = new ViewSwitcherFoundation(new ViewSwitcherAdapter(this));
|
|
395
|
+
}
|
|
396
|
+
static get observedAttributes() {
|
|
397
|
+
return [
|
|
398
|
+
VIEW_SWITCHER_CONSTANTS.attributes.INDEX,
|
|
399
|
+
VIEW_SWITCHER_CONSTANTS.attributes.ANIMATION_TYPE
|
|
400
|
+
];
|
|
401
|
+
}
|
|
402
|
+
connectedCallback() {
|
|
403
|
+
this._foundation.initialize();
|
|
404
|
+
}
|
|
405
|
+
disconnectedCallback() {
|
|
406
|
+
this._foundation.disconnect();
|
|
407
|
+
}
|
|
408
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
409
|
+
switch (name) {
|
|
410
|
+
case VIEW_SWITCHER_CONSTANTS.attributes.INDEX:
|
|
411
|
+
this.index = coerceNumber(newValue);
|
|
412
|
+
break;
|
|
413
|
+
case VIEW_SWITCHER_CONSTANTS.attributes.ANIMATION_TYPE:
|
|
414
|
+
this.animationType = newValue;
|
|
415
|
+
break;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
next() {
|
|
419
|
+
this._foundation.next();
|
|
420
|
+
}
|
|
421
|
+
previous() {
|
|
422
|
+
this._foundation.previous();
|
|
423
|
+
}
|
|
424
|
+
goToStart() {
|
|
425
|
+
this._foundation.goToStart();
|
|
426
|
+
}
|
|
427
|
+
goToEnd() {
|
|
428
|
+
this._foundation.goToEnd();
|
|
429
|
+
}
|
|
430
|
+
};
|
|
431
|
+
__decorateClass([
|
|
432
|
+
FoundationProperty()
|
|
433
|
+
], ViewSwitcherComponent.prototype, "index", 2);
|
|
434
|
+
__decorateClass([
|
|
435
|
+
FoundationProperty()
|
|
436
|
+
], ViewSwitcherComponent.prototype, "animationType", 2);
|
|
437
|
+
ViewSwitcherComponent = __decorateClass([
|
|
438
|
+
CustomElement({
|
|
439
|
+
name: VIEW_SWITCHER_CONSTANTS.elementName,
|
|
440
|
+
dependencies: [ViewComponent]
|
|
441
|
+
})
|
|
442
|
+
], ViewSwitcherComponent);
|
|
443
|
+
|
|
444
|
+
// dist/build/lib/staging/src/view-switcher/index.ts
|
|
445
|
+
function defineViewSwitcherComponent() {
|
|
446
|
+
defineCustomElement(ViewSwitcherComponent);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
export {
|
|
450
|
+
VIEW_SWITCHER_CONSTANTS,
|
|
451
|
+
ViewAnimationDirection,
|
|
452
|
+
ViewSwitcherAnimationType,
|
|
453
|
+
ViewSwitcherAdapter,
|
|
454
|
+
ViewSwitcherFoundation,
|
|
455
|
+
ViewSwitcherComponent,
|
|
456
|
+
defineViewSwitcherComponent
|
|
457
|
+
};
|
|
458
|
+
//# sourceMappingURL=chunk.7G2S3DCM.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/view-switcher/view-switcher-constants.ts", "../../src/view-switcher/view-switcher-adapter.ts", "../../src/view-switcher/view-switcher-foundation.ts", "../../src/view-switcher/view-switcher.ts", "../../src/view-switcher/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}view-switcher`;\n\nconst classes = {\n ROOT: 'forge-view-switcher',\n VIEW_HIDDEN: 'forge-view-switcher__view--hidden',\n VIEW_SWITCHER_SLIDE: 'forge-view-switcher--slide',\n VIEW_SWITCHER_FADE: 'forge-view-switcher--fade'\n};\n\nconst selectors = {\n ROOT: `.${classes.ROOT}`,\n DEFAULT_SLOT: 'slot:not([name])',\n VIEW_HIDDEN: `.${classes.VIEW_HIDDEN}`\n};\n\nconst attributes = {\n INDEX: 'index',\n ANIMATION_TYPE: 'animation-type'\n};\n\nconst numbers = {\n DEFAULT_TRANSITION_DURATION: 500\n};\n\nexport const VIEW_SWITCHER_CONSTANTS = {\n elementName,\n attributes,\n classes,\n selectors,\n numbers\n};\n\nexport interface IViewSwitcherView {\n element: HTMLElement;\n}\n\nexport enum ViewAnimationDirection {\n Left = 'left',\n Right = 'right'\n}\n\nexport enum ViewSwitcherAnimationType {\n None = 'none',\n Slide = 'slide',\n Fade = 'fade'\n}\n", "import { getShadowElement, removeClass } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IViewSwitcherComponent } from './view-switcher';\nimport { ViewAnimationDirection, ViewSwitcherAnimationType, VIEW_SWITCHER_CONSTANTS } from './view-switcher-constants';\n\nexport interface IViewSwitcherAdapter extends IBaseAdapter {\n getViewCount(): number;\n startViewObserver(callback: MutationCallback): void;\n stopViewObserver(): void;\n initializeSlideViews(index: number): void;\n initializeFadeViews(index: number): void;\n setActiveView(index: number): void;\n hideInactiveViews(index: number): void;\n transitionToView(fromIndex: number, toIndex: number, animationType: ViewSwitcherAnimationType, direction?: ViewAnimationDirection): Promise<void>;\n setAnimationType(type: ViewSwitcherAnimationType): void;\n}\n\nexport class ViewSwitcherAdapter extends BaseAdapter<IViewSwitcherComponent> implements IViewSwitcherAdapter {\n private _rootElement: HTMLElement;\n private _slotElement: HTMLSlotElement;\n private _viewObserver: MutationObserver;\n\n constructor(component: IViewSwitcherComponent) {\n super(component);\n this._rootElement = getShadowElement(component, VIEW_SWITCHER_CONSTANTS.selectors.ROOT);\n this._slotElement = getShadowElement(component, VIEW_SWITCHER_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n }\n\n public getViewCount(): number {\n return this._getViews().length;\n }\n\n public startViewObserver(callback: MutationCallback): void {\n this._viewObserver = new MutationObserver(callback);\n this._viewObserver.observe(this._component, { childList: true });\n }\n\n public stopViewObserver(): void {\n if (this._viewObserver) {\n this._viewObserver.disconnect();\n }\n }\n\n /**\n * Initializes the views with styles for a slide transition.\n * @param index The active view index.\n */\n public initializeSlideViews(index: number): void {\n let views = this._getViews();\n views.forEach((view, i) => {\n // Make sure that we remove properties if they were set from another animation type\n view.style.removeProperty('opacity');\n view.style.removeProperty('display');\n\n // Ensure that the currently active view is visible\n if (i === index) {\n views[index].classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n view.style.removeProperty('visibility');\n return;\n }\n\n // We disable the transition when resetting the hidden views so that the animation doesn't occur\n view.style.transition = 'none';\n\n // Ensure the view is hidden\n view.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n view.style.visibility = 'hidden';\n\n // Reset the position of the view to the left or right of the switcher\n if (i > index) {\n view.style.transform = 'translate3d(100%, 0, 0)';\n } else {\n view.style.transform = 'translate3d(-100%, 0, 0)';\n }\n });\n\n // Wait a frame for the views to reposition, then re-enable the transition for all hidden views\n window.requestAnimationFrame(() => {\n views = this._getViews();\n views.forEach((v, i) => {\n if (i === index) {\n return;\n }\n v.style.removeProperty('transition');\n });\n });\n }\n\n /**\n * Initializes the view styles when using a fade transition.\n * @param index The active view index.\n */\n public initializeFadeViews(index: number): void {\n const views = this._getViews();\n views.forEach((view, i) => {\n // Make sure that we remove properties if they were set from another animation type\n view.style.removeProperty('transform');\n view.style.removeProperty('display');\n\n // Ensure that the visible view doesn't have the hidden class\n if (i === index) {\n view.classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n view.style.removeProperty('visibility');\n return;\n }\n\n // Ensure the hidden views have the proper class\n view.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n view.style.visibility = 'hidden';\n });\n\n // Ensure that the visible view has the proper opacity\n if (views[index]) {\n views[index].style.opacity = '1';\n }\n }\n\n /**\n * This is used when no animation type is set to allow for snapping the view into place.\n * @param index The currently active view index.\n */\n public setActiveView(index: number): void {\n const views = this._getViews();\n\n views.forEach((view, i) => {\n if (i === index) {\n return;\n }\n // Hide all non-visible views\n view.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n view.style.display = 'none';\n });\n\n // Ensure that the active view is visible\n if (views[index]) {\n views[index].classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n views[index].style.removeProperty('display');\n }\n }\n\n /**\n * This is used when no animation type is specific to hide all non-visible views.\n * @param index The currently active view index.\n */\n public hideInactiveViews(index: number): void {\n const views = this._getViews();\n views.forEach((view, i) => {\n // Make sure that we remove properties if they were set from another animation type\n view.style.removeProperty('opacity');\n view.style.removeProperty('transform');\n view.style.removeProperty('visibility');\n\n // Ensure the active view is visible\n if (i === index) {\n view.classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n return;\n }\n\n // Ensure all non-active views are hidden\n view.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n view.style.display = 'none';\n });\n }\n\n /**\n * Initiates a slide transition from one view to another.\n * @param fromIndex The view index to transition from.\n * @param toIndex The view index to transition to.\n * @param direction The transition animation direction.\n */\n public async transitionToView(fromIndex: number, toIndex: number, animationType: ViewSwitcherAnimationType, direction?: ViewAnimationDirection): Promise<void> {\n const views = this._getViews();\n const fromView = views[fromIndex];\n const toView = views[toIndex];\n\n return new Promise<void>(resolve => {\n // Show the view so we can calculate the height and start the transition in the next frame\n toView.style.removeProperty('visibility');\n\n window.requestAnimationFrame(() => {\n let transitionProp: string;\n switch (animationType) {\n case ViewSwitcherAnimationType.Slide:\n this._slideToView(fromView, toView, direction as ViewAnimationDirection);\n transitionProp = 'transform';\n break;\n case ViewSwitcherAnimationType.Fade:\n this._fadeToView(fromView, toView);\n transitionProp = 'opacity';\n break;\n default:\n return;\n }\n\n // Start the height transition (this will not animate if the height doesn't change)\n this._animateHeight(fromView, toView);\n\n if (fromView) {\n // Wait for the transform transition to complete before resolving and completing transition\n fromView.addEventListener('transitionend', transitionEndHandler);\n } else {\n toView.classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n }\n\n function transitionEndHandler(evt: TransitionEvent): void {\n if (evt.propertyName === transitionProp) {\n fromView.removeEventListener('transitionend', transitionEndHandler);\n toView.classList.remove(VIEW_SWITCHER_CONSTANTS.classes.VIEW_HIDDEN);\n resolve();\n }\n }\n });\n });\n }\n\n /**\n * Initiates a slide transition from one view to another.\n * @param fromIndex The view index to transition from.\n * @param toIndex The view index to transition to.\n * @param direction The transition animation direction.\n */\n private _slideToView(fromView: HTMLElement | null, toView: HTMLElement, direction: ViewAnimationDirection): void {\n // Use a CSS transform on the view to slide it in the requested direction\n if (direction === ViewAnimationDirection.Left) {\n if (fromView) {\n fromView.style.transform = 'translate3d(-100%, 0, 0)';\n }\n toView.style.transform = 'translate3d(0, 0, 0)';\n } else {\n if (fromView) {\n fromView.style.transform = 'translate3d(100%, 0, 0)';\n }\n toView.style.transform = 'translate3d(0, 0, 0)';\n }\n }\n\n private _fadeToView(fromView: HTMLElement | null, toView: HTMLElement): void {\n if (fromView) {\n fromView.style.opacity = '0';\n }\n toView.style.opacity = '1';\n }\n\n /**\n * Attempts to animate the height of our container element to match that of the next view.\n * @param fromIndex The view index we are transitioning from.\n * @param toIndex The view index we are transitioning to.\n */\n private _animateHeight(fromView: HTMLElement | null, toView: HTMLElement): void {\n const fromViewHeight = fromView ? this._getViewHeight(fromView) : 0;\n const toViewHeight = this._getViewHeight(toView);\n\n // We only animate the height if it is different...\n if (fromViewHeight !== toViewHeight) {\n this._rootElement.addEventListener('transitionend', this._onRootTransitionEnd.bind(this));\n\n // Set to the height of the current view so we can animate the height from something static\n this._setHeight(fromViewHeight);\n\n // We need to wait two frames before animating to the new height due to event loop\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n // Start the transition to the new view height\n this._setHeight(toViewHeight);\n });\n });\n }\n }\n\n /**\n * Handles the root container transitionend event.\n * @param evt The transition event.\n */\n private _onRootTransitionEnd(evt: TransitionEvent): void {\n if (evt.propertyName === 'height') {\n this._rootElement.removeEventListener('transitionend', this._onRootTransitionEnd);\n // Removes the static height from the root element so that it can grow with content\n this._rootElement.style.removeProperty('height');\n }\n }\n\n /**\n * Resets the animation type on the root element.\n * @param type The animation type.\n */\n public setAnimationType(type: ViewSwitcherAnimationType): void {\n removeClass([VIEW_SWITCHER_CONSTANTS.classes.VIEW_SWITCHER_SLIDE, VIEW_SWITCHER_CONSTANTS.classes.VIEW_SWITCHER_FADE], this._component);\n\n switch (type) {\n case ViewSwitcherAnimationType.Slide:\n this._component.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_SWITCHER_SLIDE);\n break;\n case ViewSwitcherAnimationType.Fade:\n this._component.classList.add(VIEW_SWITCHER_CONSTANTS.classes.VIEW_SWITCHER_FADE);\n break;\n }\n }\n\n /**\n * Get all view elements.\n */\n private _getViews(): HTMLElement[] {\n return this._slotElement.assignedNodes().filter(n => n.nodeType === 1) as HTMLElement[];\n }\n\n /**\n * Sets the height on the root container element.\n * @param viewHeight The new height.\n */\n private _setHeight(viewHeight: number): void {\n this._rootElement.style.height = `${viewHeight}px`;\n }\n\n /**\n * Calculate the absolute height of a view.\n * @param view The view to calculate height from.\n */\n private _getViewHeight(view: HTMLElement): number {\n let height = 0;\n const elements = view.children.length ? (Array.from(view.children) as HTMLElement[]) : [view];\n\n for (const element of elements) {\n const styles = window.getComputedStyle(element);\n const margin = parseFloat(styles.marginTop as string) + parseFloat(styles.marginBottom as string);\n height += Math.ceil(element.offsetHeight + margin);\n }\n\n return height;\n }\n}\n", "import { ICustomElementFoundation, Platform, isDefined } from '@tylertech/forge-core';\n\nimport { IViewSwitcherAdapter } from './view-switcher-adapter';\nimport { VIEW_SWITCHER_CONSTANTS, ViewAnimationDirection, ViewSwitcherAnimationType } from './view-switcher-constants';\n\nexport interface IViewSwitcherFoundation extends ICustomElementFoundation {\n index: number;\n animationType: ViewSwitcherAnimationType;\n next(): void;\n previous(): void;\n goToStart(): void;\n goToEnd(): void;\n}\n\nexport class ViewSwitcherFoundation implements IViewSwitcherFoundation {\n private _viewCount = 0;\n private _viewIndex = 0;\n private _animationType = ViewSwitcherAnimationType.None;\n private _viewsChangedListener: () => void;\n\n constructor(private _adapter: IViewSwitcherAdapter) {\n this._viewsChangedListener = () => this._onViewsChanged();\n }\n\n public initialize(): void {\n this._viewCount = this._adapter.getViewCount();\n this._adapter.startViewObserver(this._viewsChangedListener);\n this._adapter.setAnimationType(this._animationType);\n\n if (this._viewCount) {\n this._initializeAnimationType();\n }\n }\n\n public disconnect(): void {\n this._adapter.stopViewObserver();\n }\n\n private _initializeAnimationType(): void {\n switch (this._animationType) {\n case ViewSwitcherAnimationType.Slide:\n this._adapter.initializeSlideViews(this._viewIndex);\n break;\n case ViewSwitcherAnimationType.Fade:\n this._adapter.initializeFadeViews(this._viewIndex);\n break;\n case ViewSwitcherAnimationType.None:\n default:\n this._adapter.hideInactiveViews(this._viewIndex);\n break;\n }\n }\n\n private _onViewsChanged(): void {\n this._viewCount = this._adapter.getViewCount();\n\n if (this._viewCount === 0) {\n this._viewIndex = 0;\n }\n\n if (this._viewCount) {\n this._initializeAnimationType();\n }\n\n // If the view index is higher than the number of views then we need to reset it\n if (this._viewCount > 0 && this._viewIndex >= this._viewCount) {\n const currIndex = this._viewIndex;\n this._viewIndex = this._viewCount > 0 ? this._viewCount - 1 : 0;\n this._goToView(currIndex, this._viewCount);\n }\n }\n\n private async _goToView(fromIndex: number, viewCount?: number): Promise<void> {\n this._viewCount = !isDefined(viewCount) ? this._adapter.getViewCount() : viewCount as number;\n \n // If the index that we're trying to transition to is out of range, or is the same index, then we ignore the transition\n const isValidIndex = this._viewIndex >= 0 && this._viewIndex <= this._viewCount - 1;\n if (!isValidIndex || fromIndex === this._clampedViewIndex(this._viewIndex, this._viewCount)) {\n return;\n }\n\n switch (this._animationType) {\n case ViewSwitcherAnimationType.Slide:\n const animationDirection = this._viewIndex > fromIndex ? ViewAnimationDirection.Left : ViewAnimationDirection.Right;\n await this._adapter.transitionToView(fromIndex, this._viewIndex, ViewSwitcherAnimationType.Slide, animationDirection);\n this._adapter.initializeSlideViews(this._viewIndex);\n break;\n case ViewSwitcherAnimationType.Fade:\n await this._adapter.transitionToView(fromIndex, this._viewIndex, ViewSwitcherAnimationType.Fade);\n this._adapter.initializeFadeViews(this._viewIndex);\n break;\n case ViewSwitcherAnimationType.None:\n default:\n this._adapter.setActiveView(this._viewIndex);\n break;\n }\n }\n\n private _clampedViewIndex(viewIndex: number, viewCount: number): number {\n if (viewIndex < 0) {\n viewIndex = 0;\n } else if (viewIndex > viewCount - 1) {\n viewIndex = viewCount > 0 ? viewCount - 1 : 0;\n }\n return viewIndex;\n }\n\n public next(): void {\n this.index++;\n }\n\n public previous(): void {\n this.index--;\n }\n\n public goToStart(): void {\n this.index = 0;\n }\n\n public goToEnd(): void {\n this.index = this._viewCount - 1;\n }\n\n public get index(): number {\n return this._viewIndex;\n }\n public set index(value: number) {\n if (this._viewIndex !== value) {\n const currIndex = this._viewIndex;\n this._viewIndex = value;\n this._goToView(currIndex);\n this._adapter.setHostAttribute(VIEW_SWITCHER_CONSTANTS.attributes.INDEX, this._viewIndex.toString());\n }\n }\n\n public get animationType(): ViewSwitcherAnimationType {\n return this._animationType;\n }\n public set animationType(value: ViewSwitcherAnimationType) {\n if (this._animationType !== value) {\n this._animationType = value;\n this._initializeAnimationType();\n this._adapter.setAnimationType(this._animationType);\n this._adapter.setHostAttribute(VIEW_SWITCHER_CONSTANTS.attributes.ANIMATION_TYPE, this._animationType);\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, FoundationProperty, upgradeProperty } from '@tylertech/forge-core';\nimport { ViewSwitcherAdapter } from './view-switcher-adapter';\nimport { ViewSwitcherFoundation } from './view-switcher-foundation';\nimport { VIEW_SWITCHER_CONSTANTS, ViewSwitcherAnimationType } from './view-switcher-constants';\nimport { ViewComponent } from './view/view';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-view-switcher\\\" part=\\\"root\\\"><slot></slot></div></template>';\nconst styles = '.forge-view-switcher{height:auto;height:var(--forge-view-switcher-height,auto);position:relative;overflow:hidden;-webkit-transition:height var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:height var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1)}.forge-view-switcher ::slotted(.forge-view-switcher__view--hidden){position:absolute;top:0;right:0;bottom:0;left:0}:host{height:auto;height:var(--forge-view-switcher-height,auto);display:block}:host([hidden]){display:none}:host(.forge-view-switcher--slide) ::slotted(forge-view){-webkit-transition:-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1),-webkit-transform var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);will-change:transform}:host(.forge-view-switcher--fade) ::slotted(forge-view){-webkit-transition:opacity var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);transition:opacity var(--forge-view-switcher-animation-duration, 500ms) cubic-bezier(.35, 0, .25, 1);will-change:opacity}:host(.forge-view-switcher--fade) ::slotted(.forge-view-switcher__view--hidden){opacity:0}';\n\nexport interface IViewSwitcherComponent extends IBaseComponent {\n index: number;\n animationType: ViewSwitcherAnimationType;\n next(): void;\n previous(): void;\n goToStart(): void;\n goToEnd(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-view-switcher': IViewSwitcherComponent;\n }\n}\n\n@CustomElement({\n name: VIEW_SWITCHER_CONSTANTS.elementName,\n dependencies: [ViewComponent]\n})\nexport class ViewSwitcherComponent extends BaseComponent implements IViewSwitcherComponent {\n public static get observedAttributes(): string[] {\n return [\n VIEW_SWITCHER_CONSTANTS.attributes.INDEX,\n VIEW_SWITCHER_CONSTANTS.attributes.ANIMATION_TYPE\n ];\n }\n\n private _foundation: ViewSwitcherFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ViewSwitcherFoundation(new ViewSwitcherAdapter(this));\n }\n\n public connectedCallback(): void {\n // upgradeProperty(this, 'index');\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 VIEW_SWITCHER_CONSTANTS.attributes.INDEX:\n this.index = coerceNumber(newValue);\n break;\n case VIEW_SWITCHER_CONSTANTS.attributes.ANIMATION_TYPE:\n this.animationType = newValue as ViewSwitcherAnimationType;\n break;\n }\n }\n\n /** Gets/sets the currently visible view index. */\n @FoundationProperty()\n public index: number;\n \n /** Gets/sets the animation type. */\n @FoundationProperty()\n public animationType: ViewSwitcherAnimationType;\n\n /** Transitions to the next view. */\n public next(): void {\n this._foundation.next();\n }\n\n /** Transitions to the previous view. */\n public previous(): void {\n this._foundation.previous();\n }\n\n /** Transitions to the first view. */\n public goToStart(): void {\n this._foundation.goToStart();\n }\n\n /** Transitions to the last view. */\n public goToEnd(): void {\n this._foundation.goToEnd();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { ViewSwitcherComponent } from './view-switcher';\n\nexport * from './view-switcher-adapter';\nexport * from './view-switcher-constants';\nexport * from './view-switcher-foundation';\nexport * from './view-switcher';\nexport * from './view';\n\nexport function defineViewSwitcherComponent(): void {\n defineCustomElement(ViewSwitcherComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|