@tylertech/forge 3.0.0-next.11 → 3.0.0-next.13
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 +1 -6
- package/custom-elements.json +63803 -41782
- package/dist/esm/accordion/index.js +1 -1
- package/dist/esm/app-bar/help-button/index.js +1 -1
- package/dist/esm/app-bar/index.js +1 -1
- package/dist/esm/app-bar/menu-button/index.js +1 -1
- package/dist/esm/app-bar/notification-button/index.js +1 -1
- package/dist/esm/app-bar/profile-button/index.js +1 -1
- package/dist/esm/app-bar/search/index.js +1 -1
- package/dist/esm/autocomplete/index.js +1 -1
- package/dist/esm/avatar/index.js +1 -1
- package/dist/esm/backdrop/index.js +1 -1
- package/dist/esm/badge/index.js +1 -1
- package/dist/esm/banner/index.js +1 -1
- package/dist/esm/bottom-sheet/index.js +1 -1
- package/dist/esm/busy-indicator/index.js +1 -1
- package/dist/esm/button/index.js +1 -1
- package/dist/esm/button-area/index.js +7 -0
- package/dist/esm/button-area/index.js.map +7 -0
- package/dist/esm/button-toggle/button-toggle/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/dist/esm/button-toggle/index.js +1 -1
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
- package/dist/esm/calendar/calendar-menu/index.js +1 -1
- package/dist/esm/calendar/index.js +1 -1
- package/dist/esm/card/index.js +1 -1
- package/dist/esm/checkbox/index.js +1 -1
- package/dist/esm/chip-field/index.js +1 -1
- package/dist/esm/chips/chip/index.js +1 -1
- package/dist/esm/chips/chip-set/index.js +1 -1
- package/dist/esm/chips/index.js +1 -1
- package/dist/esm/chunks/{chunk.SMGXXR6K.js → chunk.2MSL7CYM.js} +2 -2
- package/dist/esm/chunks/chunk.2ZU6LWHE.js +7 -0
- package/dist/esm/chunks/chunk.2ZU6LWHE.js.map +7 -0
- package/dist/esm/chunks/{chunk.COVTBIQQ.js → chunk.36C6SIPW.js} +2 -2
- package/dist/esm/chunks/{chunk.COVTBIQQ.js.map → chunk.36C6SIPW.js.map} +2 -2
- package/dist/esm/chunks/chunk.36F2GVWS.js +7 -0
- package/dist/esm/chunks/chunk.36F2GVWS.js.map +7 -0
- package/dist/esm/chunks/{chunk.M56LSSPW.js → chunk.3HCYRDRI.js} +2 -2
- package/dist/esm/chunks/{chunk.4ZKX3SO5.js → chunk.3R4BUIQP.js} +2 -2
- package/dist/esm/chunks/{chunk.YWNCJ7XP.js → chunk.3ZPSN2QG.js} +2 -2
- package/dist/esm/chunks/chunk.4SPEX2GJ.js +7 -0
- package/dist/esm/chunks/chunk.4SPEX2GJ.js.map +7 -0
- package/dist/esm/chunks/chunk.4YFJVHXN.js +7 -0
- package/dist/esm/chunks/chunk.4YFJVHXN.js.map +7 -0
- package/dist/esm/chunks/chunk.5A2PA7TL.js +7 -0
- package/dist/esm/chunks/chunk.5A2PA7TL.js.map +7 -0
- package/dist/esm/chunks/chunk.5CSXPRL3.js +7 -0
- package/dist/esm/chunks/chunk.5CSXPRL3.js.map +7 -0
- package/dist/esm/chunks/chunk.5LVZVQXB.js +7 -0
- package/dist/esm/chunks/{chunk.MGLL67VO.js.map → chunk.5LVZVQXB.js.map} +2 -2
- package/dist/esm/chunks/{chunk.LFODKHUO.js → chunk.5N4N6DL6.js} +2 -2
- package/dist/esm/chunks/chunk.5PG6WIIX.js +7 -0
- package/dist/esm/chunks/chunk.5PG6WIIX.js.map +7 -0
- package/dist/esm/chunks/{chunk.JIKSKUDW.js → chunk.5RM65QPN.js} +2 -2
- package/dist/esm/chunks/{chunk.JIKSKUDW.js.map → chunk.5RM65QPN.js.map} +3 -3
- package/dist/esm/chunks/chunk.5WMYF27O.js +7 -0
- package/dist/esm/chunks/chunk.5WMYF27O.js.map +7 -0
- package/dist/esm/chunks/{chunk.QOJESHEV.js → chunk.675V42JS.js} +2 -2
- package/dist/esm/chunks/chunk.6M27ERWW.js +12 -0
- package/dist/esm/chunks/chunk.6M27ERWW.js.map +7 -0
- package/dist/esm/chunks/chunk.6NTYTHAL.js +7 -0
- package/dist/esm/chunks/chunk.6NTYTHAL.js.map +7 -0
- package/dist/esm/chunks/chunk.6ZNBFKNP.js +7 -0
- package/dist/esm/chunks/chunk.6ZNBFKNP.js.map +7 -0
- package/dist/esm/chunks/{chunk.7TMLILLW.js → chunk.72JVXGHF.js} +2 -2
- package/dist/esm/chunks/{chunk.7TMLILLW.js.map → chunk.72JVXGHF.js.map} +1 -1
- package/dist/esm/chunks/chunk.7V4BDSA5.js +7 -0
- package/dist/esm/chunks/chunk.7V4BDSA5.js.map +7 -0
- package/dist/esm/chunks/chunk.7VMJLHQY.js +7 -0
- package/dist/esm/chunks/chunk.7VMJLHQY.js.map +7 -0
- package/dist/esm/chunks/chunk.7ZROQ6D3.js +7 -0
- package/dist/esm/chunks/chunk.7ZROQ6D3.js.map +7 -0
- package/dist/esm/chunks/{chunk.DG4ZM3AW.js → chunk.AMLT6XJP.js} +2 -2
- package/dist/esm/chunks/chunk.AMZZKEAE.js +7 -0
- package/dist/esm/chunks/chunk.AMZZKEAE.js.map +7 -0
- package/dist/esm/chunks/{chunk.MTKSU2BV.js → chunk.APPY5AYL.js} +2 -2
- package/dist/esm/chunks/{chunk.4YFVG4KP.js → chunk.ARQMMZJL.js} +2 -2
- package/dist/esm/chunks/chunk.AUBOJZQ7.js +7 -0
- package/dist/esm/chunks/chunk.AUBOJZQ7.js.map +7 -0
- package/dist/esm/chunks/chunk.AUCBR6CC.js +7 -0
- package/dist/esm/chunks/{chunk.SFCGOCQK.js.map → chunk.AUCBR6CC.js.map} +2 -2
- package/dist/esm/chunks/{chunk.5MZ5SGMO.js → chunk.BB4UF5RX.js} +2 -2
- package/dist/esm/chunks/chunk.BBCZNGT3.js +7 -0
- package/dist/esm/chunks/chunk.BBCZNGT3.js.map +7 -0
- package/dist/esm/chunks/chunk.BQ2X5SBP.js +7 -0
- package/dist/esm/chunks/{chunk.TYLOAD7R.js.map → chunk.BQ2X5SBP.js.map} +2 -2
- package/dist/esm/chunks/chunk.BTXY3XMJ.js +7 -0
- package/dist/esm/chunks/chunk.BTXY3XMJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js → chunk.DTLZOIUQ.js} +2 -2
- package/dist/esm/chunks/chunk.EJX6RI4I.js +7 -0
- package/dist/esm/chunks/chunk.EJX6RI4I.js.map +7 -0
- package/dist/esm/chunks/chunk.EWK76SPH.js +7 -0
- package/dist/esm/chunks/chunk.EWK76SPH.js.map +7 -0
- package/dist/esm/chunks/chunk.FAXYCG55.js +7 -0
- package/dist/esm/chunks/chunk.FAXYCG55.js.map +7 -0
- package/dist/esm/chunks/chunk.FFHSUJFM.js +7 -0
- package/dist/esm/chunks/chunk.FFHSUJFM.js.map +7 -0
- package/dist/esm/chunks/{chunk.OWCYRSI3.js → chunk.FLWNOP42.js} +2 -2
- package/dist/esm/chunks/{chunk.S3JMOOWC.js → chunk.FXIWCHLW.js} +2 -2
- package/dist/esm/chunks/chunk.FYVDTZLF.js +7 -0
- package/dist/esm/chunks/{chunk.CDGZYUQS.js.map → chunk.FYVDTZLF.js.map} +2 -2
- package/dist/esm/chunks/chunk.G73KL7P2.js +7 -0
- package/dist/esm/chunks/{chunk.7DB3XVPI.js.map → chunk.G73KL7P2.js.map} +3 -3
- package/dist/esm/chunks/chunk.G7SMCLHQ.js +7 -0
- package/dist/esm/chunks/chunk.G7SMCLHQ.js.map +7 -0
- package/dist/esm/chunks/chunk.GHR7T6U2.js +7 -0
- package/dist/esm/chunks/chunk.GHR7T6U2.js.map +7 -0
- package/dist/esm/chunks/{chunk.CWTV3TB3.js → chunk.GNDKQPDV.js} +2 -2
- package/dist/esm/chunks/{chunk.ULY4H76N.js → chunk.HAKF2T2D.js} +2 -2
- package/dist/esm/chunks/chunk.HDG2GHKC.js +7 -0
- package/dist/esm/chunks/{chunk.SBYX7VZ4.js.map → chunk.HDG2GHKC.js.map} +2 -2
- package/dist/esm/chunks/{chunk.WPG7NNQX.js → chunk.HOLCNJXC.js} +2 -2
- package/dist/esm/chunks/{chunk.W4247Q2P.js → chunk.HRRJIFC5.js} +2 -2
- package/dist/esm/chunks/chunk.HSI7B43D.js +7 -0
- package/dist/esm/chunks/chunk.HSI7B43D.js.map +7 -0
- package/dist/esm/chunks/chunk.IAWYYNUU.js +7 -0
- package/dist/esm/chunks/chunk.IAWYYNUU.js.map +7 -0
- package/dist/esm/chunks/{chunk.SU4FU7GK.js → chunk.IDMDBMBR.js} +2 -2
- package/dist/esm/chunks/{chunk.FCATJM34.js → chunk.IHAHJPMB.js} +2 -2
- package/dist/esm/chunks/chunk.IISWKFCX.js +7 -0
- package/dist/esm/chunks/chunk.IISWKFCX.js.map +7 -0
- package/dist/esm/chunks/{chunk.XKI46BH2.js → chunk.IMLJD35R.js} +2 -2
- package/dist/esm/chunks/{chunk.624UKZFU.js → chunk.IT7XPDAV.js} +2 -2
- package/dist/esm/chunks/{chunk.MVTBJPO2.js → chunk.JAWV5Y5T.js} +1 -1
- package/dist/esm/chunks/{chunk.MVTBJPO2.js.map → chunk.JAWV5Y5T.js.map} +2 -2
- package/dist/esm/chunks/{chunk.JLLHDJSO.js → chunk.JVLJH6PR.js} +2 -2
- package/dist/esm/chunks/chunk.KPJWP77R.js +7 -0
- package/dist/esm/chunks/{chunk.2EWV2XBP.js → chunk.KV5IKYG2.js} +2 -2
- package/dist/esm/chunks/chunk.KV67JXOC.js +7 -0
- package/dist/esm/chunks/{chunk.B4T3R53C.js.map → chunk.KV67JXOC.js.map} +2 -2
- package/dist/esm/chunks/{chunk.A62DE5PD.js → chunk.LCR4YH3O.js} +2 -2
- package/dist/esm/chunks/{chunk.FWFOOQMA.js → chunk.LOG6GQOK.js} +2 -2
- package/dist/esm/chunks/chunk.LUIKMPQR.js +7 -0
- package/dist/esm/chunks/chunk.LUIKMPQR.js.map +7 -0
- package/dist/esm/chunks/chunk.LUNKNRRH.js +7 -0
- package/dist/esm/chunks/chunk.LUNKNRRH.js.map +7 -0
- package/dist/esm/chunks/chunk.MKJCHUJH.js +7 -0
- package/dist/esm/chunks/chunk.MKJCHUJH.js.map +7 -0
- package/dist/esm/chunks/chunk.MWYQRG5W.js +7 -0
- package/dist/esm/chunks/{chunk.YX7WLO5Y.js.map → chunk.MWYQRG5W.js.map} +2 -2
- package/dist/esm/chunks/{chunk.YLG6ZC5K.js → chunk.NUMKGUCK.js} +2 -2
- package/dist/esm/chunks/{chunk.XI3MJSIS.js → chunk.O6V3YNMO.js} +2 -2
- package/dist/esm/chunks/chunk.OWZREAT6.js +15 -0
- package/dist/esm/chunks/chunk.OWZREAT6.js.map +7 -0
- package/dist/esm/chunks/chunk.PMYQY3D3.js +7 -0
- package/dist/esm/chunks/chunk.PMYQY3D3.js.map +7 -0
- package/dist/esm/chunks/chunk.PYR2OCCH.js +7 -0
- package/dist/esm/chunks/{chunk.5565ZSTH.js.map → chunk.PYR2OCCH.js.map} +2 -2
- package/dist/esm/chunks/chunk.QJCNMYD3.js +7 -0
- package/dist/esm/chunks/{chunk.SJJS4LYN.js.map → chunk.QJCNMYD3.js.map} +2 -2
- package/dist/esm/chunks/{chunk.TK5I4RHF.js → chunk.QLCVRJ3Q.js} +2 -2
- package/dist/esm/chunks/chunk.QLOYOZN3.js +7 -0
- package/dist/esm/chunks/{chunk.F5SY2D4B.js.map → chunk.QLOYOZN3.js.map} +3 -3
- package/dist/esm/chunks/chunk.QN5T26HH.js +7 -0
- package/dist/esm/chunks/chunk.QN5T26HH.js.map +7 -0
- package/dist/esm/chunks/chunk.QQRPV4RN.js +7 -0
- package/dist/esm/chunks/{chunk.PEBT47AU.js.map → chunk.QQRPV4RN.js.map} +2 -2
- package/dist/esm/chunks/chunk.R6LQBI42.js +177 -0
- package/dist/esm/chunks/chunk.R6LQBI42.js.map +7 -0
- package/dist/esm/chunks/chunk.RES7WDKH.js +7 -0
- package/dist/esm/chunks/chunk.RES7WDKH.js.map +7 -0
- package/dist/esm/chunks/chunk.RP674CRC.js +7 -0
- package/dist/esm/chunks/chunk.S5QL4SPT.js +7 -0
- package/dist/esm/chunks/chunk.S5QL4SPT.js.map +7 -0
- package/dist/esm/chunks/chunk.SIRXAA3O.js +7 -0
- package/dist/esm/chunks/chunk.SIRXAA3O.js.map +7 -0
- package/dist/esm/chunks/{chunk.LTT67HTW.js → chunk.SLJ6HDK7.js} +2 -2
- package/dist/esm/chunks/chunk.STB2FEUA.js +7 -0
- package/dist/esm/chunks/chunk.STB2FEUA.js.map +7 -0
- package/dist/esm/chunks/chunk.TBGMJQYJ.js +7 -0
- package/dist/esm/chunks/chunk.TBGMJQYJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.6OW6Q3EW.js → chunk.TU74SREL.js} +2 -2
- package/dist/esm/chunks/{chunk.EK24Y56W.js → chunk.URJQNB3S.js} +2 -2
- package/dist/esm/chunks/{chunk.AEKOP3XT.js → chunk.V24M62MC.js} +2 -2
- package/dist/esm/chunks/{chunk.AEKOP3XT.js.map → chunk.V24M62MC.js.map} +2 -2
- package/dist/esm/chunks/chunk.VFKHRAWD.js +7 -0
- package/dist/esm/chunks/chunk.VFKHRAWD.js.map +7 -0
- package/dist/esm/chunks/chunk.VO6YJCEU.js +7 -0
- package/dist/esm/chunks/chunk.VO6YJCEU.js.map +7 -0
- package/dist/esm/chunks/{chunk.K3KAM2PL.js → chunk.W2LN45WY.js} +2 -2
- package/dist/esm/chunks/{chunk.MHBBMC6O.js → chunk.WMVYRDUJ.js} +2 -2
- package/dist/esm/chunks/{chunk.MHBBMC6O.js.map → chunk.WMVYRDUJ.js.map} +2 -2
- package/dist/esm/chunks/chunk.WY3E33CW.js +7 -0
- package/dist/esm/chunks/chunk.WY3E33CW.js.map +7 -0
- package/dist/esm/chunks/{chunk.Z6FCL3G3.js → chunk.XEFWZKHQ.js} +2 -2
- package/dist/esm/chunks/{chunk.NR3MLTXF.js → chunk.XLL7L2UB.js} +2 -2
- package/dist/esm/chunks/chunk.XNFS7YIB.js +7 -0
- package/dist/esm/chunks/chunk.XNFS7YIB.js.map +7 -0
- package/dist/esm/chunks/chunk.XYAZVLPR.js +7 -0
- package/dist/esm/chunks/chunk.YA3RDJCV.js +7 -0
- package/dist/esm/chunks/chunk.YA3RDJCV.js.map +7 -0
- package/dist/esm/chunks/{chunk.2QHD3DCR.js → chunk.YAERJVPL.js} +2 -2
- package/dist/esm/chunks/chunk.YBZK6LJZ.js +7 -0
- package/dist/esm/chunks/chunk.YKIBREM5.js +7 -0
- package/dist/esm/chunks/chunk.YKIBREM5.js.map +7 -0
- package/dist/esm/chunks/chunk.YWAUEUAH.js +7 -0
- package/dist/esm/chunks/chunk.YWAUEUAH.js.map +7 -0
- package/dist/esm/chunks/chunk.Z5RROENA.js +7 -0
- package/dist/esm/chunks/{chunk.6OUJSOJY.js.map → chunk.Z5RROENA.js.map} +3 -3
- package/dist/esm/chunks/{chunk.ZJC2DSNM.js → chunk.Z5ZLKM7W.js} +2 -2
- package/dist/esm/chunks/chunk.ZGRQDDHO.js +7 -0
- package/dist/esm/chunks/{chunk.BY25RT52.js.map → chunk.ZGRQDDHO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.VSQOTSAO.js → chunk.ZKM667OT.js} +2 -2
- package/dist/esm/chunks/{chunk.VSQOTSAO.js.map → chunk.ZKM667OT.js.map} +2 -2
- package/dist/esm/chunks/chunk.ZRSDTCSD.js +7 -0
- package/dist/esm/chunks/chunk.ZRSDTCSD.js.map +7 -0
- package/dist/esm/chunks/chunk.ZSZFWZAI.js +7 -0
- package/dist/esm/chunks/chunk.ZSZFWZAI.js.map +7 -0
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +1 -1
- package/dist/esm/core/base/index.js +1 -1
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/core/utils/index.js +1 -1
- package/dist/esm/date-picker/index.js +1 -1
- package/dist/esm/date-range-picker/index.js +1 -1
- package/dist/esm/dialog/index.js +1 -1
- package/dist/esm/divider/index.js +1 -1
- package/dist/esm/drawer/base/index.js +1 -1
- package/dist/esm/drawer/drawer/index.js +1 -1
- package/dist/esm/drawer/index.js +1 -1
- package/dist/esm/drawer/mini-drawer/index.js +1 -1
- package/dist/esm/drawer/modal-drawer/index.js +1 -1
- package/dist/esm/expansion-panel/index.js +1 -1
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/index.js +1 -1
- package/dist/esm/floating-label/index.js +1 -1
- package/dist/esm/focus-indicator/index.js +1 -1
- package/dist/esm/icon/index.js +1 -1
- package/dist/esm/icon-button/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inline-message/index.js +1 -1
- package/dist/esm/keyboard-shortcut/index.js +1 -1
- package/dist/esm/label/index.js +7 -0
- package/dist/esm/label/index.js.map +7 -0
- package/dist/esm/label-value/index.js +1 -1
- package/dist/esm/linear-progress/index.js +1 -1
- package/dist/esm/list/index.js +1 -1
- package/dist/esm/list/list/index.js +1 -1
- package/dist/esm/list/list-item/index.js +1 -1
- package/dist/esm/list-dropdown/index.js +1 -1
- package/dist/esm/menu/index.js +1 -1
- package/dist/esm/open-icon/index.js +1 -1
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +1 -1
- package/dist/esm/popup/index.js +1 -1
- package/dist/esm/product-icon/index.js +1 -1
- package/dist/esm/profile-card/index.js +1 -1
- package/dist/esm/quantity-field/index.js +1 -1
- package/dist/esm/radio/index.js +1 -1
- package/dist/esm/ripple/index.js +1 -1
- package/dist/esm/scaffold/index.js +1 -1
- package/dist/esm/select/core/index.js +1 -1
- package/dist/esm/select/index.js +1 -1
- package/dist/esm/select/option/index.js +1 -1
- package/dist/esm/select/option-group/index.js +1 -1
- package/dist/esm/select/select/index.js +1 -1
- package/dist/esm/select/select-dropdown/index.js +1 -1
- package/dist/esm/skeleton/index.js +1 -1
- package/dist/esm/slider/index.js +1 -1
- package/dist/esm/split-button/index.js +7 -0
- package/dist/esm/split-button/index.js.map +7 -0
- package/dist/esm/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view-panel/index.js +1 -1
- package/dist/esm/stack/index.js +1 -1
- package/dist/esm/state-layer/index.js +1 -1
- package/dist/esm/stepper/index.js +1 -1
- package/dist/esm/stepper/step/index.js +1 -1
- package/dist/esm/stepper/stepper/index.js +1 -1
- package/dist/esm/switch/index.js +1 -1
- package/dist/esm/table/index.js +1 -1
- package/dist/esm/tabs/index.js +1 -1
- package/dist/esm/tabs/tab/index.js +1 -1
- package/dist/esm/tabs/tab-bar/index.js +1 -1
- package/dist/esm/text-field/index.js +1 -1
- package/dist/esm/time-picker/index.js +1 -1
- package/dist/esm/toast/index.js +1 -1
- package/dist/esm/toolbar/index.js +1 -1
- package/dist/esm/tooltip/index.js +1 -1
- package/dist/esm/view-switcher/index.js +1 -1
- package/dist/esm/view-switcher/view/index.js +1 -1
- package/dist/forge-dark.css +1 -1
- package/dist/forge.css +1 -1
- package/dist/table/forge-table.css +1 -1
- package/dist/theme/forge-theme.css +1 -1
- package/dist/typography/forge-typography-legacy.css +1 -1
- package/dist/typography/forge-typography.css +1 -1
- package/esm/app-bar/app-bar.js +1 -1
- package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
- package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
- package/esm/autocomplete/autocomplete-constants.d.ts +3 -0
- package/esm/autocomplete/autocomplete-foundation.d.ts +3 -1
- package/esm/autocomplete/autocomplete-foundation.js +16 -2
- package/esm/autocomplete/autocomplete.d.ts +7 -1
- package/esm/autocomplete/autocomplete.js +7 -0
- package/esm/banner/banner-constants.js +1 -1
- package/esm/banner/banner.js +2 -2
- package/esm/bottom-sheet/bottom-sheet.js +1 -1
- package/esm/busy-indicator/busy-indicator.js +2 -2
- package/esm/button/base/base-button-adapter.d.ts +72 -0
- package/esm/button/base/base-button-adapter.js +250 -0
- package/esm/button/base/base-button-constants.d.ts +41 -0
- package/esm/button/base/base-button-constants.js +32 -0
- package/esm/button/base/base-button-foundation.d.ts +75 -0
- package/esm/button/base/base-button-foundation.js +234 -0
- package/esm/button/base/base-button.d.ts +51 -0
- package/esm/button/base/base-button.js +106 -0
- package/esm/button/button-adapter.d.ts +14 -0
- package/esm/button/button-adapter.js +14 -0
- package/esm/button/button-component-delegate.d.ts +4 -4
- package/esm/button/button-component-delegate.js +13 -17
- package/esm/button/button-constants.d.ts +10 -18
- package/esm/button/button-constants.js +6 -22
- package/esm/button/button-foundation.d.ts +25 -0
- package/esm/button/button-foundation.js +49 -0
- package/esm/button/button.d.ts +126 -30
- package/esm/button/button.js +160 -159
- package/esm/button/index.d.ts +3 -1
- package/esm/button/index.js +3 -1
- package/esm/button-area/button-area-adapter.d.ts +48 -0
- package/esm/button-area/button-area-adapter.js +121 -0
- package/esm/button-area/button-area-constants.d.ts +24 -0
- package/esm/button-area/button-area-constants.js +30 -0
- package/esm/button-area/button-area-foundation.d.ts +29 -0
- package/esm/button-area/button-area-foundation.js +94 -0
- package/esm/button-area/button-area.d.ts +29 -0
- package/esm/button-area/button-area.js +55 -0
- package/esm/button-area/index.d.ts +10 -0
- package/esm/button-area/index.js +14 -0
- package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
- package/esm/calendar/calendar-dom-utils.js +18 -30
- package/esm/calendar/calendar-foundation.js +6 -0
- package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
- package/esm/calendar/calendar.js +1 -1
- package/esm/checkbox/checkbox-adapter.d.ts +50 -59
- package/esm/checkbox/checkbox-adapter.js +104 -186
- package/esm/checkbox/checkbox-component-delegate.d.ts +18 -9
- package/esm/checkbox/checkbox-component-delegate.js +58 -51
- package/esm/checkbox/checkbox-constants.d.ts +14 -56
- package/esm/checkbox/checkbox-constants.js +17 -50
- package/esm/checkbox/checkbox-foundation.d.ts +48 -18
- package/esm/checkbox/checkbox-foundation.js +139 -139
- package/esm/checkbox/checkbox.d.ts +120 -9
- package/esm/checkbox/checkbox.js +235 -36
- package/esm/checkbox/index.d.ts +1 -1
- package/esm/checkbox/index.js +1 -1
- package/esm/chip-field/chip-field-adapter.js +1 -1
- package/esm/chip-field/chip-field-constants.d.ts +3 -0
- package/esm/chip-field/chip-field-constants.js +4 -0
- package/esm/chip-field/chip-field-foundation.d.ts +5 -0
- package/esm/chip-field/chip-field-foundation.js +20 -1
- package/esm/chip-field/chip-field.d.ts +5 -0
- package/esm/chip-field/chip-field.js +21 -3
- package/esm/chips/chip/chip.js +1 -1
- package/esm/circular-progress/circular-progress-constants.d.ts +4 -0
- package/esm/circular-progress/circular-progress-constants.js +2 -0
- package/esm/circular-progress/circular-progress-foundation.d.ts +9 -0
- package/esm/circular-progress/circular-progress-foundation.js +21 -0
- package/esm/circular-progress/circular-progress.d.ts +15 -2
- package/esm/circular-progress/circular-progress.js +25 -3
- package/esm/color-picker/color-picker.js +2 -2
- package/esm/constants.d.ts +7 -0
- package/esm/constants.js +4 -0
- package/esm/core/base/base-adapter.d.ts +18 -3
- package/esm/core/base/base-adapter.js +30 -2
- package/esm/core/base/base-component.d.ts +0 -1
- package/esm/core/base/base-component.js +0 -1
- package/esm/core/base/base-focusable-component.d.ts +49 -0
- package/esm/core/base/base-focusable-component.js +90 -0
- package/esm/core/base/base-form-component.d.ts +45 -0
- package/esm/core/base/base-form-component.js +19 -0
- package/esm/core/base/base-nullable-form-component.d.ts +35 -0
- package/esm/core/base/base-nullable-form-component.js +20 -0
- package/esm/core/keyboard/key-manager.d.ts +18 -0
- package/esm/core/keyboard/key-manager.js +47 -0
- package/esm/core/utils/feature-detection.d.ts +10 -0
- package/esm/core/utils/feature-detection.js +12 -0
- package/esm/core/utils/index.d.ts +2 -0
- package/esm/core/utils/index.js +2 -0
- package/esm/core/utils/reflect-utils.d.ts +107 -0
- package/esm/core/utils/reflect-utils.js +227 -0
- package/esm/core/utils/utils.d.ts +8 -0
- package/esm/core/utils/utils.js +15 -0
- package/esm/date-picker/base/base-date-picker-foundation.js +1 -1
- package/esm/date-picker/base/base-date-picker-utils.js +5 -8
- package/esm/date-range-picker/date-range-picker-foundation.js +2 -2
- package/esm/drawer/drawer/drawer.js +1 -1
- package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
- package/esm/expansion-panel/expansion-panel-adapter.d.ts +1 -0
- package/esm/expansion-panel/expansion-panel-adapter.js +7 -2
- package/esm/expansion-panel/expansion-panel.js +1 -1
- package/esm/field/field-constants.d.ts +8 -0
- package/esm/field/field-constants.js +10 -8
- package/esm/field/field-foundation.d.ts +1 -0
- package/esm/field/field-foundation.js +17 -7
- package/esm/file-picker/file-picker-component-delegate.js +1 -1
- package/esm/file-picker/file-picker.js +1 -1
- package/esm/floating-label/floating-label-foundation.d.ts +4 -1
- package/esm/floating-label/floating-label-foundation.js +9 -6
- package/esm/floating-label/floating-label.d.ts +6 -2
- package/esm/floating-label/floating-label.js +2 -2
- package/esm/focus-indicator/focus-indicator-adapter.d.ts +2 -2
- package/esm/focus-indicator/focus-indicator-adapter.js +3 -3
- package/esm/focus-indicator/focus-indicator-foundation.js +4 -3
- package/esm/focus-indicator/focus-indicator.js +1 -1
- package/esm/icon/icon-adapter.d.ts +0 -2
- package/esm/icon/icon-adapter.js +4 -5
- package/esm/icon/icon-foundation.js +0 -1
- package/esm/icon-button/icon-button-adapter.d.ts +12 -0
- package/esm/icon-button/icon-button-adapter.js +11 -0
- package/esm/icon-button/icon-button-component-delegate.d.ts +0 -4
- package/esm/icon-button/icon-button-component-delegate.js +8 -18
- package/esm/icon-button/icon-button-constants.d.ts +26 -17
- package/esm/icon-button/icon-button-constants.js +17 -28
- package/esm/icon-button/icon-button-foundation.d.ts +39 -0
- package/esm/icon-button/icon-button-foundation.js +122 -0
- package/esm/icon-button/icon-button.d.ts +69 -41
- package/esm/icon-button/icon-button.js +107 -213
- package/esm/index.d.ts +3 -0
- package/esm/index.js +8 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -0
- package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +6 -0
- package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +9 -0
- package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -0
- package/esm/keyboard-shortcut/keyboard-shortcut.js +3 -0
- package/esm/label/index.d.ts +11 -0
- package/esm/label/index.js +15 -0
- package/esm/label/label-adapter.d.ts +51 -0
- package/esm/label/label-adapter.js +102 -0
- package/esm/label/label-aware.d.ts +15 -0
- package/esm/label/label-aware.js +13 -0
- package/esm/label/label-constants.d.ts +17 -0
- package/esm/label/label-constants.js +31 -0
- package/esm/label/label-foundation.d.ts +40 -0
- package/esm/label/label-foundation.js +106 -0
- package/esm/label/label.d.ts +49 -0
- package/esm/label/label.js +80 -0
- package/esm/linear-progress/linear-progress-constants.d.ts +3 -0
- package/esm/linear-progress/linear-progress-constants.js +1 -0
- package/esm/linear-progress/linear-progress-foundation.d.ts +5 -0
- package/esm/linear-progress/linear-progress-foundation.js +13 -3
- package/esm/linear-progress/linear-progress.d.ts +8 -1
- package/esm/linear-progress/linear-progress.js +13 -2
- package/esm/list/list/list-adapter.d.ts +17 -41
- package/esm/list/list/list-adapter.js +42 -60
- package/esm/list/list/list-constants.d.ts +13 -5
- package/esm/list/list/list-constants.js +15 -7
- package/esm/list/list/list-foundation.d.ts +24 -16
- package/esm/list/list/list-foundation.js +84 -75
- package/esm/list/list/list.d.ts +47 -8
- package/esm/list/list/list.js +83 -11
- package/esm/list/list-item/list-item-adapter.d.ts +39 -90
- package/esm/list/list-item/list-item-adapter.js +147 -127
- package/esm/list/list-item/list-item-constants.d.ts +31 -27
- package/esm/list/list-item/list-item-constants.js +19 -32
- package/esm/list/list-item/list-item-foundation.d.ts +41 -56
- package/esm/list/list-item/list-item-foundation.js +139 -204
- package/esm/list/list-item/list-item.d.ts +120 -37
- package/esm/list/list-item/list-item.js +171 -84
- package/esm/list-dropdown/list-dropdown-adapter.js +1 -6
- package/esm/list-dropdown/list-dropdown-constants.d.ts +4 -0
- package/esm/list-dropdown/list-dropdown-utils.js +23 -24
- package/esm/menu/menu-constants.js +1 -1
- package/esm/menu/menu-foundation.js +0 -4
- package/esm/menu/menu.js +1 -1
- package/esm/paginator/paginator-adapter.d.ts +30 -24
- package/esm/paginator/paginator-adapter.js +68 -0
- package/esm/paginator/paginator-constants.js +4 -4
- package/esm/paginator/paginator-foundation.d.ts +35 -80
- package/esm/paginator/paginator-foundation.js +221 -255
- package/esm/paginator/paginator.d.ts +1 -2
- package/esm/paginator/paginator.js +5 -4
- package/esm/popup/popup-adapter.d.ts +3 -1
- package/esm/popup/popup-adapter.js +3 -0
- package/esm/popup/popup-foundation.js +5 -3
- package/esm/popup/popup.d.ts +4 -1
- package/esm/popup/popup.js +1 -1
- package/esm/profile-card/profile-card.js +2 -2
- package/esm/quantity-field/quantity-field-constants.js +2 -2
- package/esm/select/core/base-select-adapter.js +3 -0
- package/esm/select/core/base-select-foundation.js +3 -1
- package/esm/select/option/option-constants.d.ts +1 -0
- package/esm/select/option/option-constants.js +1 -0
- package/esm/select/option/option-foundation.d.ts +13 -0
- package/esm/select/option/option-foundation.js +28 -0
- package/esm/select/option/option.d.ts +7 -0
- package/esm/select/option/option.js +13 -0
- package/esm/slider/slider-adapter.d.ts +1 -1
- package/esm/slider/slider-adapter.js +3 -2
- package/esm/slider/slider-constants.js +3 -3
- package/esm/slider/slider.d.ts +6 -11
- package/esm/slider/slider.js +11 -7
- package/esm/split-button/index.d.ts +10 -0
- package/esm/split-button/index.js +14 -0
- package/esm/split-button/split-button-adapter.d.ts +30 -0
- package/esm/split-button/split-button-adapter.js +84 -0
- package/esm/split-button/split-button-constants.d.ts +21 -0
- package/esm/split-button/split-button-constants.js +23 -0
- package/esm/split-button/split-button-foundation.d.ts +37 -0
- package/esm/split-button/split-button-foundation.js +77 -0
- package/esm/split-button/split-button.d.ts +57 -0
- package/esm/split-button/split-button.js +103 -0
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/state-layer/state-layer-adapter.js +1 -0
- package/esm/state-layer/state-layer-foundation.js +10 -1
- package/esm/state-layer/state-layer.js +1 -1
- package/esm/stepper/stepper/stepper-foundation.js +1 -1
- package/esm/switch/index.d.ts +2 -0
- package/esm/switch/index.js +2 -0
- package/esm/switch/switch-adapter.d.ts +64 -0
- package/esm/switch/switch-adapter.js +151 -0
- package/esm/switch/switch-component-delegate.d.ts +22 -6
- package/esm/switch/switch-component-delegate.js +64 -29
- package/esm/switch/switch-constants.d.ts +23 -6
- package/esm/switch/switch-constants.js +29 -10
- package/esm/switch/switch-foundation.d.ts +65 -0
- package/esm/switch/switch-foundation.js +162 -0
- package/esm/switch/switch.d.ts +162 -33
- package/esm/switch/switch.js +249 -136
- package/esm/table/table-foundation.d.ts +2 -0
- package/esm/table/table-foundation.js +17 -6
- package/esm/table/table-utils.js +13 -1
- package/esm/table/types.d.ts +1 -0
- package/esm/tabs/tab/tab.js +2 -2
- package/esm/tabs/tab-bar/tab-bar-adapter.js +17 -20
- package/esm/tabs/tab-bar/tab-bar.js +1 -1
- package/esm/time-picker/time-picker-adapter.js +5 -8
- package/esm/time-picker/time-picker-foundation.js +3 -3
- package/esm/toast/toast-adapter.d.ts +1 -1
- package/esm/toast/toast-adapter.js +1 -1
- package/esm/toast/toast.js +2 -2
- package/package.json +1 -7
- package/styles/app-bar/_mixins.scss +9 -4
- package/styles/banner/banner.scss +0 -1
- package/styles/bottom-sheet/bottom-sheet.scss +0 -1
- package/styles/busy-indicator/_mixins.scss +1 -1
- package/styles/busy-indicator/busy-indicator.scss +0 -1
- package/styles/button/_configuration.scss +16 -0
- package/styles/button/_core.scss +183 -0
- package/styles/button/_token-utils.scss +30 -0
- package/styles/button/button.scss +208 -0
- package/styles/button/index.scss +8 -0
- package/styles/button-area/_mixins.scss +47 -0
- package/styles/button-area/button-area.scss +16 -0
- package/styles/button-toggle/button-toggle/_mixins.scss +26 -7
- package/styles/calendar/calendar-menu/_mixins.scss +48 -2
- package/styles/calendar/calendar.scss +0 -4
- package/styles/{button/forge-button.scss → checkbox/_configuration.scss} +4 -3
- package/styles/checkbox/_core.scss +157 -0
- package/styles/checkbox/_token-utils.scss +30 -0
- package/styles/checkbox/checkbox.scss +143 -7
- package/styles/checkbox/index.scss +8 -0
- package/styles/chip-field/_base.scss +1 -0
- package/styles/chip-field/_selector.scss +2 -2
- package/styles/chips/chip/_mixins.scss +21 -7
- package/styles/circular-progress/_configuration.scss +8 -15
- package/styles/circular-progress/_core.scss +19 -19
- package/styles/circular-progress/_token-utils.scss +30 -0
- package/styles/circular-progress/circular-progress.scss +51 -4
- package/styles/circular-progress/index.scss +1 -0
- package/styles/color-picker/color-picker.scss +0 -3
- package/styles/core/styles/_utils.scss +148 -11
- package/styles/core/styles/scrollbar/index.scss +45 -0
- package/styles/core/styles/spacing/index.scss +8 -1
- package/styles/core/styles/theme/_color-utils.scss +63 -0
- package/styles/core/styles/theme/_utils.scss +82 -0
- package/styles/core/styles/theme/index.scss +39 -13
- package/styles/core/styles/tokens/_token-utils.scss +118 -0
- package/styles/core/styles/tokens/button/_tokens.scss +115 -0
- package/styles/core/styles/tokens/checkbox/_tokens.scss +69 -0
- package/styles/core/styles/tokens/circular-progress/_tokens.scss +13 -3
- package/styles/core/styles/tokens/color-palette/_extended-color-palette.scss +88 -0
- package/styles/core/styles/tokens/color-palette/index.scss +7 -0
- package/styles/core/styles/tokens/focus-indicator/_tokens.scss +8 -5
- package/styles/core/styles/tokens/icon-button/_tokens.scss +106 -0
- package/styles/core/styles/tokens/index.scss +0 -1
- package/styles/core/styles/tokens/linear-progress/_tokens.scss +15 -4
- package/styles/core/styles/tokens/list/list/_tokens.scss +16 -0
- package/styles/core/styles/tokens/list/list-item/_tokens.scss +77 -0
- package/styles/core/styles/tokens/scrollbar/_tokens.scss +26 -0
- package/styles/core/styles/tokens/slider/_tokens.scss +9 -11
- package/styles/core/styles/tokens/spacing/_tokens.scss +25 -11
- package/styles/core/styles/tokens/split-button/_tokens.scss +21 -0
- package/styles/core/styles/tokens/state-layer/_tokens.scss +5 -5
- package/styles/core/styles/tokens/switch/_tokens.scss +108 -0
- package/styles/core/styles/tokens/tabs/tab/_tokens.scss +3 -1
- package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +3 -3
- package/styles/core/styles/tokens/theme/_color-emphasis.scss +38 -0
- package/styles/core/styles/tokens/theme/_token-utils.scss +50 -0
- package/styles/core/styles/tokens/theme/_tokens.core.scss +45 -0
- package/styles/core/styles/tokens/theme/_tokens.scss +62 -117
- package/styles/core/styles/tokens/theme/_tokens.status.scss +49 -0
- package/styles/core/styles/tokens/theme/_tokens.surface.scss +65 -0
- package/styles/core/styles/tokens/theme/_tokens.text.scss +38 -0
- package/styles/core/styles/tokens/theme/_tokens.utilities.scss +30 -0
- package/styles/core/styles/tokens/typography/_scale.scss +39 -0
- package/styles/core/styles/tokens/typography/_tokens.body.scss +41 -0
- package/styles/core/styles/tokens/typography/_tokens.core.scss +31 -0
- package/styles/core/styles/tokens/typography/_tokens.display.scss +67 -0
- package/styles/core/styles/tokens/typography/_tokens.heading.scss +70 -0
- package/styles/core/styles/tokens/typography/_tokens.label.scss +36 -0
- package/styles/core/styles/tokens/typography/_tokens.scss +16 -211
- package/styles/core/styles/tokens/typography/_tokens.subheading.scss +66 -0
- package/styles/core/styles/tokens/typography/_type-utils.scss +37 -0
- package/styles/core/styles/tokens/typography/_weight.scss +20 -0
- package/styles/core/styles/typography/index.scss +56 -6
- package/styles/file-picker/_mixins.scss +1 -1
- package/styles/focus-indicator/_animations.scss +6 -4
- package/styles/focus-indicator/_configuration.scss +2 -15
- package/styles/focus-indicator/_core.scss +20 -25
- package/styles/focus-indicator/_token-utils.scss +31 -0
- package/styles/focus-indicator/focus-indicator.scss +28 -6
- package/styles/focus-indicator/index.scss +1 -0
- package/styles/forge.scss +0 -2
- package/styles/icon-button/_configuration.scss +16 -0
- package/styles/icon-button/_core.scss +145 -0
- package/styles/icon-button/_token-utils.scss +30 -0
- package/styles/icon-button/icon-button.scss +315 -0
- package/styles/icon-button/index.scss +8 -0
- package/styles/label/_core.scss +17 -0
- package/styles/{icon-button/forge-icon-button.scss → label/index.scss} +1 -3
- package/styles/label/label.scss +18 -0
- package/styles/linear-progress/_animations.scss +3 -1
- package/styles/linear-progress/_configuration.scss +15 -16
- package/styles/linear-progress/_core.scss +17 -19
- package/styles/linear-progress/_token-utils.scss +31 -0
- package/styles/linear-progress/index.scss +1 -0
- package/styles/linear-progress/linear-progress.scss +42 -6
- package/styles/list/list/_configuration.scss +10 -0
- package/styles/list/list/_core.scss +16 -0
- package/styles/list/list/_token-utils.scss +30 -0
- package/styles/list/list/index.scss +8 -0
- package/styles/list/list/list.scss +29 -3
- package/styles/list/list-item/_configuration.scss +16 -0
- package/styles/list/list-item/_core.scss +195 -0
- package/styles/list/list-item/_token-utils.scss +30 -0
- package/styles/list/list-item/index.scss +8 -0
- package/styles/list/list-item/list-item.scss +199 -12
- package/styles/menu/menu.scss +1 -1
- package/styles/paginator/paginator.scss +0 -1
- package/styles/profile-card/profile-card.scss +0 -1
- package/styles/slider/_configuration.scss +5 -50
- package/styles/slider/_core.scss +59 -70
- package/styles/slider/_token-utils.scss +30 -0
- package/styles/slider/index.scss +1 -0
- package/styles/slider/slider.scss +28 -5
- package/styles/split-button/_configuration.scss +12 -0
- package/styles/split-button/_token-utils.scss +30 -0
- package/styles/split-button/index.scss +7 -0
- package/styles/split-button/split-button.scss +97 -0
- package/styles/state-layer/_configuration.scss +2 -9
- package/styles/state-layer/_core.scss +11 -16
- package/styles/state-layer/_token-utils.scss +31 -0
- package/styles/state-layer/index.scss +1 -0
- package/styles/state-layer/state-layer.scss +7 -0
- package/styles/switch/_configuration.scss +10 -0
- package/styles/switch/_core.scss +252 -0
- package/styles/switch/_token-utils.scss +30 -0
- package/styles/switch/index.scss +8 -0
- package/styles/switch/switch.scss +167 -47
- package/styles/table/_mixins.scss +20 -2
- package/styles/tabs/tab/_configuration.scss +7 -44
- package/styles/tabs/tab/_core.scss +30 -35
- package/styles/tabs/tab/_token-utils.scss +30 -0
- package/styles/tabs/tab/index.scss +1 -0
- package/styles/tabs/tab/tab.scss +89 -45
- package/styles/tabs/tab-bar/_configuration.scss +2 -5
- package/styles/tabs/tab-bar/_core.scss +26 -9
- package/styles/tabs/tab-bar/_token-utils.scss +30 -0
- package/styles/tabs/tab-bar/index.scss +2 -1
- package/styles/tabs/tab-bar/tab-bar.scss +68 -34
- package/styles/theme/_theme-dark.scss +0 -2
- package/styles/theme/_theme.scss +3 -45
- package/styles/theme/forge-theme.scss +21 -3
- package/styles/toast/_mixins.scss +1 -1
- package/styles/toast/toast.scss +0 -2
- package/styles/typography/_mixins.scss +0 -20
- package/styles/typography/forge-typography.scss +5 -2
- package/dist/button/forge-button.css +0 -6
- package/dist/esm/chunks/chunk.2AJ7FFI6.js +0 -7
- package/dist/esm/chunks/chunk.2AJ7FFI6.js.map +0 -7
- package/dist/esm/chunks/chunk.3HB22HCX.js +0 -7
- package/dist/esm/chunks/chunk.4C6KHYUO.js +0 -7
- package/dist/esm/chunks/chunk.54OOOQ4R.js +0 -7
- package/dist/esm/chunks/chunk.54OOOQ4R.js.map +0 -7
- package/dist/esm/chunks/chunk.5565ZSTH.js +0 -7
- package/dist/esm/chunks/chunk.6GC5AJPE.js +0 -7
- package/dist/esm/chunks/chunk.6GC5AJPE.js.map +0 -7
- package/dist/esm/chunks/chunk.6OUJSOJY.js +0 -7
- package/dist/esm/chunks/chunk.7CGKFRBK.js +0 -7
- package/dist/esm/chunks/chunk.7CGKFRBK.js.map +0 -7
- package/dist/esm/chunks/chunk.7DB3XVPI.js +0 -7
- package/dist/esm/chunks/chunk.ALIYGJXA.js +0 -129
- package/dist/esm/chunks/chunk.ALIYGJXA.js.map +0 -7
- package/dist/esm/chunks/chunk.B4T3R53C.js +0 -7
- package/dist/esm/chunks/chunk.BH2TUG2V.js +0 -7
- package/dist/esm/chunks/chunk.BH2TUG2V.js.map +0 -7
- package/dist/esm/chunks/chunk.BKL2BAYW.js +0 -7
- package/dist/esm/chunks/chunk.BKL2BAYW.js.map +0 -7
- package/dist/esm/chunks/chunk.BY25RT52.js +0 -7
- package/dist/esm/chunks/chunk.CDGZYUQS.js +0 -7
- package/dist/esm/chunks/chunk.CKW7KKDW.js +0 -7
- package/dist/esm/chunks/chunk.CKW7KKDW.js.map +0 -7
- package/dist/esm/chunks/chunk.CXY6K7EI.js +0 -7
- package/dist/esm/chunks/chunk.CXY6K7EI.js.map +0 -7
- package/dist/esm/chunks/chunk.D5TAI6Q7.js +0 -7
- package/dist/esm/chunks/chunk.D5TAI6Q7.js.map +0 -7
- package/dist/esm/chunks/chunk.DBNJHUYY.js +0 -7
- package/dist/esm/chunks/chunk.DBNJHUYY.js.map +0 -7
- package/dist/esm/chunks/chunk.DMCBAYQX.js +0 -7
- package/dist/esm/chunks/chunk.DMCBAYQX.js.map +0 -7
- package/dist/esm/chunks/chunk.DXN7ZOH3.js +0 -7
- package/dist/esm/chunks/chunk.DXN7ZOH3.js.map +0 -7
- package/dist/esm/chunks/chunk.F4VXEE76.js +0 -7
- package/dist/esm/chunks/chunk.F4VXEE76.js.map +0 -7
- package/dist/esm/chunks/chunk.F5SY2D4B.js +0 -7
- package/dist/esm/chunks/chunk.F74YURLV.js +0 -7
- package/dist/esm/chunks/chunk.F74YURLV.js.map +0 -7
- package/dist/esm/chunks/chunk.FG2GNAM2.js +0 -7
- package/dist/esm/chunks/chunk.FG2GNAM2.js.map +0 -7
- package/dist/esm/chunks/chunk.GNG64TXK.js +0 -7
- package/dist/esm/chunks/chunk.GNG64TXK.js.map +0 -7
- package/dist/esm/chunks/chunk.GO5A4GKZ.js +0 -7
- package/dist/esm/chunks/chunk.GO5A4GKZ.js.map +0 -7
- package/dist/esm/chunks/chunk.HHCO64F3.js +0 -7
- package/dist/esm/chunks/chunk.HHCO64F3.js.map +0 -7
- package/dist/esm/chunks/chunk.ISC7SZSP.js +0 -7
- package/dist/esm/chunks/chunk.ISC7SZSP.js.map +0 -7
- package/dist/esm/chunks/chunk.IX25DYIM.js +0 -7
- package/dist/esm/chunks/chunk.IX25DYIM.js.map +0 -7
- package/dist/esm/chunks/chunk.JUJGROHA.js +0 -7
- package/dist/esm/chunks/chunk.JUJGROHA.js.map +0 -7
- package/dist/esm/chunks/chunk.KJP2VA6Q.js +0 -7
- package/dist/esm/chunks/chunk.KJP2VA6Q.js.map +0 -7
- package/dist/esm/chunks/chunk.LK4AAUOP.js +0 -7
- package/dist/esm/chunks/chunk.LK4AAUOP.js.map +0 -7
- package/dist/esm/chunks/chunk.LXPFG7MW.js +0 -7
- package/dist/esm/chunks/chunk.LXPFG7MW.js.map +0 -7
- package/dist/esm/chunks/chunk.MACPUZC2.js +0 -7
- package/dist/esm/chunks/chunk.MACPUZC2.js.map +0 -7
- package/dist/esm/chunks/chunk.MGLL67VO.js +0 -7
- package/dist/esm/chunks/chunk.MXEKIEJA.js +0 -7
- package/dist/esm/chunks/chunk.MXEKIEJA.js.map +0 -7
- package/dist/esm/chunks/chunk.N43BCJHN.js +0 -7
- package/dist/esm/chunks/chunk.N43BCJHN.js.map +0 -7
- package/dist/esm/chunks/chunk.P2CW5MQO.js +0 -12
- package/dist/esm/chunks/chunk.P2CW5MQO.js.map +0 -7
- package/dist/esm/chunks/chunk.P2ZCNO63.js +0 -7
- package/dist/esm/chunks/chunk.P2ZCNO63.js.map +0 -7
- package/dist/esm/chunks/chunk.PEBT47AU.js +0 -7
- package/dist/esm/chunks/chunk.PH3HUFJJ.js +0 -7
- package/dist/esm/chunks/chunk.PH3HUFJJ.js.map +0 -7
- package/dist/esm/chunks/chunk.Q7JUJNYD.js +0 -7
- package/dist/esm/chunks/chunk.QCRRHGBA.js +0 -7
- package/dist/esm/chunks/chunk.QCRRHGBA.js.map +0 -7
- package/dist/esm/chunks/chunk.SBYX7VZ4.js +0 -7
- package/dist/esm/chunks/chunk.SFCGOCQK.js +0 -7
- package/dist/esm/chunks/chunk.SJJS4LYN.js +0 -7
- package/dist/esm/chunks/chunk.TYLOAD7R.js +0 -7
- package/dist/esm/chunks/chunk.UJ2WQOLO.js +0 -7
- package/dist/esm/chunks/chunk.UJ2WQOLO.js.map +0 -7
- package/dist/esm/chunks/chunk.VVXSELXX.js +0 -7
- package/dist/esm/chunks/chunk.VVXSELXX.js.map +0 -7
- package/dist/esm/chunks/chunk.VZWNNK7A.js +0 -7
- package/dist/esm/chunks/chunk.VZWNNK7A.js.map +0 -7
- package/dist/esm/chunks/chunk.X3C3J5MH.js +0 -7
- package/dist/esm/chunks/chunk.X3C3J5MH.js.map +0 -7
- package/dist/esm/chunks/chunk.XGOAYMK2.js +0 -7
- package/dist/esm/chunks/chunk.XGOAYMK2.js.map +0 -7
- package/dist/esm/chunks/chunk.YRMR7IOS.js +0 -7
- package/dist/esm/chunks/chunk.YRMR7IOS.js.map +0 -7
- package/dist/esm/chunks/chunk.YX7WLO5Y.js +0 -7
- package/dist/esm/chunks/chunk.YZLASVCK.js +0 -177
- package/dist/esm/chunks/chunk.YZLASVCK.js.map +0 -7
- package/dist/esm/chunks/chunk.ZDD2NLGP.js +0 -7
- package/dist/esm/chunks/chunk.ZKGSQQGU.js +0 -12
- package/dist/esm/chunks/chunk.ZKGSQQGU.js.map +0 -7
- package/dist/esm/chunks/chunk.ZVBZ3LGP.js +0 -7
- package/dist/esm/chunks/chunk.ZVBZ3LGP.js.map +0 -7
- package/dist/icon-button/forge-icon-button.css +0 -6
- package/styles/button/_button-base.scss +0 -183
- package/styles/button/_button-filled-theme.scss +0 -60
- package/styles/button/_button-filled.scss +0 -71
- package/styles/button/_button-outlined-theme.scss +0 -175
- package/styles/button/_button-outlined.scss +0 -76
- package/styles/button/_button-protected-theme.scss +0 -60
- package/styles/button/_button-protected.scss +0 -88
- package/styles/button/_button-ripple.scss +0 -69
- package/styles/button/_button-shared-theme.scss +0 -447
- package/styles/button/_button-text-theme.scss +0 -60
- package/styles/button/_button-text.scss +0 -57
- package/styles/button/_button.mixins.scss +0 -148
- package/styles/button/_mixins.scss +0 -183
- package/styles/checkbox/_checkbox-custom-properties.scss +0 -11
- package/styles/checkbox/_checkbox-theme.scss +0 -577
- package/styles/checkbox/_checkbox.mixins.scss +0 -595
- package/styles/icon-button/_mixins.scss +0 -345
- package/styles/icon-button/_variables.scss +0 -42
- package/styles/list/list/_mixins.scss +0 -45
- package/styles/list/list-item/_mixins.scss +0 -413
- package/styles/list/list-item/_variables.scss +0 -43
- package/styles/switch/_switch-mixins.scss +0 -301
- package/styles/switch/_switch-theme.scss +0 -701
- /package/dist/esm/chunks/{chunk.SMGXXR6K.js.map → chunk.2MSL7CYM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.M56LSSPW.js.map → chunk.3HCYRDRI.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4ZKX3SO5.js.map → chunk.3R4BUIQP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YWNCJ7XP.js.map → chunk.3ZPSN2QG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LFODKHUO.js.map → chunk.5N4N6DL6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QOJESHEV.js.map → chunk.675V42JS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DG4ZM3AW.js.map → chunk.AMLT6XJP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MTKSU2BV.js.map → chunk.APPY5AYL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4YFVG4KP.js.map → chunk.ARQMMZJL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5MZ5SGMO.js.map → chunk.BB4UF5RX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js.map → chunk.DTLZOIUQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OWCYRSI3.js.map → chunk.FLWNOP42.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.S3JMOOWC.js.map → chunk.FXIWCHLW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CWTV3TB3.js.map → chunk.GNDKQPDV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ULY4H76N.js.map → chunk.HAKF2T2D.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WPG7NNQX.js.map → chunk.HOLCNJXC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.W4247Q2P.js.map → chunk.HRRJIFC5.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SU4FU7GK.js.map → chunk.IDMDBMBR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FCATJM34.js.map → chunk.IHAHJPMB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XKI46BH2.js.map → chunk.IMLJD35R.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.624UKZFU.js.map → chunk.IT7XPDAV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JLLHDJSO.js.map → chunk.JVLJH6PR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4C6KHYUO.js.map → chunk.KPJWP77R.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2EWV2XBP.js.map → chunk.KV5IKYG2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.A62DE5PD.js.map → chunk.LCR4YH3O.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FWFOOQMA.js.map → chunk.LOG6GQOK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YLG6ZC5K.js.map → chunk.NUMKGUCK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XI3MJSIS.js.map → chunk.O6V3YNMO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TK5I4RHF.js.map → chunk.QLCVRJ3Q.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Q7JUJNYD.js.map → chunk.RP674CRC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LTT67HTW.js.map → chunk.SLJ6HDK7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6OW6Q3EW.js.map → chunk.TU74SREL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.EK24Y56W.js.map → chunk.URJQNB3S.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.K3KAM2PL.js.map → chunk.W2LN45WY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Z6FCL3G3.js.map → chunk.XEFWZKHQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NR3MLTXF.js.map → chunk.XLL7L2UB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3HB22HCX.js.map → chunk.XYAZVLPR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2QHD3DCR.js.map → chunk.YAERJVPL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZDD2NLGP.js.map → chunk.YBZK6LJZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZJC2DSNM.js.map → chunk.Z5ZLKM7W.js.map} +0 -0
- /package/styles/core/styles/tokens/{_color-palette.scss → color-palette/_material-color-palette.scss} +0 -0
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import{a,b as n}from"./chunk.
|
|
7
|
-
//# sourceMappingURL=chunk.
|
|
6
|
+
import{a,b as n}from"./chunk.36F2GVWS.js";import{a as o,e as r,k as i}from"./chunk.JAWV5Y5T.js";import{d as t}from"./chunk.M3QDAYD2.js";var h=`${n}skeleton`,s={elementName:h};var g='<template><div class="forge-skeleton" part="root"></div></template>',p='.forge-skeleton{display:block;width:100%;height:100%}.forge-skeleton::after{display:block;position:absolute;width:100%;height:100%;-webkit-transform:translateX(-100%);transform:translateX(-100%);background-repeat:no-repeat;background-image:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(var(--forge-skeleton-theme-gradient,rgba(255,255,255,.3))),to(transparent));background-image:linear-gradient(90deg,transparent,var(--forge-skeleton-theme-gradient,rgba(255,255,255,.3)),transparent);-webkit-animation:loading 1.5s ease-in infinite;animation:loading 1.5s ease-in infinite;content:""}@-webkit-keyframes loading{100%,25%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes loading{100%,25%{-webkit-transform:translateX(100%);transform:translateX(100%)}}:host{height:48px;height:var(--forge-skeleton-height,48px);margin:16px 0;margin:var(--forge-skeleton-margin,16px 0);border-radius:4px;border-radius:var(--forge-skeleton-border-radius,4px);background-color:rgba(0,0,0,.12);background-color:var(--forge-skeleton-theme-background,rgba(0,0,0,.12));display:block;position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}:host([hidden]){display:none}:host([avatar]){height:48px;height:var(--forge-skeleton-avatar-size,48px);width:48px;width:var(--forge-skeleton-avatar-size,48px);border-radius:50%}:host([list-item]){height:32px;height:var(--forge-skeleton-list-item-height,32px);margin:12px 8px;margin:var(--forge-skeleton-list-item-margin,12px 8px)}:host([text]){height:16px;height:var(--forge-skeleton-text-height,16px)}:host([stretch]){height:100%;width:100%}:host([chip]){height:32px;height:var(--forge-skeleton-chip-height,32px);width:72px;width:var(--forge-skeleton-chip-width,72px);border-radius:16px}:host([button]){height:36px;height:var(--forge-skeleton-button-height,36px);width:72px;width:var(--forge-skeleton-button-width,72px)}:host([form-field]){height:40px;height:var(--forge-skeleton-form-field-height,40px);width:256px;width:var(--forge-skeleton-form-field-width,256px)}',e=class extends i{constructor(){super(),r(this,g,p)}};e=t([a({name:s.elementName})],e);function N(){o(e)}export{s as a,e as b,N as c};
|
|
7
|
+
//# sourceMappingURL=chunk.LCR4YH3O.js.map
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import{a as i,b as n}from"./chunk.
|
|
7
|
-
//# sourceMappingURL=chunk.
|
|
6
|
+
import{a as i,b as n}from"./chunk.36F2GVWS.js";import{a as o,e as t,k as d}from"./chunk.JAWV5Y5T.js";import{d as r}from"./chunk.M3QDAYD2.js";var a=`${n}divider`,s={ROOT:".forge-divider"},m={elementName:a,classes:s};var l='<template><div class="forge-divider" role="separator" part="root"></div></template>',p=".forge-divider{border:none;border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);border-bottom-width:1px;border-bottom-width:var(--forge-divider-width,1px);margin:0;margin:var(--forge-divider-margin,0);height:0;border-bottom-style:solid}:host{display:block;contain:content}:host([hidden]){display:none}:host-context(forge-drawer) .forge-divider{margin:var(--forge-divider-drawer-margin,4px) 0}:host([vertical]){display:inline-block;height:100%}:host([vertical]) .forge-divider{border:none;border-right-color:#e0e0e0;border-right-color:var(--forge-theme-border-color,#e0e0e0);border-right-width:1px;border-right-width:var(--forge-divider-width,1px);margin:0;margin:var(--forge-divider-margin,0);height:100%;width:0;border-right-style:solid}",e=class extends d{constructor(){super(),t(this,l,p)}};e=r([i({name:m.elementName})],e);function I(){o(e)}export{m as a,e as b,I as c};
|
|
7
|
+
//# sourceMappingURL=chunk.LOG6GQOK.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{b as g,g as p}from"./chunk.J2M2MXP2.js";var A=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,L=/a-z/i,h=10;function I(t){if(t=t.replace(/_|\s/g,""),A.test(t)){let l=new Date(t);if(L.test(t)||l.setMinutes(l.getMinutes()+l.getTimezoneOffset()),p(l))return l}let e=[];t.indexOf("/")!==-1?e=t.split("/"):t.indexOf("-")!==-1?e=t.split("-"):(t.length===6||t.length===8)&&!isNaN(+t)&&(e=[t.substring(0,2),t.substring(2,4),t.substring(4)]);let r=e.length===3,[n,i,o]=e;if(n==="0"&&(n="1"),i==="0"&&(i="1"),typeof o=="string"&&o.length===3&&(o=o.padStart(4,"0")),r){let l=n.length===1||n.length===2,u=i.length===1||i.length===2,f=o.length===2||o.length===4;if(!l||!u||!f)return null}else return null;if(o.length===2){let l=new Date().getFullYear()-(100-h),u=new Date().getFullYear()+h,f=String(l).slice(0,2),v=String(u).slice(0,2),S=+String(u).slice(2);o=+o<=S?`${v}${o}`:`${f}${o}`}let s=+n,a=+i,c=+o;s>12&&(s=12);let d=new Date(c,s,0).getDate();a>d&&(a=d);let m=new Date(c,s-1,a,0,0,0,0);return p(m)?m:null}function O(t){let e=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),n=String(t.getFullYear()).padStart(4,"0");return[e,r,n].join("/")}function R(t,e){return!t&&!e?!0:!t||!e||!p(t)||!p(e)?!1:t.setHours(0,0,0,0)===e.setHours(0,0,0,0)}function _(t,e){return new Date(e!=null?e:1970,t+1,0)}function N(t,e){return _(t,e).getDate()}function k(){return HTMLElement.prototype.hasOwnProperty("popover")}var Y=["aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-current","aria-description","aria-disabled","aria-expanded","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"],U=["aria-autocomplete","aria-description","aria-invalid","aria-keyshortcuts","aria-label"],V=["checked","disabled","indeterminate","readOnly","required","value"],G=["name","value","formaction","formenctype","formmethod","formnovalidate","formtarget"];function z(t,e){return e.map(r=>`${t}:${r}`)}function W(t,e,r){e.some(a=>a.toLowerCase().startsWith("aria-"))&&t.setAttribute("role","presentation");let n=a=>{let c=a.split(":"),d=c.length===2?c[0]:null,m=c.length===2?c[1]:c[0],l=t.getAttribute(a);r.call({},m,l,d)};e.forEach(a=>n(a));let i={attributeFilter:e},o=a=>{a.forEach(c=>n(c.attributeName))},s=new MutationObserver(o);return s.observe(t,i),s}function y(t,e,r){r.forEach(n=>{let i=t.getAttribute(n);i!==null&&e.setAttribute(n,i)})}function w(t,e,r){r.forEach(n=>{let i=t[n];g(i)&&(e[n]=i)})}function D(t,e){let r=t.validationMessage;r&&e.setCustomValidity(r)}var E=class{get el(){return this._el}static cloneAttributes(e,r,n){y(e,r,n)}static cloneProperties(e,r,n){w(e,r,n)}static cloneValidationMessage(e,r){Object.hasOwnProperty.call(e,"validationMessage")&&Object.hasOwnProperty.call(r,"validationMessage")?D(e,r):console.warn("cloneValidationMessage() requires both elements to be input elements.")}initialize(e,r){this._attachCallback=r,this._el=e}attachElement(e){this._attachCallback(e,this._el),this._el=e}};function X(t,e){let r=document.createElement("div");r.innerHTML=t;for(let i=r.childNodes.length-1;i>=0;i--)r.childNodes[i].nodeName.toLowerCase()!=="svg"&&r.removeChild(r.childNodes[i]);let n=r.firstElementChild;return n&&n.nodeName.toLowerCase()==="svg"&&b(n)?(e&&n.setAttribute("viewBox",e),!n.hasAttribute("viewBox")&&e&&n.setAttribute("viewBox",e),n.removeAttribute("height"),n.removeAttribute("width"),n):null}function b(t){if(t.nodeType!==1)return!0;if(t.nodeName.toLowerCase()==="script")return!1;let e=Array.from(t.attributes);for(let n of e)if(typeof n.name=="string"&&n.name.toLowerCase().startsWith("on"))return!1;let r=Array.from(t.childNodes);for(let n of r)if(!b(n))return!1;return!0}var M=/^(0?[0-9]|1\d|2[0-3]):([0-5]\d)(:([0-5]\d))?$/,x=/^(0?[1-9]|1[0-2]):([0-5]\d)(:([0-5]\d))?\s*([AaPp][Mm])?$/,H=/^(\d?\d?):?(\d?\d?)(:?(\d?\d?))?\s*([AaPp][Mm]?)?$/,T=/[AaPp][Mm]?/;function q(t){let e=t.match(M)||[null,0,0,null,0],r=e[1],n=e[2],i=e[4];return{hours:r,minutes:n,seconds:i}}function K(t){let e=t.match(x)||[null,0,0,null,0,"AM"],r=e[1],n=e[2],i=e[4],o=e[5];return{hours:r,minutes:n,seconds:i,meridiem:o}}function Z(t){return M.test(t)||x.test(t)}function J(t,e,r){if(t=t&&typeof t=="string"?t.replace(/_|\s/g,""):"",/^\s*$/.test(t)||/^:+$/.test(t))return"";let n=t.match(H);if(!n)return"";let i=n[1],o=n[2],s=n[4],a=n[5],c=t.match(T);c&&(a=c[0],t=t.replace(a,""),a.length===1&&(a+="m")),t.length===3&&!t.includes(":")&&(i=t[0],o=t.substring(1)),e?a="":T.test(a)?a=a.toUpperCase():/^[AaPp]/.test(a)?a.toLowerCase().startsWith("a")?a="AM":a.toLowerCase().startsWith("p")&&(a="PM"):a="";let d=+i||0,m=+o||0,l=!a||e?23:12;if(d>=l?i=String(l):d<0&&(i="00"),i=i.padStart(2,"0"),o!==void 0&&(m>59?o="59":m<0?o="00":o=o.padStart(2,"0")),s!==void 0){let f=+s||0;f>59?s="59":f<0?s="00":s=s.padStart(2,"0")}let u=i;return o!==void 0&&(u+=`:${o}`,s===void 0&&r&&(s="00")),s!==void 0&&(u+=`:${s}`),a&&(u+=` ${a}`),u}export{A as a,L as b,I as c,O as d,R as e,_ as f,N as g,k as h,Y as i,U as j,V as k,G as l,z as m,W as n,y as o,w as p,D as q,E as r,X as s,b as t,M as u,x as v,H as w,T as x,q as y,K as z,Z as A,J as B};
|
|
7
|
+
//# sourceMappingURL=chunk.LUIKMPQR.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/core/utils/date-utils.ts", "../../src/core/utils/feature-detection.ts", "../../src/core/utils/reflect-utils.ts", "../../src/core/utils/svg-utils.ts", "../../src/core/utils/time-utils.ts"],
|
|
4
|
+
"sourcesContent": ["import { isValidDate } from '@tylertech/forge-core';\n\nexport const ISO_8601_REGEX = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\nexport const ISO_TIMEZONE_REGEX = /a-z/i;\nconst FUTURE_YEAR_COERCION = 10; // The number of years in the future to coerce two-digit years into current century\n\n/**\n * Parses a date string value to a `Date` object in local time.\n * @param str The date string value.\n */\nexport function parseDateString(value: string): Date | null {\n value = value.replace(/_|\\s/g, ''); // Remove potential extraneous characters\n\n // We first check if this is a valid date in ISO 8601 format and return it if so\n if (ISO_8601_REGEX.test(value)) {\n const iso8601Date = new Date(value);\n\n // This is an ISO string, but does it have a timezone? If not, we add current timezone offset\n if (!ISO_TIMEZONE_REGEX.test(value)) {\n iso8601Date.setMinutes(iso8601Date.getMinutes() + iso8601Date.getTimezoneOffset());\n }\n\n if (isValidDate(iso8601Date)) {\n return iso8601Date;\n }\n }\n\n let values: string[] = [];\n\n // We accept dates with a \"/\" or \"-\" separator and in the format of MM/DD/YYYY\n if (value.indexOf('/') !== -1) {\n values = value.split('/');\n } else if (value.indexOf('-') !== -1) {\n values = value.split('-');\n } else if ((value.length === 6 || value.length === 8) && !isNaN(+value)) {\n values = [value.substring(0, 2), value.substring(2, 4), value.substring(4)];\n }\n\n const hasMonthDayYear = values.length === 3;\n let [month, day, year] = values;\n\n // Ensure are month and year values are coerced from 0 to 1 in case of incomplete entry\n if (month === '0') {\n month = '1';\n }\n if (day === '0') {\n day = '1';\n }\n\n // Trap for the case where only 3 digit years are entered\n if (typeof year === 'string' && year.length === 3) {\n year = year.padStart(4, '0');\n }\n \n if (hasMonthDayYear) {\n const isValidMonthLength = month.length === 1 || month.length === 2;\n const isValidDayLength = day.length === 1 || day.length === 2;\n const isValidYearLength = year.length === 2 || year.length === 4;\n\n if (!isValidMonthLength || !isValidDayLength || !isValidYearLength) {\n return null;\n }\n } else {\n return null;\n }\n\n // Check if we need to coerce two-digit years to the four-digit equivalent\n if (year.length === 2) {\n const minYear = new Date().getFullYear() - (100 - FUTURE_YEAR_COERCION);\n const maxYear = new Date().getFullYear() + FUTURE_YEAR_COERCION;\n const minYearCentury = String(minYear).slice(0, 2);\n const maxYearCentury = String(maxYear).slice(0, 2);\n const normalizedMaxYear = +String(maxYear).slice(2);\n year = +year <= normalizedMaxYear ? `${maxYearCentury}${year}` : `${minYearCentury}${year}`;\n }\n\n let numMonth = +month;\n let numDay = +day;\n const numYear = +year;\n\n if (numMonth > 12) {\n numMonth = 12;\n }\n\n const maxDaysInMonth = new Date(numYear, numMonth, 0).getDate();\n\n if (numDay > maxDaysInMonth) {\n numDay = maxDaysInMonth;\n }\n\n const parsedDate = new Date(numYear, numMonth - 1, numDay, 0, 0, 0, 0);\n return isValidDate(parsedDate) ? parsedDate : null;\n}\n\n/**\n * Formats a `Date` to a specified format.\n * @param str The date string value.\n */\nexport function formatDate(date: Date): string {\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = String(date.getFullYear()).padStart(4, '0');\n return [month, day, year].join('/');\n}\n\n/**\n * Determines if two date objects are equal.\n * \n * Note: Time values are ignored.\n * @param first The date to compare.\n * @param second The date to compare the first date to. \n * @returns A boolean whether the two dates are equivalent.\n */\nexport function isSameDate(first?: Date | null, second?: Date | null): boolean {\n if (!first && !second) {\n return true;\n } else if (!first || !second) {\n return false;\n } else if (!isValidDate(first) || !isValidDate(second)) {\n return false;\n }\n return first.setHours(0, 0, 0, 0) === second.setHours(0, 0, 0, 0);\n}\n\n/** \n * Returns the last date on a month.\n * \n * @param month The month.\n * @param year The year of the month, needed for February otherwise optional.\n * @returns The last date of the given month.\n */\nexport function getLastDateOfMonth(month: number, year?: number): Date {\n return new Date(year ?? 1970, month + 1, 0);\n}\n\n/**\n * Returns the number of days in a month.\n * \n * @param month The month to find the length of.\n * @param year The year to check within, needed for February otherwise optional.\n * @returns The number of days in the month.\n */\nexport function getMonthLength(month: number, year?: number): number {\n return getLastDateOfMonth(month, year).getDate();\n}\n", "/**\n * Detects if the browser supports the `popover` attribute.\n * @returns {boolean}\n */\nexport function supportsPopover(): boolean {\n return HTMLElement.prototype.hasOwnProperty('popover');\n}\n", "import { isDefined } from '@tylertech/forge-core';\n\n/**\n * A callback function for handling forwarded attributes.\n */\nexport type AttributeForwardingCallback = (name: string, value: string | null, part: string | null) => void;\n\n/**\n * ARIA attributes capable of being reflected to a shadow element.\n */\nexport const REFLECTIVE_ARIA_ATTRIBUTES = [\n 'aria-atomic',\n 'aria-autocomplete',\n 'aria-busy',\n 'aria-checked',\n 'aria-colcount',\n 'aria-colindex',\n 'aria-colspan',\n 'aria-current',\n 'aria-description',\n 'aria-disabled',\n 'aria-expanded',\n 'aria-haspopup',\n 'aria-hidden',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label',\n 'aria-level',\n 'aria-live',\n 'aria-modal',\n 'aria-multiline',\n 'aria-multiselectable',\n 'aria-orientation',\n 'aria-placeholder',\n 'aria-posinset',\n 'aria-pressed',\n 'aria-readonly',\n 'aria-relevant',\n 'aria-required',\n 'aria-roledescription',\n 'aria-rowcount',\n 'aria-rowindex',\n 'aria-rowspan',\n 'aria-selected',\n 'aria-setsize',\n 'aria-sort',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext'\n];\n/**\n * ARIA attributes typically useful for input elements.\n */\nexport const INPUT_ARIA_ATTRIBUTES = [\n 'aria-autocomplete',\n 'aria-description',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label'\n];\n/**\n * Property names relevant to input elements.\n */\nexport const INPUT_PROPERTIES: (keyof HTMLInputElement)[] = [\n 'checked',\n 'disabled',\n 'indeterminate',\n 'readOnly',\n 'required',\n 'value'\n];\n/**\n * Attributes for buttons when used within a form.\n */\nexport const BUTTON_FORM_ATTRIBUTES = [\n 'name',\n 'value',\n 'formaction',\n 'formenctype',\n 'formmethod',\n 'formnovalidate',\n 'formtarget'\n];\n\n/**\n * Gets an array of attribute names prefixed by a part name and colon.\n * @param part The part name of a shadow element.\n * @param attributes An array of attribute names to prefix.\n * @returns An array of prefixed attribute name strings.\n */\nexport function getPartPrefixedAttributes(part: string, attributes: string[]): string[] {\n return attributes.map(attr => `${part}:${attr}`);\n}\n\n/**\n * Observes a configured array of attributes set on a source element and forwards them to a\n * callback function.\n * @param from The element to forward attributes from.\n * @param attributes Forwarded attributes.\n * @param callback A function to handle forwarded attributes.\n * @returns A `MutationObserver`.\n */\nexport function forwardAttributes(from: HTMLElement, attributes: string[], callback: AttributeForwardingCallback): MutationObserver {\n // Set the source element's role to presentation to prevent duplicated ARIA attributes being\n // seen by assistive technology\n if (attributes.some(attr => attr.toLowerCase().startsWith('aria-'))) {\n from.setAttribute('role', 'presentation');\n }\n\n // Parses an attribute and sends it to the provided callback\n const forwardAttribute = (name: string): void => {\n const nameParts = name.split(':');\n const partName = nameParts.length === 2 ? nameParts[0] : null;\n const attrName = nameParts.length === 2 ? nameParts[1] : nameParts[0];\n const value = from.getAttribute(name);\n\n callback.call({}, attrName, value, partName);\n };\n\n // First, forward any attributes already set on the source element\n attributes.forEach(attr => forwardAttribute(attr));\n\n // Forward new and changed attributes as needed\n const observerConfig: MutationObserverInit = { attributeFilter: attributes };\n const observerCallback: MutationCallback = mutationList => {\n mutationList.forEach(mutation => forwardAttribute(mutation.attributeName as string));\n };\n const observer = new MutationObserver(observerCallback);\n observer.observe(from, observerConfig);\n return observer;\n}\n\n/**\n * Clones attributes from one element to another.\n * @param from The source element to clone attributes from.\n * @param to The target element to clone attributes to.\n * @param attributes The list of attributes to clone.\n */\nexport function cloneAttributes(from: HTMLElement, to: HTMLElement, attributes: string[]): void {\n attributes.forEach(attr => {\n const value = from.getAttribute(attr);\n if (value !== null) {\n to.setAttribute(attr, value);\n }\n });\n}\n\n/**\n * Clones properties from one element to another.\n * @param from The source element to clone properties from.\n * @param to The target element to clone properties to.\n * @param attributes The list of properties to clone.\n */\nexport function cloneProperties<T, K extends keyof T>(from: T, to: T, properties: K[]): void {\n properties.forEach(prop => {\n const value = from[prop];\n if (isDefined(value)) {\n to[prop] = value;\n }\n });\n}\n\n/**\n * Clones the validation message of one input element to another.\n * @param from The source input element to clone the validation message from.\n * @param to The target input element to clone the validation message to.\n */\nexport function cloneValidationMessage(from: HTMLInputElement, to: HTMLInputElement): void {\n const message = from.validationMessage;\n if (message) {\n to.setCustomValidity(message);\n }\n}\n\n/**\n * A utility class for switching between elements.\n */\nexport class SlottedElementAdapter<T extends HTMLElement = HTMLElement> {\n private _el: T;\n private _attachCallback: (newEl: T, oldEl: T) => void;\n\n /**\n * Returns the element associated with this adapter.\n */\n public get el(): T {\n return this._el;\n }\n\n /**\n * Clones the specified attributes from one element to another.\n * \n * @param from - The element to clone attributes from.\n * @param to - The element to clone attributes to.\n * @param attributes - The names of the attributes to clone.\n */\n public static cloneAttributes(from: HTMLElement, to: HTMLElement, attributes: string[]): void {\n cloneAttributes(from, to, attributes);\n }\n\n /**\n * Clones the input specific properties from one element to another.\n * \n * @param from - The element to clone properties from.\n * @param to - The element to clone properties to.\n */\n public static cloneProperties(from: HTMLElement, to: HTMLElement, properties: (keyof HTMLElement)[]): void {\n cloneProperties(from, to, properties);\n }\n \n /**\n * Clones the validation message from one element to another.\n * \n * @param from - The element to clone the validation message from.\n * @param to - The element to clone the validation message to.\n */\n public static cloneValidationMessage(from: HTMLElement, to: HTMLElement): void {\n if (Object.hasOwnProperty.call(from, 'validationMessage') && Object.hasOwnProperty.call(to, 'validationMessage')) {\n cloneValidationMessage(from as HTMLInputElement, to as HTMLInputElement);\n } else {\n console.warn('cloneValidationMessage() requires both elements to be input elements.');\n }\n }\n\n /**\n * Initializes the adapter with an initial element and attach callback.\n * \n * @param el - The element to associate with the adapter.\n * @param attachCallback - The callback to invoke when attaching the element.\n */\n public initialize(el: T, attachCallback: (newEl: T, oldEl: T) => void): void {\n this._attachCallback = attachCallback;\n this._el = el;\n }\n\n /**\n * Replaces the attached element.\n * \n * @param el - The new element to attach.\n */\n public attachElement(el: T): void {\n this._attachCallback(el, this._el);\n this._el = el;\n }\n}\n", "/**\n * Creates an SVG element from a string.\n */\nexport function createSvgFromString(svgContent: string, defaultViewBox?: string): SVGSVGElement | null {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // Remove all non-svg child nodes\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n const svgElm = div.firstElementChild as SVGSVGElement;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg' && isSafeSvg(svgElm)) {\n // Check if a custom viewbox value was provided and use that if so\n if (defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Force a default viewBox if one doesn't exist (this ensures our icon is scalable)\n if (!svgElm.hasAttribute('viewBox') && defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Remove any height and width attributes to ensure that the icon is properly scalable\n svgElm.removeAttribute('height');\n svgElm.removeAttribute('width');\n\n return svgElm;\n }\n\n return null;\n}\n\n/**\n * Determines if the provided element is a safe SVG to use.\n * @param el The element reference to test.\n */\nexport function isSafeSvg(el: Element): boolean {\n if (el.nodeType !== 1) {\n return true;\n }\n\n // Validate no <script> tags exist\n if (el.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n // Ensure there are no inline listeners\n const attributes = Array.from(el.attributes);\n for (const attr of attributes) {\n if (typeof attr.name === 'string' && attr.name.toLowerCase().startsWith('on')) {\n return false;\n }\n }\n\n // Ensure all child nodes are valid\n const childNodes = Array.from(el.childNodes) as Element[];\n for (const node of childNodes) {\n if (!isSafeSvg(node)) {\n return false;\n }\n }\n\n return true;\n}\n", "export const TWENTY_FOUR_HOUR_TIME_REGEX = /^(0?[0-9]|1\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?$/;\nexport const TWELVE_HOUR_TIME_REGEX = /^(0?[1-9]|1[0-2]):([0-5]\\d)(:([0-5]\\d))?\\s*([AaPp][Mm])?$/;\nexport const PARSEABLE_TIME_FORMAT = /^(\\d?\\d?):?(\\d?\\d?)(:?(\\d?\\d?))?\\s*([AaPp][Mm]?)?$/;\nexport const HAS_MERIDIEM_REGEX = /[AaPp][Mm]?/;\n\nexport function tokenize24HourTimeString(value: string): { hours: string; minutes: string; seconds: string } {\n const matches = value.match(TWENTY_FOUR_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n return { hours, minutes, seconds };\n}\n\nexport function tokenize12HourTimeString(value: string): { hours: string; minutes: string; seconds: string; meridiem: string } {\n const matches = value.match(TWELVE_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0, 'AM'];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n const meridiem = matches[5];\n return { hours, minutes, seconds, meridiem };\n}\n\nexport function isSupportedTimeFormat(value: string): boolean {\n return TWENTY_FOUR_HOUR_TIME_REGEX.test(value) ||\n TWELVE_HOUR_TIME_REGEX.test(value);\n}\n\nexport function tryCoerceTimeString(str: string, use24HourTime: boolean, allowSeconds: boolean): string {\n str = str && typeof str === 'string' ? str.replace(/_|\\s/g, '') : '';\n if (/^\\s*$/.test(str) || /^:+$/.test(str)) {\n return '';\n }\n\n const matches = str.match(PARSEABLE_TIME_FORMAT);\n if (!matches) {\n return '';\n }\n\n let hoursStr = matches[1];\n let minutesStr = matches[2];\n let secondsStr = matches[4];\n let meridiem = matches[5];\n\n // Special case detection for meridiem\n const meridiemMatches = str.match(HAS_MERIDIEM_REGEX);\n if (meridiemMatches) {\n meridiem = meridiemMatches[0];\n str = str.replace(meridiem, ''); // Remove the meridiem from the input string our next special case\n\n // We allow for entering an \"a\" or \"p\" shorthand so let's coerce it to the proper value\n if (meridiem.length === 1) {\n meridiem += 'm';\n }\n }\n\n // Special case handling for 3-digit \"shorthand\" time values (ex. \"130\" => \"1:30 AM\")\n if (str.length === 3 && !str.includes(':')) {\n hoursStr = str[0];\n minutesStr = str.substring(1);\n }\n\n // Normalize the meridiem string\n if (use24HourTime) {\n meridiem = '';\n } else if (HAS_MERIDIEM_REGEX.test(meridiem)) {\n meridiem = meridiem.toUpperCase();\n } else {\n if (/^[AaPp]/.test(meridiem)) {\n if (meridiem.toLowerCase().startsWith('a')) {\n meridiem = 'AM';\n } else if (meridiem.toLowerCase().startsWith('p')) {\n meridiem = 'PM';\n }\n } else {\n meridiem = '';\n }\n }\n\n const hoursNum = +hoursStr || 0;\n const minutesNum = +minutesStr || 0;\n\n // Clamp and normalize hours\n const maxHours = !meridiem || use24HourTime ? 23 : 12;\n if (hoursNum >= maxHours) {\n hoursStr = String(maxHours);\n } else if (hoursNum < 0) {\n hoursStr = '00';\n }\n\n hoursStr = hoursStr.padStart(2, '0');\n\n // Clamp and normalize minutes\n if (minutesStr !== undefined) {\n if (minutesNum > 59) {\n minutesStr = '59';\n } else if (minutesNum < 0) {\n minutesStr = '00';\n } else {\n minutesStr = minutesStr.padStart(2, '0');\n }\n }\n\n // Clamp and normalize seconds (if applicable)\n if (secondsStr !== undefined) {\n const secondsNum = +secondsStr || 0;\n if (secondsNum > 59) {\n secondsStr = '59';\n } else if (secondsNum < 0) {\n secondsStr = '00';\n } else {\n secondsStr = secondsStr.padStart(2, '0');\n }\n }\n\n // Build resulting time string\n let timeStr = hoursStr;\n if (minutesStr !== undefined) {\n timeStr += `:${minutesStr}`;\n if (secondsStr === undefined && allowSeconds) {\n secondsStr = '00';\n }\n }\n if (secondsStr !== undefined) {\n timeStr += `:${secondsStr}`;\n }\n if (meridiem) {\n timeStr += ` ${meridiem}`;\n }\n\n return timeStr;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ISO_8601_REGEX", "ISO_TIMEZONE_REGEX", "FUTURE_YEAR_COERCION", "parseDateString", "value", "iso8601Date", "isValidDate", "values", "hasMonthDayYear", "month", "day", "year", "isValidMonthLength", "isValidDayLength", "isValidYearLength", "minYear", "maxYear", "minYearCentury", "maxYearCentury", "normalizedMaxYear", "numMonth", "numDay", "numYear", "maxDaysInMonth", "parsedDate", "formatDate", "date", "isSameDate", "first", "second", "getLastDateOfMonth", "getMonthLength", "supportsPopover", "REFLECTIVE_ARIA_ATTRIBUTES", "INPUT_ARIA_ATTRIBUTES", "INPUT_PROPERTIES", "BUTTON_FORM_ATTRIBUTES", "getPartPrefixedAttributes", "part", "attributes", "attr", "forwardAttributes", "from", "callback", "forwardAttribute", "name", "nameParts", "partName", "attrName", "value", "observerConfig", "observerCallback", "mutationList", "mutation", "observer", "cloneAttributes", "to", "cloneProperties", "properties", "prop", "isDefined", "cloneValidationMessage", "message", "SlottedElementAdapter", "el", "attachCallback", "createSvgFromString", "svgContent", "defaultViewBox", "div", "svgElm", "isSafeSvg", "el", "attributes", "attr", "childNodes", "node", "TWENTY_FOUR_HOUR_TIME_REGEX", "TWELVE_HOUR_TIME_REGEX", "PARSEABLE_TIME_FORMAT", "HAS_MERIDIEM_REGEX", "tokenize24HourTimeString", "value", "matches", "hours", "minutes", "seconds", "tokenize12HourTimeString", "meridiem", "isSupportedTimeFormat", "tryCoerceTimeString", "str", "use24HourTime", "allowSeconds", "hoursStr", "minutesStr", "secondsStr", "meridiemMatches", "hoursNum", "minutesNum", "maxHours", "secondsNum", "timeStr"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{a as E}from"./chunk.5WMYF27O.js";import{a as T}from"./chunk.EJX6RI4I.js";import{b as L}from"./chunk.5A2PA7TL.js";import{a as v}from"./chunk.FAXYCG55.js";import{a as g}from"./chunk.HSI7B43D.js";import{a as s}from"./chunk.NVUMRW44.js";import{a as b,b as _}from"./chunk.36F2GVWS.js";import{a as p,e as u,f as h,k as f}from"./chunk.JAWV5Y5T.js";import{k as m}from"./chunk.J2M2MXP2.js";import{d as l}from"./chunk.M3QDAYD2.js";var C=r=>typeof r.labelClickedCallback=="function"&&typeof r.labelChangedCallback=="function";var y=`${_}label`,k={FOR:"for",DYNAMIC:"dynamic"},M={ROOT:".forge-label",SLOT:"slot"},A=[E.elementName,T.elementName,L.elementName,v.elementName],i={elementName:y,selectors:M,attributes:k,labelableChildSelectors:A};var d=class extends g{constructor(e){super(e);this._targetElement=null;this._slotElement=h(e,i.selectors.SLOT)}destroy(){var e;(e=this._targetElement)==null||e.labelChangedCallback(null),this._targetElement=null}hasTargetElement(){return!!this._targetElement}getTargetElement(){return this._targetElement}setTargetElement(e){if(e&&this._checkLabelAwareness(e)){this._targetElement=e;return}this._targetElement=null}trySetTarget(e){this._targetElement=this._locateTargetElement(e)}clickTarget(){var e;(e=this._targetElement)==null||e.labelClickedCallback()}updateTargetLabel(){var a;let e=this._component.innerText.trim();(a=this._targetElement)==null||a.labelChangedCallback(e)}addSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}addMutationObserver(e){this._mutationObserver=new MutationObserver(e),this._mutationObserver.observe(this._component,{subtree:!0,characterData:!0,childList:!0}),e([],this._mutationObserver)}removeMutationObserver(){var e;(e=this._mutationObserver)==null||e.disconnect(),this._mutationObserver=void 0}_checkLabelAwareness(e){return C(e)?!0:(console.warn("Label target element is not label aware.",e),!1)}_locateTargetElement(e){let a;if(e)a=this._component.getRootNode().querySelector(`#${e}`);else{let o=i.labelableChildSelectors.join(",");a=this._component.querySelector(o)}return a&&!this._checkLabelAwareness(a)?null:a}};var c=class{constructor(t){this._adapter=t;this._dynamic=!1;this._isConnected=!1;this._clickListener=e=>this._handleClick(e),this._slotChangeListener=()=>this._handleSlotChange(),this._mutationCallback=()=>this._handleMutation()}initialize(){var t;this._adapter.addSlotChangeListener(this._slotChangeListener),this._adapter.trySetTarget((t=this._for)!=null?t:null),this._adapter.hasTargetElement()&&this._connect()}disconnect(){this._disconnect(),this._adapter.destroy()}update(){this._adapter.updateTargetLabel()}_handleClick(t){t.target!==this._adapter.getTargetElement()&&this._adapter.clickTarget()}_handleSlotChange(){!this._for&&!this._forElement&&(this._adapter.trySetTarget(null),this._tryConnect())}_handleMutation(){this._adapter.updateTargetLabel()}_connect(){this._adapter.addHostListener("click",this._clickListener),this._adapter.updateTargetLabel(),this._dynamic&&this._adapter.addMutationObserver(this._mutationCallback),this._isConnected=!0}_disconnect(){this._adapter.removeHostListener("click",this._clickListener),this._adapter.removeMutationObserver(),this._isConnected=!1}_tryConnect(){this._adapter.hasTargetElement()?this._isConnected||this._connect():this._disconnect()}get for(){return this._for}set for(t){var e,a;this._for!==t&&(this._for=t,this._adapter.toggleHostAttribute(i.attributes.FOR,!!this.for,(e=this.for)!=null?e:void 0),this._adapter.trySetTarget((a=this._for)!=null?a:null),this._tryConnect())}get forElement(){return this._forElement}set forElement(t){var e;this._forElement!==t&&(this._forElement=t,this._adapter.setTargetElement((e=this._forElement)!=null?e:null),this._tryConnect())}get dynamic(){return this._dynamic}set dynamic(t){this._dynamic!==t&&(this._dynamic=t,this._adapter.toggleHostAttribute(i.attributes.DYNAMIC,this._dynamic),this._dynamic?this._adapter.hasTargetElement()&&this._adapter.addMutationObserver(this._mutationCallback):this._adapter.removeMutationObserver())}};var O='<template><span class="forge-label" part="label"><slot></slot></span></template>',N=':host{display:inline-block}:host([hidden]){display:none}.forge-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-label-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label-font-weight,400);line-height:var(--forge-typography-label-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label-text-decoration,inherit);text-decoration:var(--forge-typography-label-text-decoration,inherit);display:contents;cursor:default}',n=class extends f{constructor(){super();u(this,O,N),this._foundation=new c(new d(this))}static get observedAttributes(){return[i.attributes.FOR,i.attributes.DYNAMIC]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,a,o){switch(e){case i.attributes.FOR:this.for=o;break;case i.attributes.DYNAMIC:this.dynamic=m(o);break}}update(){this._foundation.update()}};l([s()],n.prototype,"for",2),l([s()],n.prototype,"forElement",2),l([s()],n.prototype,"dynamic",2),n=l([b({name:i.elementName})],n);function ae(){p(n)}export{C as a,i as b,d as c,c as d,n as e,ae as f};
|
|
7
|
+
//# sourceMappingURL=chunk.LUNKNRRH.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/label/label-aware.ts", "../../src/label/label-constants.ts", "../../src/label/label-adapter.ts", "../../src/label/label-foundation.ts", "../../src/label/label.ts", "../../src/label/index.ts"],
|
|
4
|
+
"sourcesContent": ["export interface ILabelAware {\n labelClickedCallback(): void;\n labelChangedCallback(value: string | null): void;\n}\n\n/**\n * Determines if an object is label aware.\n * @param obj - The object to check.\n * @returns True if the object is label aware, false otherwise.\n */\nexport const isLabelAware = (obj: any): obj is ILabelAware => {\n return typeof obj.labelClickedCallback === 'function' && typeof obj.labelChangedCallback === 'function';\n};\n", "import { BUTTON_CONSTANTS } from '../button';\nimport { CHECKBOX_CONSTANTS } from '../checkbox';\nimport { COMPONENT_NAME_PREFIX } from '../constants';\nimport { ICON_BUTTON_CONSTANTS } from '../icon-button';\nimport { SWITCH_CONSTANTS } from '../switch';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}label`;\n\nconst attributes = {\n FOR: 'for',\n DYNAMIC: 'dynamic'\n};\n\nconst selectors = {\n ROOT: '.forge-label',\n SLOT: 'slot'\n};\n\nconst labelableChildSelectors = [\n CHECKBOX_CONSTANTS.elementName,\n SWITCH_CONSTANTS.elementName,\n BUTTON_CONSTANTS.elementName,\n ICON_BUTTON_CONSTANTS.elementName\n];\n\nexport const LABEL_CONSTANTS = {\n elementName,\n selectors,\n attributes,\n labelableChildSelectors\n};\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core';\nimport { ILabelComponent } from './label';\nimport { ILabelAware, isLabelAware } from './label-aware';\nimport { LABEL_CONSTANTS } from './label-constants';\n\nexport interface ILabelAdapter extends IBaseAdapter {\n destroy(): void;\n hasTargetElement(): boolean;\n getTargetElement(): HTMLElement | null;\n setTargetElement(el: HTMLElement | null): void;\n trySetTarget(value: string | null): void;\n clickTarget(): void;\n updateTargetLabel(): void;\n addSlotChangeListener(callback: EventListener): void;\n addMutationObserver(callback: MutationCallback): void;\n removeMutationObserver(): void;\n}\n\nexport class LabelAdapter extends BaseAdapter<ILabelComponent> implements ILabelAdapter {\n private _slotElement: HTMLElement;\n private _targetElement: ILabelAware & HTMLElement | null = null;\n private _mutationObserver?: MutationObserver;\n\n constructor(component: ILabelComponent) {\n super(component);\n this._slotElement = getShadowElement(component, LABEL_CONSTANTS.selectors.SLOT);\n }\n\n public destroy(): void {\n this._targetElement?.labelChangedCallback(null);\n this._targetElement = null;\n }\n\n public hasTargetElement(): boolean {\n return !!this._targetElement;\n }\n\n public getTargetElement(): HTMLElement | null {\n return this._targetElement;\n }\n\n public setTargetElement(el: HTMLElement | null): void {\n if (el && this._checkLabelAwareness(el)) {\n this._targetElement = el;\n return;\n }\n this._targetElement = null;\n }\n\n public trySetTarget(value: string | null): void {\n this._targetElement = this._locateTargetElement(value);\n }\n\n /**\n * Calls the target's `labelClickedCallback`.\n */\n public clickTarget(): void {\n this._targetElement?.labelClickedCallback();\n }\n\n /**\n * Computes the text content of the label then passes it to the target's `labelChangedCallback`.\n */\n public updateTargetLabel(): void {\n const value = this._component.innerText.trim();\n this._targetElement?.labelChangedCallback(value);\n }\n\n public addSlotChangeListener(callback: EventListener): void {\n this._slotElement.addEventListener('slotchange', callback);\n }\n\n public addMutationObserver(callback: MutationCallback): void {\n this._mutationObserver = new MutationObserver(callback);\n this._mutationObserver.observe(this._component, {\n subtree: true,\n characterData: true,\n childList: true\n });\n\n // Run the callback once to capture the current state of the label\n callback([], this._mutationObserver);\n };\n\n public removeMutationObserver(): void {\n this._mutationObserver?.disconnect();\n this._mutationObserver = undefined;\n }\n\n /**\n * Returns `true` if the provided element is label aware, `false` otherwise. If `false` a warning\n * is logged to the console.\n */\n private _checkLabelAwareness(el: HTMLElement): el is (ILabelAware & HTMLElement) {\n if (!isLabelAware(el)) {\n console.warn('Label target element is not label aware.', el);\n return false;\n }\n return true;\n }\n\n /**\n * Returns a label aware element queried from the provided id or a child element of the\n * component or `null` if none exists.\n */\n private _locateTargetElement(id: string | null): ILabelAware & HTMLElement | null {\n let targetEl: HTMLElement | null;\n\n if (id) {\n const rootNode = this._component.getRootNode() as Document | ShadowRoot;\n targetEl = rootNode.querySelector(`#${id}`);\n } else {\n // Used for nested elements within the label component\n const selector = LABEL_CONSTANTS.labelableChildSelectors.join(',');\n targetEl = this._component.querySelector(selector);\n }\n\n if (targetEl && !this._checkLabelAwareness(targetEl)) {\n return null;\n }\n\n return targetEl;\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { ILabelAdapter } from './label-adapter';\nimport { LABEL_CONSTANTS } from './label-constants';\n\nexport interface ILabelFoundation extends ICustomElementFoundation {\n for: string | null | undefined;\n forElement: HTMLElement | null | undefined;\n dynamic: boolean;\n disconnect(): void;\n update(): void;\n}\n\nexport class LabelFoundation implements ILabelFoundation {\n // State\n private _for: string | null | undefined;\n private _forElement: HTMLElement | null | undefined;\n private _dynamic = false;\n private _isConnected = false;\n\n // Listeners\n private readonly _clickListener: EventListener;\n private readonly _slotChangeListener: EventListener;\n private readonly _mutationCallback: MutationCallback;\n\n constructor(private _adapter: ILabelAdapter) {\n this._clickListener = (evt: PointerEvent) => this._handleClick(evt);\n this._slotChangeListener = () => this._handleSlotChange();\n this._mutationCallback = () => this._handleMutation();\n }\n\n public initialize(): void {\n this._adapter.addSlotChangeListener(this._slotChangeListener);\n this._adapter.trySetTarget(this._for ?? null);\n if (this._adapter.hasTargetElement()) {\n this._connect();\n }\n }\n\n public disconnect(): void {\n this._disconnect();\n this._adapter.destroy();\n }\n\n public update(): void {\n this._adapter.updateTargetLabel();\n }\n\n private _handleClick(evt: PointerEvent): void {\n // Prevent duplicate clicks from a nested target element\n if (evt.target === this._adapter.getTargetElement()) {\n return;\n }\n this._adapter.clickTarget();\n }\n\n private _handleSlotChange(): void {\n if (!this._for && !this._forElement) {\n this._adapter.trySetTarget(null);\n this._tryConnect();\n }\n }\n\n private _handleMutation(): void {\n this._adapter.updateTargetLabel();\n }\n\n private _connect(): void {\n this._adapter.addHostListener('click', this._clickListener);\n this._adapter.updateTargetLabel();\n if (this._dynamic) {\n this._adapter.addMutationObserver(this._mutationCallback);\n }\n this._isConnected = true;\n }\n\n private _disconnect(): void {\n this._adapter.removeHostListener('click', this._clickListener);\n this._adapter.removeMutationObserver();\n this._isConnected = false;\n }\n\n private _tryConnect(): void {\n if (!this._adapter.hasTargetElement()) {\n this._disconnect();\n } else if (!this._isConnected) {\n this._connect();\n }\n }\n\n public get for(): string | null | undefined {\n return this._for;\n }\n public set for(value: string | null | undefined) {\n if (this._for !== value) {\n this._for = value;\n this._adapter.toggleHostAttribute(LABEL_CONSTANTS.attributes.FOR, !!this.for, this.for ?? undefined);\n this._adapter.trySetTarget(this._for ?? null);\n this._tryConnect();\n }\n }\n\n public get forElement(): HTMLElement | null | undefined {\n return this._forElement;\n }\n public set forElement(value: HTMLElement | null | undefined) {\n if (this._forElement !== value) {\n this._forElement = value;\n this._adapter.setTargetElement(this._forElement ?? null);\n this._tryConnect();\n }\n }\n\n public get dynamic(): boolean {\n return this._dynamic;\n }\n public set dynamic(value: boolean) {\n if (this._dynamic !== value) {\n this._dynamic = value;\n this._adapter.toggleHostAttribute(LABEL_CONSTANTS.attributes.DYNAMIC, this._dynamic);\n\n if (!this._dynamic) {\n this._adapter.removeMutationObserver();\n } else if (this._adapter.hasTargetElement()) {\n this._adapter.addMutationObserver(this._mutationCallback);\n }\n }\n }\n}\n", "import { CustomElement, FoundationProperty, attachShadowTemplate, coerceBoolean } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core';\nimport { LabelAdapter } from './label-adapter';\nimport { LABEL_CONSTANTS } from './label-constants';\nimport { LabelFoundation } from './label-foundation';\n\nconst template = '<template><span class=\\\"forge-label\\\" part=\\\"label\\\"><slot></slot></span></template>';\nconst style = ':host{display:inline-block}:host([hidden]){display:none}.forge-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-label-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label-font-weight,400);line-height:var(--forge-typography-label-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label-text-decoration,inherit);text-decoration:var(--forge-typography-label-text-decoration,inherit);display:contents;cursor:default}';\n\nexport interface ILabelComponent extends IBaseComponent {\n for: string | null | undefined;\n forElement: HTMLElement | null | undefined;\n dynamic: boolean;\n update(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-label': ILabelComponent;\n }\n}\n\n/**\n * @tag forge-label\n * \n * @summary The Forge Label component is used to associate a text label with a compatible Forge\n * component.\n * \n * @property {string | null | undefined} for - The id of the associated element.\n * @property {HTMLElement | null | undefined} forElement - The associated element.\n * @property {boolean} dynamic - Propagates changes in the label's text content to the associated element.\n * \n * @attribute {string} for - The id of the associated form component.\n * @attribute {boolean} dynamic - Propagates changes in the label's text content to the associated element.\n * \n * @method update - Updates the targetted element with the label's current text content.\n * \n * @csspart label - Styles the label's root element.\n */\n@CustomElement({\n name: LABEL_CONSTANTS.elementName\n})\nexport class LabelComponent extends BaseComponent implements ILabelComponent {\n public static get observedAttributes(): string[] {\n return [\n LABEL_CONSTANTS.attributes.FOR,\n LABEL_CONSTANTS.attributes.DYNAMIC\n ];\n }\n\n private _foundation: LabelFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, style);\n this._foundation = new LabelFoundation(new LabelAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case LABEL_CONSTANTS.attributes.FOR:\n this.for = newValue;\n break;\n case LABEL_CONSTANTS.attributes.DYNAMIC:\n this.dynamic = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public for: string | null | undefined;\n\n @FoundationProperty()\n public forElement: HTMLElement | null | undefined;\n\n @FoundationProperty()\n public dynamic: boolean;\n\n /**\n * Updates the targetted element with the label's current text content.\n */\n public update(): void {\n this._foundation.update();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { LabelComponent } from './label';\n\nexport * from './label-adapter';\nexport * from './label-constants';\nexport * from './label-foundation';\nexport * from './label';\nexport * from './label-aware';\n\nexport function defineLabelComponent(): void {\n defineCustomElement(LabelComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["isLabelAware", "obj", "elementName", "COMPONENT_NAME_PREFIX", "attributes", "selectors", "labelableChildSelectors", "CHECKBOX_CONSTANTS", "SWITCH_CONSTANTS", "BUTTON_CONSTANTS", "ICON_BUTTON_CONSTANTS", "LABEL_CONSTANTS", "LabelAdapter", "BaseAdapter", "component", "getShadowElement", "LABEL_CONSTANTS", "_a", "el", "value", "callback", "isLabelAware", "id", "targetEl", "selector", "LabelFoundation", "_adapter", "evt", "_a", "value", "_b", "LABEL_CONSTANTS", "template", "style", "LabelComponent", "BaseComponent", "attachShadowTemplate", "LabelFoundation", "LabelAdapter", "LABEL_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "defineLabelComponent", "defineCustomElement", "LabelComponent"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{a as k}from"./chunk.6YPD6CQM.js";import{a as Y,b as J}from"./chunk.QN5T26HH.js";import{a as X}from"./chunk.YWAUEUAH.js";import{a as b}from"./chunk.5PG6WIIX.js";import{a as Q}from"./chunk.LCR4YH3O.js";import{a as z}from"./chunk.LEVFMI2Q.js";import{g as I,h as O}from"./chunk.FYWPZFLJ.js";import{a as j,d as q}from"./chunk.AMZZKEAE.js";import{d as $}from"./chunk.36F2GVWS.js";import{f as H}from"./chunk.JAWV5Y5T.js";import{d as R,e as M,f as B,i as U,x as K}from"./chunk.K7FPXAFS.js";import{b as _,d as V,h as P,j as v,n as g,p as G}from"./chunk.J2M2MXP2.js";import{a as A}from"./chunk.M3QDAYD2.js";var me={POPUP_CLASSES:"popup-classes",OPTION_LIMIT:"option-limit",OBSERVE_SCROLL:"observe-scroll",OBSERVE_SCROLL_THRESHOLD:"observe-scroll-threshold",SYNC_POPUP_WIDTH:"sync-popup-width",CONSTRAIN_POPUP_WIDTH:"constrain-popup-width",WRAP_OPTION_TEXT:"wrap-option-text",CHECKBOX_ELEMENT:"data-list-dropdown-checkbox",DATA_ALLOW_FOCUS:"data-list-dropdown-allow-focus"},he={GROUP_WRAPPER:"forge-list-dropdown__group-wrapper"},u={attributes:me,classes:he},Z={options:[],syncWidth:!1,selectedValues:[],multiple:!1},ee=(o=>(o.None="none",o.Standard="standard",o.Menu="menu",o))(ee||{}),te=(t=>(t.Spinner="spinner",t.Skeleton="skeleton",t))(te||{});var E=class{constructor(){this._listenerMap=new Map}_emit(e,t){let o=this._listenerMap.get(e);o&&o.length&&o.forEach(n=>n({type:e,data:t}))}hasListeners(e){return e?this._listenerMap.has(e):this._listenerMap.size>0}addListener(e,t){if(!this._listenerMap.has(e))this._listenerMap.set(e,[t]);else{let o=this._listenerMap.get(e);o&&o.push(t)}}removeListener(e,t){let o=this._listenerMap.get(e);o&&o.length&&o.includes(t)&&(o.splice(o.indexOf(t),1),o.length||this._listenerMap.delete(e))}};var f;(function(i){i.Up="up",i.Down="down",i.Left="left",i.Right="right"})(f||(f={}));var c;(function(i){i.Scroll="scroll",i.Scrolled="scrolled",i.ScrolledStart="scrolled-start",i.ScrolledEnd="scrolled-end"})(c||(c={}));var _e=100,w=class extends E{constructor(e,t={}){super(),this._element=e,this._config=t,this._axis="vertical",this._scrollThreshold=0,this._lastScrollPosition=0,this._lastScrollTop=0,this._lastScrollLeft=0,this._isListening=!1,this._initialize()}destroy(){this.stop()}start(){this._isListening||(this._element.addEventListener("scroll",this._scrollListener),this._isListening=!0)}stop(){this._element.removeEventListener("scroll",this._scrollListener),this._isListening=!1}_initialize(){if(this._config.throttle){let e=this._config.throttleTime||_e;this._scrollListener=G(()=>this._onScroll(),e)}else this._scrollListener=()=>this._onScroll();(!_(this._config.paused)||!this._config.paused)&&this.start(),_(this._config.axis)&&(this._axis=this._config.axis),_(this._config.scrollThreshold)&&V(this._config.scrollThreshold)&&(this._scrollThreshold=this._config.scrollThreshold)}_isScrollAxis(){let e=this._lastScrollTop!==this._element.scrollTop,t=this._lastScrollLeft!==this._element.scrollLeft;return this._axis==="vertical"&&e||this._axis==="horizontal"&&t}_onScroll(){if(!this._isScrollAxis())return;let e=this.scrollPosition,t=this._lastScrollPosition-e<0?this._axis==="vertical"?f.Down:f.Right:this._axis==="vertical"?f.Up:f.Left;this._emit(c.Scroll,{direction:t,position:e}),this._lastScrollPosition<=this._scrollThreshold&&e>this._scrollThreshold?this._emit(c.Scrolled,!0):this._lastScrollPosition>=this._scrollThreshold&&(this._scrollThreshold>0?e<this._scrollThreshold:e===0)&&this._emit(c.Scrolled,!1);let o=Math.round(e-this._scrollThreshold),n=Math.round(this.scrollSize-e);this._lastScrollPosition>=this._scrollThreshold&&o<=0?this._emit(c.ScrolledStart):this._lastScrollPosition<=this.scrollSize-this._scrollThreshold&&n<=this._scrollThreshold&&this._emit(c.ScrolledEnd),this._lastScrollPosition=e||0,this._lastScrollTop=this._element.scrollTop||0,this._lastScrollLeft=this._element.scrollLeft||0}get scrollPosition(){return this._axis==="vertical"?this._element.scrollTop:this._element.scrollLeft}get isScrolled(){return this.scrollPosition>this._scrollThreshold}get isScrolledStart(){return this.scrollPosition===0}get isScrolledEnd(){return this.scrollPosition===this._element.scrollWidth}get isScrollable(){return this._axis==="vertical"?this._element.scrollHeight>this._element.clientHeight:this._element.scrollWidth>this._element.clientWidth}get scrollSize(){return(this._axis==="vertical"?this._element.scrollHeight:this._element.scrollWidth)-this.elementSize}get elementSize(){return this._axis==="vertical"?this._element.clientHeight:this._element.clientWidth}setScrollPosition(e){this._axis==="vertical"?this._element.scrollTop=e:this._element.scrollLeft=e}};function oe(i,e){let t=fe(i,e),o=`list-dropdown-popup-${i.id}`;return t.addEventListener("mousedown",n=>{let p=z(n);if(p.find(m=>m.nodeType===1&&m.hasAttribute(u.attributes.DATA_ALLOW_FOCUS)))return;p.find(m=>m.id===o||m.id===i.id)&&n.preventDefault()}),i.id&&(t.id=o),i.popupClasses&&B(i.popupClasses,t),t}function fe(i,e){var o;let t=document.createElement("forge-popup");switch(t.targetElement=e,t.placement=i.popupPlacement||"bottom-start",t.manageFocus=!1,t.static=!!i.popupStatic,(o=i.popupFallbackPlacements)!=null&&o.length&&(t.fallbackPlacements=i.popupFallbackPlacements),i.constrainViewportWidth&&t.setAttribute(b.attributes.CONSTRAIN_VIEWPORT_WIDTH,""),i.popupOffset&&(t.offset=i.popupOffset),i.type){case"menu":t.animationType="menu";break;case"none":t.animationType="none";break;default:t.animationType="dropdown"}return t}function ne(i){let e=document.createElement(J.elementName);switch(e.id=`list-dropdown-list-${i.id}`,e.propagateClick=!1,i.type){case"menu":e.setAttribute("role","menu"),e.setAttribute("aria-orientation","vertical");break;default:e.setAttribute("role","listbox")}return e}function y(i,e,t,o=0,n=!0){let p=ge(t||i.options),a=N(p),L=!!i.optionLimit,m=i.optionLimit||0,ae=o;for(let h of p){let x=e;if(h.builder&&typeof h.builder=="function"){let s=h.builder(h);if(s){let d=document.createElement("div");d.classList.add(u.classes.GROUP_WRAPPER),x=d,typeof s=="string"?d.innerHTML=s:s instanceof HTMLElement&&d.appendChild(s),e.appendChild(d)}}else if(h.text){let s=document.createElement("div");s.classList.add(u.classes.GROUP_WRAPPER);let d=document.createElement("div");d.textContent=h.text,d.classList.add("forge-typography--overline"),d.style.fontFamily="Roboto,sans-serif",d.style.fontSize="0.75rem",d.style.lineHeight="2rem",d.style.letterSpacing="0.16667em",d.style.fontWeight="500",d.style.margin="4px 8px",x=s,s.appendChild(d),e.appendChild(s)}for(let s of h.options){if(s.divider){let r=ve();e.appendChild(r);continue}if(L&&--m<0)break;let d=i.selectedValues?i.selectedValues.some(r=>g(r,s.value)):!1;if(!n&&d)continue;let l=document.createElement("forge-list-item");if(l.value=s.value,l.id=`list-dropdown-option-${i.id}-${ae++}`,i.wrapOptionText&&(l.wrap=!0),s.optionClass&&(typeof s.optionClass=="string"||Array.isArray(s.optionClass)&&s.optionClass.length)&&B(s.optionClass,l),i.dense&&(l.dense=!0),i.optionBuilder&&typeof i.optionBuilder=="function"){let r=i.optionBuilder(s,l);r&&(typeof r=="string"?l.innerHTML=r:l.appendChild(r))}else if(typeof i.transform!="function")l.textContent=s.label||"";else{let r=i.transform(s.label);typeof r=="string"?l.textContent=r:typeof r=="object"&&r.nodeType!==void 0&&l.appendChild(r)}if(s.secondaryLabel){let r=document.createElement("span");r.slot="subtitle",r.textContent=s.secondaryLabel,l.twoLine=!0,l.appendChild(r)}if(i.multiple){let r=C(d);l.appendChild(r),l.setAttribute("aria-selected",`${d}`),l.setAttribute("aria-checked",`${d}`)}if(s.elementAttributes&&s.elementAttributes.forEach((r,F)=>{l.setAttribute(F,r)}),s.leadingBuilder){let r=s.leadingBuilder();v(r)&&(r.slot="leading",l.appendChild(r))}else if(s.leadingIcon){let r=ie(s.leadingIconType,s.leadingIcon,s.leadingIconClass||i.iconClass,s.leadingIconComponentProps);r.slot="leading",l.appendChild(r)}if(s.trailingBuilder){let r=s.trailingBuilder();v(r)&&(r.slot="trailing",l.appendChild(r))}else if(s.trailingIcon){let r=ie(s.trailingIconType,s.trailingIcon,s.trailingIconClass||i.iconClass,s.trailingIconComponentProps);r.slot="trailing",l.appendChild(r)}if(s.disabled?(l.disabled=s.disabled,l.setAttribute("aria-disabled","true")):l.setAttribute("aria-disabled","false"),d&&(l.selected=!0),l.setAttribute("aria-selected",d?"true":"false"),!s.disabled&&typeof i.cascadingElementFactory=="function"&&Array.isArray(s.options)&&s.options.length){let r=document.createElement("forge-icon");r.name="arrow_right",r.slot="trailing",l.appendChild(r);let ce={index:a.filter(ue=>!ue.divider).indexOf(s),options:s.options,parentValue:s.value},W=i.cascadingElementFactory.call(null,ce);W.appendChild(l),l=W}x.appendChild(l)}}}function C(i){let e=document.createElement("forge-icon");return e.setAttribute(u.attributes.CHECKBOX_ELEMENT,""),e.name=i?O.name:I.name,e.slot="leading",e.style.marginRight="16px",e.style.verticalAlign="middle",e}function ve(){let i=document.createElement("forge-divider");return i.setAttribute("aria-hidden","true"),i}function ie(i="font",e,t,o){if(i==="component"){let p=document.createElement("forge-icon");return t&&p.classList.add(t),p.setAttribute("aria-hidden","true"),p.name=e,o&&Object.assign(p,o),p}let n=document.createElement("i");return n.classList.add(t||$),n.setAttribute("aria-hidden","true"),n.textContent=e,n}function se(i){switch(i){case"skeleton":return Le();default:return be()}}function be(){let i=document.createElement("div");i.style.display="flex",i.style.justifyContent="center",i.style.alignItems="center",i.style.padding="8px",i.style.boxSizing="border-box";let e=document.createElement("forge-circular-progress");return e.style.setProperty("--forge-circular-progress-size","24px"),i.appendChild(e),i}function Le(){let i=document.createElement("forge-list"),e=document.createElement("div");e.style.minWidth="192px";for(let t=0;t<3;t++){let o=document.createElement(Q.elementName);o.setAttribute("list-item",""),e.appendChild(o)}return i.appendChild(e),i}function re(){let i=document.createElement(X.elementName);return i.determinate=!1,i.style.position="absolute",i.style.top="0",i.style.left="0",i.style.right="0",i.style.width="100%",i}function ge(i){return le(i,1)?i:[{text:"",options:i}]}function le(i,e){let t=i.some(n=>_(n)&&v(n)&&n.hasOwnProperty("options")&&(n.hasOwnProperty("text")||n.hasOwnProperty("builder"))),o=i.some(n=>_(n)&&v(n)&&n.hasOwnProperty("label")&&n.hasOwnProperty("value"));return t&&e===1||o&&e===0}function N(i){return le(i,1)?i.reduce((t,o)=>t.concat(o.options),[]):[...i]}var S=class{constructor(e,t){this._adapter=e;this._open=!1;this._config=Object.assign(A({},Z),A({},t)),this._selectListener=(o,n)=>this._onSelect(o,n),this._closeListener=()=>{typeof this._config.closeCallback=="function"&&this._config.closeCallback()},this._scrollEndListener=()=>{this._config.observeScroll&&typeof this._config.scrollEndListener=="function"&&this._config.scrollEndListener()}}destroy(){this._open&&this.close()}open(){this._open||(this._open=!0,this._adapter.open(this._config,this._selectListener,this._closeListener),window.requestAnimationFrame(()=>{this._open&&this.activateInitialOption()}),this._config.observeScroll&&this._config.scrollEndListener&&this._adapter.setScrollBottomListener(this._scrollEndListener,this._config.observeScrollThreshold||0))}close(){this._open&&(this._open=!1,this._adapter.close(),this._config.observeScroll&&this._config.scrollEndListener&&this._adapter.removeScrollBottomListener(this._scrollEndListener))}_onSelect(e,t){if(typeof this._config.activeChangeCallback=="function"&&this._config.activeChangeCallback(t),typeof this._config.selectCallback=="function"&&this._config.selectCallback(e),this._open){let o=this._config.syncWidth===void 0;this._adapter.syncWidth(o)}}getActiveOptionIndex(){return this._adapter.getActiveOptionIndex()}getActiveOption(){let e=this.getActiveOptionIndex();return e>=0?this._nonDividerOptions[e]:void 0}toggleOptionMultiple(e,t){return this._adapter.toggleOptionMultiple(e,t)}activateSelectedOption(){this._adapter.activateSelectedOption(this._config)}activateFirstOption(){let e=this._nonDividerOptions.findIndex(t=>!t.disabled);return e!==-1&&this.activateOption(e),e}activateLastOption(){let e=this._nonDividerOptions,t=e.length-1-e.findIndex(o=>!o.disabled);return t!==-1&&this.activateOption(t),t}activateOption(e,t){return this._adapter.activateOption(e,this._config.activeChangeCallback,t)}activateInitialOption(){typeof this._config.activeStartIndex=="number"&&this._nonDividerOptions[this._config.activeStartIndex]?(this.activateOption(this._config.activeStartIndex,!1),this._adapter.scrollSelectedOptionIntoView(!1)):this._config.selectedValues&&this._config.selectedValues.length?this._adapter.scrollSelectedOptionIntoView(!1):typeof this._config.visibleStartIndex=="number"&&this._nonDividerOptions[this._config.visibleStartIndex]&&this._adapter.scrollOptionIntoView(this._config.visibleStartIndex)}setSelectedValues(e){Array.isArray(e)||(e=[e]),!this._config.multiple&&e.length>1&&(e=[e[0]]),this._config.selectedValues=e,this._adapter.setSelectedValues(e,this._config.multiple)}clearActiveOption(){this._adapter.clearActiveOption()}setOptions(e){this._config.options=e,this._open&&(this._adapter.setOptions(this._config),this.activateInitialOption())}appendOptions(e){this._config.options=[...this._config.options,...e],this._open&&this._adapter.appendOptions(e,this._config)}get dropdownElement(){return this._adapter.dropdownElement}scrollSelectedOptionIntoView(e=!0){this._adapter.scrollSelectedOptionIntoView(e)}setScrollBottomListener(e,t){this._config.scrollEndListener=e,this._config.observeScroll=!0,this._config.observeScrollThreshold=t,this._adapter.setScrollBottomListener(this._scrollEndListener,this._config.observeScrollThreshold||0)}removeScrollBottomListener(){this._config.scrollEndListener=void 0,this._adapter.removeScrollBottomListener(this._scrollEndListener)}setBusyVisibility(e){this._config.allowBusy&&this._adapter.setBusyVisibility(e)}handleKey(e){switch(e){case"Enter":case"NumpadEnter":let t=this.getActiveOptionIndex(),o=this._nonDividerOptions[t];if(this._canSelectOption(o)){let a=this._adapter.getActiveOptionIdByIndex(t);a&&this._onSelect(o.value,a)}break;case"Up":case"ArrowUp":case"Down":case"ArrowDown":let n=this._nonDividerOptions;if(n.length&&n.every(a=>!this._canSelectOption(a)))return;let p=this._getNextActiveOptionIndex(e);this.activateOption(p);break;case"Home":this.activateFirstOption();break;case"End":this.activateLastOption();break}}_canSelectOption(e){return e&&!e.disabled&&!e.divider}_getNextActiveOptionIndex(e){let t=this._adapter.getActiveOptionIndex();return t===-1&&(t=this._adapter.getSelectedOptionIndex()),e==="ArrowUp"||e==="Up"?this._getPreviousHighlightableOptionIndex(t,this._nonDividerOptions):this._getNextHighlightableOptionIndex(t,this._nonDividerOptions)}_getPreviousHighlightableOptionIndex(e,t){let o=e<=0?t.length-1:e-1;return t[o].disabled?this._getPreviousHighlightableOptionIndex(o,t):o}_getNextHighlightableOptionIndex(e,t){let o=e===t.length-1?0:e+1;return t[o].disabled?this._getNextHighlightableOptionIndex(o,t):o}get _flatOptions(){return N(this._config.options)}get _nonDividerOptions(){return this._flatOptions.filter(e=>!e.divider)}};var D=class{constructor(e){this._targetElement=e}get dropdownElement(){return this._dropdownElement}open(e,t,o){this._dropdownElement=oe(e,this._targetElement),this.syncWidth(!!e.syncWidth,e.targetWidthCallback),e.allowBusy&&(this._busyElement=re(),this._busyElement.style.display="none",this._dropdownElement.appendChild(this._busyElement)),e.headerBuilder&&(this._headerElement=e.headerBuilder(),this._headerElement&&this._headerElement.setAttribute(u.attributes.DATA_ALLOW_FOCUS,"")),e.footerBuilder&&(this._footerElement=e.footerBuilder(),this._footerElement&&this._footerElement.setAttribute(u.attributes.DATA_ALLOW_FOCUS,"")),this._listElement=ne(e),this._listElement.addEventListener("forge-list-item-select",n=>{n.detail.listItem.setAttribute("aria-selected","true"),t(n.detail.value,n.detail.listItem.id)}),e.options.length?(y(e,this._listElement),this._dropdownElement.appendChild(this._listElement),this._headerElement&&this._dropdownElement.insertAdjacentElement("afterbegin",this._headerElement),this._footerElement&&this._dropdownElement.appendChild(this._footerElement)):e.allowBusy&&(this._asyncElement=se(e.asyncStyle),this._dropdownElement.appendChild(this._asyncElement)),this._announcerElement=k(),this._announcerElement.id=`${e.id}-activedescendant`,this._dropdownElement.appendChild(this._announcerElement),this._dropdownElement.open=!0}close(){this._dropdownElement&&(this._dropdownElement.open=!1,this._dropdownElement=void 0,this._listElement=void 0,this._announcerElement=void 0)}setScrollBottomListener(e,t){if(this._dropdownElement&&!this._scrollObserver){let o=H(this._dropdownElement,b.selectors.CONTAINER),n={scrollThreshold:t};this._scrollObserver=new w(o,n),this._scrollObserver.addListener(c.ScrolledEnd,e)}}removeScrollBottomListener(e){this._scrollObserver&&this._scrollObserver.removeListener(c.ScrolledEnd,e)}getActiveOptionIndex(){if(!this._dropdownElement)return-1;let e=this._getListItemElements(),t=[...e].reverse().find(o=>o.active);return t?e.indexOf(t):-1}getSelectedOptionIndex(){return this._getListItemElements().findIndex(t=>t.selected)}getActiveOptionIdByIndex(e){if(!this._dropdownElement)return null;let o=this._getListItemElements()[e];return o?o.id:null}toggleOptionMultiple(e,t){if(!this._dropdownElement)return;let o=this._getListItemElements();o.length&&o[e]&&this._toggleSelectedOption(o[e],t)}scrollOptionIntoView(e,t=!0){let o=this._getListItemElements()[e];o&&this._scrollListItemIntoView(o,t?"smooth":"auto","center")}scrollSelectedOptionIntoView(e=!0){let t=this._getSelectedListItem();this._scrollListItemIntoView(t,e?"smooth":"auto","center")}activateSelectedOption(e){let t=this._getListItemElements();t.length&&t.filter(p=>p.active).forEach(p=>p.active=!1);let o=this._getSelectedListItem();o&&this._activateListOption(o,e.activeChangeCallback)}activateOption(e,t,o=!0){if(!this._dropdownElement)return;let n=this._getListItemElements();n.length&&(n.filter(a=>a.active).forEach(a=>a.active=!1),this._activateListOption(n[e],t),this._scrollListItemIntoView(n[e],o?"smooth":"auto"))}setSelectedValues(e,t=!1){if(!this._dropdownElement)return;let o=this._getListItemElements();for(let n of o){let p=e.some(a=>g(a,n.value));if(n.selected=p,t){let a=n.querySelector(`[${u.attributes.CHECKBOX_ELEMENT}]`);if(a){let L=C(p);M(L,a)}}}}clearActiveOption(){this._getListItemElements().forEach(t=>t.active=!1)}syncWidth(e,t){this._dropdownElement&&(this._dropdownElement.style[e?"width":"minWidth"]=`${this._getTargetElementWidth(t)}px`)}setOptions(e){!this._dropdownElement||!this._listElement||(this._asyncElement&&this._asyncElement.isConnected&&U(this._asyncElement),this._busyElement&&(this._busyElement.style.display="none"),this._listElement.isConnected||this._dropdownElement.appendChild(this._listElement),R(this._listElement),y(e,this._listElement),this._headerElement&&!this._headerElement.isConnected&&this._dropdownElement.insertAdjacentElement("afterbegin",this._headerElement),this._footerElement&&!this._footerElement.isConnected&&this._dropdownElement.insertAdjacentElement("beforeend",this._footerElement),"position"in this._dropdownElement&&typeof this._dropdownElement.position=="function"&&this._dropdownElement.position())}appendOptions(e,t){!this._dropdownElement||!this._listElement||y(t,this._listElement,e,this._listElement.childElementCount,!1)}setBusyVisibility(e){this._dropdownElement&&(e?this._busyElement.style.removeProperty("display"):this._busyElement.style.display="none")}getScreenWidth(){return window.innerWidth}_getListItemElements(){return this._dropdownElement?Array.from(this._dropdownElement.querySelectorAll(Y.elementName)):[]}_toggleSelectedOption(e,t){if(!this._dropdownElement)return;let o=this._getListItemElements();o.length&&o.filter(a=>a!==e&&a.active).forEach(a=>a.active=!1),e.selected=t,e.setAttribute("aria-selected",`${t}`),e.setAttribute("aria-checked",`${t}`);let n=e.querySelector(`${j.elementName}[slot=leading]`);if(n){let p=C(t);M(p,n)}}_getTargetElementWidth(e){return e&&P(e)?e():this._targetElement.getBoundingClientRect().width}_activateListOption(e,t){e&&!e.disabled&&(e.active=!0,t&&P(t)&&t(e.id))}_scrollListItemIntoView(e,t="auto",o="nearest"){if(e&&this._dropdownElement&&this._dropdownElement.isConnected){let n=H(this._dropdownElement,b.selectors.CONTAINER);n&&K(n,e,t,o)}}_getSelectedListItem(){return this._getListItemElements().find(t=>t.selected)}};var pe=class{constructor(e,t){this._targetElement=e;q.define([O,I]),this._foundation=new S(new D(this._targetElement),t)}destroy(){this._foundation.destroy()}open(){this._foundation.open()}close(){this._foundation.close()}getActiveOptionIndex(){return this._foundation.getActiveOptionIndex()}getActiveOption(){return this._foundation.getActiveOption()}toggleOptionMultiple(e,t){return this._foundation.toggleOptionMultiple(e,t)}activateSelectedOption(){this._foundation.activateSelectedOption()}activateFirstOption(){return this._foundation.activateFirstOption()}activateOption(e){return this._foundation.activateOption(e)}activateInitialOption(){return this._foundation.activateInitialOption()}clearActiveOption(){this._foundation.clearActiveOption()}setSelectedValues(e){return this._foundation.setSelectedValues(e)}get dropdownElement(){return this._foundation.dropdownElement}setOptions(e){this._foundation.setOptions(e)}appendOptions(e){this._foundation.appendOptions(e)}scrollSelectedOptionIntoView(e){this._foundation.scrollSelectedOptionIntoView()}setScrollBottomListener(e,t){this._foundation.setScrollBottomListener(e,t)}removeScrollBottomListener(){this._foundation.removeScrollBottomListener()}setBusyVisibility(e){this._foundation.setBusyVisibility(e)}handleKey(e){this._foundation.handleKey(e)}};var T=class{constructor(){this._popupClasses=[];this._syncPopupWidth=!1;this._optionLimit=0;this._observeScroll=!1;this._observeScrollThreshold=0;this._constrainPopupWidth=!0;this._wrapOptionText=!1}get syncPopupWidth(){return this._syncPopupWidth}set syncPopupWidth(e){this._syncPopupWidth=e}get popupClasses(){return this._popupClasses}set popupClasses(e){typeof e=="string"&&(e=[e]),Array.isArray(e)&&(this._popupClasses=e)}get observeScroll(){return this._observeScroll}set observeScroll(e){this._observeScroll=e}get observeScrollThreshold(){return this._observeScrollThreshold}set observeScrollThreshold(e){this._observeScrollThreshold=e}get optionLimit(){return this._optionLimit}set optionLimit(e){this._optionLimit=e}get popupHeaderBuilder(){return this._popupHeaderBuilder}set popupHeaderBuilder(e){this._popupHeaderBuilder=e}get popupFooterBuilder(){return this._popupFooterBuilder}set popupFooterBuilder(e){this._popupFooterBuilder=e}get constrainPopupWidth(){return this._constrainPopupWidth}set constrainPopupWidth(e){this._constrainPopupWidth=e}get wrapOptionText(){return this._wrapOptionText}set wrapOptionText(e){this._wrapOptionText=e}_applySelection(){}};var de=class extends T{constructor(t){super();this._config=t;this._open=!1;this._options=[];this._childOpen=!1;this._popupHasMouse=!1;this._targetMouseEnterListener=o=>this._onTargetMouseEnter(o),this._targetMouseLeaveListener=o=>this._onTargetMouseLeave(o),this._childPopupMouseEnterListener=()=>this._onChildPopupMouseEnter(),this._childPopupMouseLeaveListener=()=>this._onChildPopupMouseLeave(),this._documentMouseMoveListener=o=>this._mouseCoords={x:o.pageX,y:o.pageY}}_onChildPopupMouseEnter(){this._popupHasMouse=!0}_onChildPopupMouseLeave(){this._popupHasMouse=!1,setTimeout(()=>{let t=document.elementFromPoint(this._mouseCoords.x,this._mouseCoords.y);!this._popupHasMouse&&!this._childOpen&&(!t||!this._isOwnElement(t))&&(this._setCascadeTargetInactive(),this._closeDropdown())},this._config.popupTimeout)}_onTargetMouseEnter(t){this._options.length&&this._openDropdown({fromKeyboard:!1})}_onTargetMouseLeave(t){this._activeMouseLeaveTimeout=window.setTimeout(()=>{if(!(!this._open||this._childOpen)){if(this._mouseCoords){let o=document.elementFromPoint(this._mouseCoords.x,this._mouseCoords.y);if(o&&this._isOwnElement(o))return}this._setCascadeTargetInactive(),this._closeDropdown()}},this._config.targetTimeout)}_clearMouseLeaveTimeout(){this._activeMouseLeaveTimeout!==void 0&&window.clearTimeout(this._activeMouseLeaveTimeout)}};export{u as a,Z as b,ee as c,te as d,le as e,S as f,D as g,pe as h,T as i,de as j};
|
|
7
|
+
//# sourceMappingURL=chunk.MKJCHUJH.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/list-dropdown/list-dropdown-constants.ts", "../../../../../../node_modules/@tylertech/forge-core/esm/events/event-aware.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-types.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-axis-observer.js", "../../src/list-dropdown/list-dropdown-utils.ts", "../../src/list-dropdown/list-dropdown-foundation.ts", "../../src/list-dropdown/list-dropdown-adapter.ts", "../../src/list-dropdown/list-dropdown.ts", "../../src/list-dropdown/list-dropdown-aware-foundation.ts", "../../src/list-dropdown/cascading-list-dropdown-aware-foundation.ts"],
|
|
4
|
+
"sourcesContent": ["import { IconExternalType, IIconComponent } from '../icon';\nimport { IPopupPosition, PopupPlacement } from '../popup';\n\nconst attributes = {\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n CONSTRAIN_POPUP_WIDTH: 'constrain-popup-width',\n WRAP_OPTION_TEXT: 'wrap-option-text',\n\n // Internal\n CHECKBOX_ELEMENT: 'data-list-dropdown-checkbox',\n DATA_ALLOW_FOCUS: 'data-list-dropdown-allow-focus'\n};\n\nconst classes = {\n GROUP_WRAPPER: 'forge-list-dropdown__group-wrapper'\n};\n\nexport const LIST_DROPDOWN_CONSTANTS = {\n attributes,\n classes\n};\n\nexport type ListDropdownOptionBuilder<T = HTMLElement> = (option: IListDropdownOption, parentElement: T) => HTMLElement | string | void;\nexport type ListDropdownHeaderBuilder = () => HTMLElement;\nexport type ListDropdownFooterBuilder = () => HTMLElement;\nexport type ListDropdownOptionGroupBuilder<T = any> = (option: IListDropdownOptionGroup<T>) => HTMLElement | string;\nexport type ListDropdownTransformCallback = (label: string) => string | HTMLElement;\nexport type ListDropdownIconType = 'font' | 'component';\n\nexport interface IBaseListDropdownOption<T = any> {\n value: T;\n label: string;\n secondaryLabel?: string;\n disabled?: boolean;\n divider?: boolean;\n optionClass?: string | string[];\n leadingIcon?: string;\n leadingIconClass?: string;\n leadingIconType?: ListDropdownIconType;\n leadingIconComponentProps?: Partial<IIconComponent>;\n trailingIcon?: string;\n trailingIconClass?: string;\n trailingIconType?: ListDropdownIconType;\n trailingIconComponentProps?: Partial<IIconComponent>;\n leadingBuilder?: () => HTMLElement;\n trailingBuilder?: () => HTMLElement;\n}\n\nexport interface IListDropdownOption<T = any> extends IBaseListDropdownOption<T> {\n options?: Array<IListDropdownOption | IListDropdownOptionGroup>;\n elementAttributes?: Map<string, string>;\n}\n\nexport interface IListDropdownOptionGroup<T = any, K = any> {\n text?: string;\n value?: K;\n builder?: ListDropdownOptionGroupBuilder;\n options: IListDropdownOption<T>[];\n}\n\nexport interface IListDropdownSelectEventData {\n value: IListDropdownOption | IListDropdownOption[];\n}\n\nexport interface IListDropdownConfig<T = any> {\n id: string;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n selectCallback: (value: T) => void;\n \n // Optional values\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n syncWidth?: boolean;\n constrainViewportWidth?: boolean;\n wrapOptionText?: boolean;\n selectedValues?: T[];\n multiple?: boolean;\n activeStartIndex?: number;\n visibleStartIndex?: number;\n transform?: ListDropdownTransformCallback;\n allowBusy?: boolean;\n asyncStyle?: ListDropdownAsyncStyle;\n iconClass?: string;\n dense?: boolean;\n type?: ListDropdownType;\n popupClasses?: string | string[];\n popupOffset?: IPopupPosition;\n popupStatic?: boolean;\n popupPlacement?: PopupPlacement;\n popupFallbackPlacements?: PopupPlacement[];\n optionLimit?: number;\n optionBuilder?: ListDropdownOptionBuilder;\n observeScroll?: boolean;\n observeScrollThreshold?: number;\n targetWidthCallback?: () => number;\n scrollEndListener?: () => void;\n headerBuilder?: ListDropdownHeaderBuilder;\n footerBuilder?: ListDropdownFooterBuilder;\n cascade?: boolean;\n cascadingElementFactory?: (config: IListDropdownCascadingElementFactoryConfig) => HTMLElement;\n}\n\nexport interface IListDropdownCascadingElementFactoryConfig {\n index: number;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n parentValue: any;\n}\n\nexport const DEFAULT_LIST_DROPDOWN_CONFIG: Partial<IListDropdownConfig> = {\n options: [],\n syncWidth: false,\n selectedValues: [],\n multiple: false\n};\n\nexport interface IListDropdownOpenConfig extends IListDropdownConfig {}\n\nexport enum ListDropdownType {\n None = 'none',\n Standard = 'standard',\n Menu = 'menu'\n}\n\nexport enum ListDropdownAsyncStyle {\n Spinner = 'spinner',\n Skeleton = 'skeleton'\n}\n", "export class EventAware {\n constructor() {\n this._listenerMap = new Map();\n }\n _emit(type, data) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length) {\n listeners.forEach(cb => cb({ type, data }));\n }\n }\n hasListeners(type) {\n return type ? this._listenerMap.has(type) : this._listenerMap.size > 0;\n }\n addListener(type, listener) {\n if (!this._listenerMap.has(type)) {\n this._listenerMap.set(type, [listener]);\n }\n else {\n const listeners = this._listenerMap.get(type);\n if (listeners) {\n listeners.push(listener);\n }\n }\n }\n removeListener(type, listener) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length && listeners.includes(listener)) {\n listeners.splice(listeners.indexOf(listener), 1);\n if (!listeners.length) {\n this._listenerMap.delete(type);\n }\n }\n }\n}\n", "export var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[\"Up\"] = \"up\";\n ScrollDirection[\"Down\"] = \"down\";\n ScrollDirection[\"Left\"] = \"left\";\n ScrollDirection[\"Right\"] = \"right\";\n})(ScrollDirection || (ScrollDirection = {}));\nexport var ScrollEvents;\n(function (ScrollEvents) {\n ScrollEvents[\"Scroll\"] = \"scroll\";\n ScrollEvents[\"Scrolled\"] = \"scrolled\";\n ScrollEvents[\"ScrolledStart\"] = \"scrolled-start\";\n ScrollEvents[\"ScrolledEnd\"] = \"scrolled-end\";\n})(ScrollEvents || (ScrollEvents = {}));\n", "import { EventAware } from '../events/event-aware';\nimport { ScrollEvents, ScrollDirection } from './scroll-types';\nimport { isDefined, throttle, isNumber } from '../utils';\nconst DEFAULT_SCROLL_THROTTLE = 100;\n/**\n * Provides facilties for observing and reacting to scroll events and information on a given element.\n */\nexport class ScrollAxisObserver extends EventAware {\n constructor(_element, _config = {}) {\n super();\n this._element = _element;\n this._config = _config;\n this._axis = 'vertical';\n this._scrollThreshold = 0;\n this._lastScrollPosition = 0;\n this._lastScrollTop = 0;\n this._lastScrollLeft = 0;\n this._isListening = false;\n this._initialize();\n }\n destroy() {\n this.stop();\n }\n start() {\n if (!this._isListening) {\n this._element.addEventListener('scroll', this._scrollListener);\n this._isListening = true;\n }\n }\n stop() {\n this._element.removeEventListener('scroll', this._scrollListener);\n this._isListening = false;\n }\n _initialize() {\n if (this._config.throttle) {\n const wait = this._config.throttleTime || DEFAULT_SCROLL_THROTTLE;\n this._scrollListener = throttle(() => this._onScroll(), wait);\n }\n else {\n this._scrollListener = () => this._onScroll();\n }\n if (!isDefined(this._config.paused) || !this._config.paused) {\n this.start();\n }\n if (isDefined(this._config.axis)) {\n this._axis = this._config.axis;\n }\n if (isDefined(this._config.scrollThreshold) && isNumber(this._config.scrollThreshold)) {\n this._scrollThreshold = this._config.scrollThreshold;\n }\n }\n _isScrollAxis() {\n const isVertical = this._lastScrollTop !== this._element.scrollTop;\n const isHorizontal = this._lastScrollLeft !== this._element.scrollLeft;\n return (this._axis === 'vertical' && isVertical) || (this._axis === 'horizontal' && isHorizontal);\n }\n _onScroll() {\n if (!this._isScrollAxis()) {\n return;\n }\n const position = this.scrollPosition;\n const direction = this._lastScrollPosition - position < 0 ? this._axis === 'vertical' ? ScrollDirection.Down : ScrollDirection.Right : this._axis === 'vertical' ? ScrollDirection.Up : ScrollDirection.Left;\n this._emit(ScrollEvents.Scroll, { direction, position });\n if (this._lastScrollPosition <= this._scrollThreshold && position > this._scrollThreshold) {\n this._emit(ScrollEvents.Scrolled, true);\n }\n else if (this._lastScrollPosition >= this._scrollThreshold && (this._scrollThreshold > 0 ? position < this._scrollThreshold : position === 0)) {\n this._emit(ScrollEvents.Scrolled, false);\n }\n const scrollStart = Math.round(position - this._scrollThreshold);\n const scrollEnd = Math.round(this.scrollSize - position);\n if (this._lastScrollPosition >= this._scrollThreshold && scrollStart <= 0) {\n this._emit(ScrollEvents.ScrolledStart);\n }\n else if (this._lastScrollPosition <= (this.scrollSize - this._scrollThreshold) && scrollEnd <= this._scrollThreshold) {\n this._emit(ScrollEvents.ScrolledEnd);\n }\n this._lastScrollPosition = position || 0;\n this._lastScrollTop = this._element.scrollTop || 0;\n this._lastScrollLeft = this._element.scrollLeft || 0;\n }\n get scrollPosition() {\n return this._axis === 'vertical' ? this._element.scrollTop : this._element.scrollLeft;\n }\n get isScrolled() {\n return this.scrollPosition > this._scrollThreshold;\n }\n get isScrolledStart() {\n return this.scrollPosition === 0;\n }\n get isScrolledEnd() {\n return this.scrollPosition === this._element.scrollWidth;\n }\n get isScrollable() {\n if (this._axis === 'vertical') {\n return this._element.scrollHeight > this._element.clientHeight;\n }\n return this._element.scrollWidth > this._element.clientWidth;\n }\n get scrollSize() {\n return (this._axis === 'vertical' ? this._element.scrollHeight : this._element.scrollWidth) - this.elementSize;\n }\n get elementSize() {\n return this._axis === 'vertical' ? this._element.clientHeight : this._element.clientWidth;\n }\n setScrollPosition(position) {\n if (this._axis === 'vertical') {\n this._element.scrollTop = position;\n }\n else {\n this._element.scrollLeft = position;\n }\n }\n}\n", "import { addClass, getEventPath, isDeepEqual, isDefined, isObject } from '@tylertech/forge-core';\nimport { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { IIconComponent } from '../icon';\nimport { ILinearProgressComponent, LINEAR_PROGRESS_CONSTANTS } from '../linear-progress';\nimport { IListComponent, LIST_CONSTANTS } from '../list/list';\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../popup';\nimport { ISkeletonComponent, SKELETON_CONSTANTS } from '../skeleton';\nimport { IListDropdownCascadingElementFactoryConfig, IListDropdownOpenConfig, IListDropdownOption, IListDropdownOptionGroup, ListDropdownAsyncStyle, ListDropdownIconType, ListDropdownType, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\n\nexport enum ListDropdownOptionType { Option, Group }\n\n/**\n * Creates the floating dropdown element container.\n * @param config \n * @param targetElement \n */\nexport function createDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const dropdownElement = createPopupDropdown(config, targetElement);\n const dropdownId = `list-dropdown-popup-${config.id}`;\n\n // Prevent mousedown events from changing focus. We keep focus in the target element at all times while open.\n dropdownElement.addEventListener('mousedown', evt => {\n const composedPath = getEventPath(evt);\n\n // We allow for custom header and footer templates and these elements could be focusable so we need to allow access into them\n const isFromCustomTemplate = composedPath.find(el => el.nodeType === 1 && el.hasAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS));\n if (isFromCustomTemplate) {\n return;\n }\n\n const isWithinDropdownElement = composedPath.find(el => el.id === dropdownId || el.id === config.id);\n if (isWithinDropdownElement) {\n evt.preventDefault();\n }\n });\n\n if (config.id) {\n dropdownElement.id = dropdownId;\n }\n if (config.popupClasses) {\n addClass(config.popupClasses, dropdownElement);\n }\n\n return dropdownElement;\n}\n\nexport function createPopupDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopupComponent {\n const popupElement = document.createElement('forge-popup');\n popupElement.targetElement = targetElement;\n popupElement.placement = config.popupPlacement || 'bottom-start';\n popupElement.manageFocus = false;\n popupElement.static = !!config.popupStatic;\n\n if (config.popupFallbackPlacements?.length) {\n popupElement.fallbackPlacements = config.popupFallbackPlacements;\n }\n\n if (config.constrainViewportWidth) {\n popupElement.setAttribute(POPUP_CONSTANTS.attributes.CONSTRAIN_VIEWPORT_WIDTH, '');\n }\n\n if (config.popupOffset) {\n popupElement.offset = config.popupOffset;\n }\n\n // Set the animations based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n popupElement.animationType = PopupAnimationType.Menu;\n break;\n case ListDropdownType.None:\n popupElement.animationType = PopupAnimationType.None;\n break;\n default:\n popupElement.animationType = PopupAnimationType.Dropdown;\n }\n return popupElement;\n}\n\nexport function createList(config: IListDropdownOpenConfig): IListComponent {\n const listElement = document.createElement(LIST_CONSTANTS.elementName) as IListComponent;\n listElement.id = `list-dropdown-list-${config.id}`;\n listElement.propagateClick = false;\n\n // Set roles and other attributes based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n listElement.setAttribute('role', 'menu');\n listElement.setAttribute('aria-orientation', 'vertical');\n break;\n default:\n listElement.setAttribute('role', 'listbox');\n }\n\n return listElement;\n}\n\n/**\n * Creates the list to place inside of the dropdown.\n * @param config \n */\nexport function createListItems(config: IListDropdownOpenConfig, listElement: IListComponent, options?: Array<IListDropdownOption | IListDropdownOptionGroup>, startIndex = 0, renderSelected = true): void {\n // Ensure the options are provided in the form a group (if no groups provided, then we have one anonymous group of options)\n const groups = getOptionsByGroup(options || config.options);\n const flatOptions = getFlattenedOptions(groups);\n\n const limitOptions = config.optionLimit ? true : false;\n let optionLimit = config.optionLimit || 0;\n let optionIdIndex = startIndex;\n\n // Iterate over our groups and render the optional headers and options for that group\n for (const group of groups) {\n let optionParent: IListComponent | HTMLElement = listElement;\n\n // Check for a group header builder callback\n if (group.builder && typeof group.builder === 'function') {\n const headerElement = group.builder(group);\n if (headerElement) {\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n optionParent = groupWrapper;\n\n if (typeof headerElement === 'string') {\n groupWrapper.innerHTML = headerElement;\n } else if (headerElement instanceof HTMLElement) {\n groupWrapper.appendChild(headerElement);\n }\n\n listElement.appendChild(groupWrapper);\n }\n } else if (group.text) {\n // We are rendering just text as a group header so create the group header element with predefined styles\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n\n const listHeaderElement = document.createElement('div');\n listHeaderElement.textContent = group.text;\n listHeaderElement.classList.add('forge-typography--overline');\n listHeaderElement.style.fontFamily = 'Roboto,sans-serif';\n listHeaderElement.style.fontSize = '0.75rem';\n listHeaderElement.style.lineHeight = '2rem';\n listHeaderElement.style.letterSpacing = '0.16667em';\n listHeaderElement.style.fontWeight = '500';\n listHeaderElement.style.margin = '4px 8px';\n\n optionParent = groupWrapper;\n groupWrapper.appendChild(listHeaderElement);\n listElement.appendChild(groupWrapper);\n }\n\n // Loop over the options for this group\n for (const option of group.options) {\n // First we check if this option is just a divider\n if (option.divider) {\n const dividerElement = createDivider();\n listElement.appendChild(dividerElement);\n continue;\n }\n\n // Check if an option limit has been provided to reduce amount of options that need to be rendered\n if (limitOptions && --optionLimit < 0) {\n break;\n }\n \n // Create and configure the list element\n const isSelected = config.selectedValues ? config.selectedValues.some(v => isDeepEqual(v, option.value)) : false;\n\n // We don't render selected options that are appended dynamically since those are always displayed at the top of the list\n if (!renderSelected && isSelected) {\n continue;\n }\n\n let listItemElement = document.createElement('forge-list-item');\n listItemElement.value = option.value;\n listItemElement.id = `list-dropdown-option-${config.id}-${optionIdIndex++}`;\n\n if (config.wrapOptionText) {\n listItemElement.wrap = true;\n }\n \n // Add any CSS classes to the option list-item\n if (option.optionClass && (typeof option.optionClass === 'string' || Array.isArray(option.optionClass) && option.optionClass.length)) {\n addClass(option.optionClass, listItemElement);\n }\n\n if (config.dense) {\n listItemElement.dense = true;\n }\n\n // Check for a custom option template builder\n if (config.optionBuilder && typeof config.optionBuilder === 'function') {\n const element = config.optionBuilder(option, listItemElement);\n if (element) {\n if (typeof element === 'string') {\n listItemElement.innerHTML = element;\n } else {\n listItemElement.appendChild(element);\n }\n }\n } else {\n if (typeof config.transform !== 'function') {\n listItemElement.textContent = option.label || '';\n } else {\n const result = config.transform(option.label);\n if (typeof result === 'string') {\n listItemElement.textContent = result;\n } else if (typeof result === 'object' && (result as HTMLElement).nodeType !== undefined) {\n listItemElement.appendChild(result);\n }\n }\n }\n\n // Check for secondary (subtitle) text\n if (option.secondaryLabel) {\n const secondaryLabelElement = document.createElement('span');\n secondaryLabelElement.slot = 'subtitle';\n secondaryLabelElement.textContent = option.secondaryLabel;\n listItemElement.twoLine = true;\n listItemElement.appendChild(secondaryLabelElement);\n }\n\n // If multiple selections are enabled then we need to create and append a leading checkbox element\n if (config.multiple) {\n const checkboxElement = createCheckboxElement(isSelected);\n listItemElement.appendChild(checkboxElement);\n listItemElement.setAttribute('aria-selected', `${isSelected}`);\n listItemElement.setAttribute('aria-checked', `${isSelected}`);\n }\n\n if (option.elementAttributes) {\n option.elementAttributes.forEach((value: string, key: string) => {\n listItemElement.setAttribute(key, value);\n });\n }\n\n // Leading element/icon\n if (option.leadingBuilder) {\n const element = option.leadingBuilder();\n if (isObject(element)) {\n element.slot = 'leading';\n listItemElement.appendChild(element);\n }\n } else if (option.leadingIcon) {\n const leadingIconElement = createIconElement(option.leadingIconType, option.leadingIcon, option.leadingIconClass || config.iconClass, option.leadingIconComponentProps);\n leadingIconElement.slot = 'leading';\n listItemElement.appendChild(leadingIconElement);\n }\n\n // Trailing element/icon\n if (option.trailingBuilder) {\n const element = option.trailingBuilder();\n if (isObject(element)) {\n element.slot = 'trailing';\n listItemElement.appendChild(element);\n }\n } else if (option.trailingIcon) {\n const trailingIconElement = createIconElement(option.trailingIconType, option.trailingIcon, option.trailingIconClass || config.iconClass, option.trailingIconComponentProps);\n trailingIconElement.slot = 'trailing';\n listItemElement.appendChild(trailingIconElement);\n }\n\n // Update the disabled state\n if (option.disabled) {\n listItemElement.disabled = option.disabled;\n listItemElement.setAttribute('aria-disabled', 'true');\n } else {\n listItemElement.setAttribute('aria-disabled', 'false');\n }\n\n // Update the selected state\n if (isSelected) {\n listItemElement.selected = true;\n }\n listItemElement.setAttribute('aria-selected', isSelected ? 'true' : 'false');\n\n // If we have any child options, we need to render a child menu for this list item\n if (!option.disabled && typeof config.cascadingElementFactory === 'function' && Array.isArray(option.options) && option.options.length) {\n // Create the trailing indicator icon to show that a child menu exists for this option. \n const optionIconElement = document.createElement('forge-icon');\n optionIconElement.name = 'arrow_right';\n optionIconElement.slot = 'trailing';\n listItemElement.appendChild(optionIconElement);\n\n const nonDividerOptions = flatOptions.filter(o => !o.divider);\n\n // Create the nested cascading element wrapper\n const factoryConfig: IListDropdownCascadingElementFactoryConfig = {\n index: nonDividerOptions.indexOf(option),\n options: option.options,\n parentValue: option.value\n };\n const cascadingElement = config.cascadingElementFactory.call(null, factoryConfig);\n cascadingElement.appendChild(listItemElement);\n listItemElement = cascadingElement;\n }\n\n optionParent.appendChild(listItemElement);\n }\n }\n}\n\nexport function createCheckboxElement(selected: boolean): HTMLElement {\n const checkboxElement = document.createElement('forge-icon');\n checkboxElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT, '');\n checkboxElement.name = selected ? tylIconCheckBox.name : tylIconCheckBoxOutlineBlank.name;\n checkboxElement.slot = 'leading';\n checkboxElement.style.marginRight = '16px';\n checkboxElement.style.verticalAlign = 'middle';\n return checkboxElement;\n}\n\nfunction createDivider(): HTMLElement {\n const divider = document.createElement('forge-divider');\n divider.setAttribute('aria-hidden', 'true');\n return divider;\n}\n\nfunction createIconElement(type: ListDropdownIconType = 'font', iconName: string, iconClass?: string, componentProps?: Partial<IIconComponent>): HTMLElement {\n if (type === 'component') {\n const icon = document.createElement('forge-icon');\n if (iconClass) {\n icon.classList.add(iconClass);\n }\n icon.setAttribute('aria-hidden', 'true');\n icon.name = iconName;\n if (componentProps) {\n Object.assign(icon, componentProps);\n }\n return icon;\n }\n\n const iconElement = document.createElement('i');\n iconElement.classList.add(iconClass || ICON_CLASS_NAME);\n iconElement.setAttribute('aria-hidden', 'true');\n iconElement.textContent = iconName;\n return iconElement;\n}\n\nexport function createAsyncElement(asyncStyle?: ListDropdownAsyncStyle): HTMLElement {\n switch (asyncStyle) {\n case ListDropdownAsyncStyle.Skeleton:\n return createSkeletonElement();\n default:\n return createSpinnerElement();\n }\n}\n\nfunction createSpinnerElement(): HTMLElement {\n const div = document.createElement('div');\n div.style.display = 'flex';\n div.style.justifyContent = 'center';\n div.style.alignItems = 'center';\n div.style.padding = '8px';\n div.style.boxSizing = 'border-box';\n\n const spinner = document.createElement('forge-circular-progress');\n spinner.style.setProperty('--forge-circular-progress-size', '24px');\n div.appendChild(spinner);\n\n return div;\n}\n\nfunction createSkeletonElement(): HTMLElement {\n const list = document.createElement('forge-list');\n const div = document.createElement('div');\n div.style.minWidth = '192px';\n for (let i = 0; i < 3; i++) {\n const listItemSkeleton = document.createElement(SKELETON_CONSTANTS.elementName) as ISkeletonComponent;\n listItemSkeleton.setAttribute('list-item', '');\n div.appendChild(listItemSkeleton);\n }\n list.appendChild(div);\n return list;\n}\n\nexport function createBusyElement(): ILinearProgressComponent {\n const linearProgress = document.createElement(LINEAR_PROGRESS_CONSTANTS.elementName) as ILinearProgressComponent;\n linearProgress.determinate = false;\n linearProgress.style.position = 'absolute';\n linearProgress.style.top = '0';\n linearProgress.style.left = '0';\n linearProgress.style.right = '0';\n linearProgress.style.width = '100%';\n return linearProgress;\n}\n\nfunction getOptionsByGroup(options: Array<IListDropdownOption | IListDropdownOptionGroup>): IListDropdownOptionGroup[] {\n return isListDropdownOptionType(options, ListDropdownOptionType.Group) ? (options as IListDropdownOptionGroup[]) : [{ text: '', options }] as IListDropdownOptionGroup[];\n}\n\n/**\n * Determines if the provided options are of the specified type.\n * @param options The options either grouped or individual.\n * @param type The type of option to detect.\n */\nexport function isListDropdownOptionType(options: Array<IListDropdownOption | IListDropdownOptionGroup>, type: ListDropdownOptionType): type is ListDropdownOptionType {\n const isOptionGroups = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('options') && (o.hasOwnProperty('text') || o.hasOwnProperty('builder')));\n const isOptionTypes = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value'));\n return (isOptionGroups && type === ListDropdownOptionType.Group) || (isOptionTypes && type === ListDropdownOptionType.Option);\n}\n\nexport function getFlattenedOptions(options: Array<IListDropdownOptionGroup | IListDropdownOption>): IListDropdownOption[] {\n if (isListDropdownOptionType(options, ListDropdownOptionType.Group)) {\n const groups = options as IListDropdownOptionGroup[];\n return groups.reduce((flatOpts, group) => flatOpts.concat(group.options), [] as IListDropdownOption[]);\n }\n return [...options as IListDropdownOption[]];\n}\n", "import { IListDropdownAdapter } from './list-dropdown-adapter';\nimport { DEFAULT_LIST_DROPDOWN_CONFIG, IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { getFlattenedOptions } from './list-dropdown-utils';\n\nexport interface IListDropdownFoundation {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n setSelectedValues(values: any): void;\n clearActiveOption(): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdownFoundation implements IListDropdownFoundation {\n private _config: IListDropdownConfig;\n private _open = false;\n private _selectListener: (value: any, id: string) => void;\n private _closeListener: () => void;\n private _scrollEndListener: () => void;\n\n constructor(private _adapter: IListDropdownAdapter, config: IListDropdownConfig) {\n this._config = Object.assign({ ...DEFAULT_LIST_DROPDOWN_CONFIG }, { ...config });\n this._selectListener = (value, id) => this._onSelect(value, id);\n this._closeListener = () => {\n if (typeof this._config.closeCallback === 'function') {\n this._config.closeCallback();\n }\n };\n this._scrollEndListener = () => {\n if (this._config.observeScroll && typeof this._config.scrollEndListener === 'function') {\n this._config.scrollEndListener();\n }\n };\n }\n\n public destroy(): void {\n if (this._open) {\n this.close();\n }\n }\n\n public open(): void {\n if (!this._open) {\n this._open = true;\n this._adapter.open(this._config, this._selectListener, this._closeListener);\n window.requestAnimationFrame(() => {\n if (this._open) {\n this.activateInitialOption();\n }\n });\n\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n }\n }\n\n public close(): void {\n if (this._open) {\n this._open = false;\n this._adapter.close();\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n }\n }\n\n private _onSelect(value: any, id: string): void {\n if (typeof this._config.activeChangeCallback === 'function') {\n this._config.activeChangeCallback(id);\n }\n\n if (typeof this._config.selectCallback === 'function') {\n this._config.selectCallback(value);\n }\n\n if (this._open) {\n const sync = this._config.syncWidth === undefined ? true : false;\n // Keep the popup width at least the same as the target if the target size has now changed\n this._adapter.syncWidth(sync);\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._adapter.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n const index = this.getActiveOptionIndex();\n return index >= 0 ? this._nonDividerOptions[index] : undefined;\n }\n \n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._adapter.toggleOptionMultiple(index, isSelected);\n }\n\n public activateSelectedOption(): void {\n this._adapter.activateSelectedOption(this._config);\n }\n\n public activateFirstOption(): number {\n const index = this._nonDividerOptions.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateLastOption(): number {\n const options = this._nonDividerOptions;\n const index = (options.length - 1) - options.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateOption(index: number, animate?: boolean): void {\n return this._adapter.activateOption(index, this._config.activeChangeCallback, animate);\n }\n\n public activateInitialOption(): void {\n if (typeof this._config.activeStartIndex === 'number' && this._nonDividerOptions[this._config.activeStartIndex]) {\n this.activateOption(this._config.activeStartIndex, false);\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (this._config.selectedValues && this._config.selectedValues.length) {\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (typeof this._config.visibleStartIndex === 'number' && this._nonDividerOptions[this._config.visibleStartIndex]) {\n this._adapter.scrollOptionIntoView(this._config.visibleStartIndex);\n }\n }\n\n public setSelectedValues(values: any[]): void {\n if (!Array.isArray(values)) {\n values = [values];\n }\n if (!this._config.multiple && values.length > 1) {\n values = [values[0]];\n }\n this._config.selectedValues = values;\n this._adapter.setSelectedValues(values, this._config.multiple);\n }\n\n public clearActiveOption(): void {\n this._adapter.clearActiveOption();\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = options;\n if (!this._open) {\n return;\n }\n this._adapter.setOptions(this._config);\n this.activateInitialOption();\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = [...this._config.options, ...options] as Array<IListDropdownOption | IListDropdownOptionGroup>;\n if (!this._open) {\n return;\n }\n this._adapter.appendOptions(options, this._config);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._adapter.dropdownElement;\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n this._adapter.scrollSelectedOptionIntoView(animate);\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._config.scrollEndListener = listener;\n this._config.observeScroll = true;\n this._config.observeScrollThreshold = threshold;\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n\n public removeScrollBottomListener(): void {\n this._config.scrollEndListener = undefined;\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._config.allowBusy) {\n return;\n }\n this._adapter.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n switch (key) {\n case 'Enter':\n case 'NumpadEnter':\n const activeOptionIndex = this.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeOptionIndex];\n if (this._canSelectOption(activeOption)) {\n const id = this._adapter.getActiveOptionIdByIndex(activeOptionIndex);\n if (id) {\n this._onSelect(activeOption.value, id);\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n case 'Down':\n case 'ArrowDown':\n const options = this._nonDividerOptions;\n if (options.length && options.every(o => !this._canSelectOption(o))) {\n return;\n }\n const index = this._getNextActiveOptionIndex(key);\n this.activateOption(index);\n break;\n case 'Home':\n this.activateFirstOption();\n break;\n case 'End':\n this.activateLastOption();\n break;\n }\n }\n\n private _canSelectOption(option: IListDropdownOption): boolean {\n return option && !option.disabled && !option.divider;\n }\n\n private _getNextActiveOptionIndex(key: string): number {\n let index = this._adapter.getActiveOptionIndex();\n if (index === -1) {\n index = this._adapter.getSelectedOptionIndex();\n }\n if (key === 'ArrowUp' || key === 'Up') {\n return this._getPreviousHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n return this._getNextHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n\n private _getPreviousHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex <= 0 ? options.length - 1 : startIndex - 1;\n if (options[index].disabled) {\n return this._getPreviousHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _getNextHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex === options.length - 1 ? 0 : startIndex + 1;\n if (options[index].disabled) {\n return this._getNextHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private get _flatOptions(): IListDropdownOption[] {\n return getFlattenedOptions(this._config.options);\n }\n\n private get _nonDividerOptions(): IListDropdownOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n}\n", "import { IListDropdownOption, IListDropdownOpenConfig, IListDropdownOptionGroup, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\nimport { createDropdown, createList, createListItems, createAsyncElement, createBusyElement, createCheckboxElement } from './list-dropdown-utils';\nimport { IPopupComponent, POPUP_CONSTANTS } from '../popup';\nimport { IListComponent } from '../list/list';\nimport { LIST_ITEM_CONSTANTS, IListItemComponent } from '../list/list-item';\nimport { ScrollEvents, getShadowElement, IScrollObserverConfiguration, ScrollAxisObserver, removeAllChildren, isFunction, removeElement, replaceElement, createVisuallyHiddenElement, isDeepEqual, tryScrollIntoView } from '@tylertech/forge-core';\nimport { ILinearProgressComponent } from '../linear-progress';\nimport { ICON_CONSTANTS, IIconComponent } from '../icon';\n\nexport interface IListDropdownAdapter {\n dropdownElement: HTMLElement | undefined;\n open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void;\n close(): void;\n setScrollBottomListener(listener: () => void, scrollThreshold: number): void;\n removeScrollBottomListener(listener: () => void): void;\n getActiveOptionIndex(): number;\n getSelectedOptionIndex(): number;\n getActiveOptionIdByIndex(index: number): string | null;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n scrollOptionIntoView(index: number): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n activateSelectedOption(config: IListDropdownOpenConfig): void;\n activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate?: boolean): void;\n setSelectedValues(values: any[], multiple?: boolean): void;\n clearActiveOption(): void;\n syncWidth(sync: boolean, targetWidthCallback?: () => number): void;\n setOptions(config: IListDropdownOpenConfig): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void;\n setBusyVisibility(isVisible: boolean): void;\n getScreenWidth(): number;\n}\n\nexport class ListDropdownAdapter implements IListDropdownAdapter {\n private _dropdownElement: IPopupComponent | undefined;\n private _listElement: IListComponent | undefined;\n private _announcerElement: HTMLElement | undefined;\n private _scrollObserver: ScrollAxisObserver | undefined;\n private _asyncElement: HTMLElement | undefined;\n private _busyElement: ILinearProgressComponent;\n private _headerElement: HTMLElement;\n private _footerElement: HTMLElement;\n\n constructor(private _targetElement: HTMLElement) {}\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._dropdownElement;\n }\n\n public open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void {\n // Now lets create the popup and append the children\n this._dropdownElement = createDropdown(config, this._targetElement);\n this.syncWidth(!!config.syncWidth, config.targetWidthCallback);\n\n // If we are configured to show a busy indicator (linear progress bar across the top), then create and append it first\n if (config.allowBusy) {\n this._busyElement = createBusyElement();\n this._busyElement.style.display = 'none';\n this._dropdownElement.appendChild(this._busyElement);\n }\n\n // Create the header element if a builder exists\n if (config.headerBuilder) {\n this._headerElement = config.headerBuilder();\n if (this._headerElement) {\n this._headerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n \n // Create the footer element if a builder exists\n if (config.footerBuilder) {\n this._footerElement = config.footerBuilder();\n if (this._footerElement) {\n this._footerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n\n // Create the list from our config\n this._listElement = createList(config);\n\n // Add the listener for when list items are selected from the dropdown\n this._listElement.addEventListener('forge-list-item-select', evt => {\n evt.detail.listItem.setAttribute('aria-selected', 'true');\n selectCallback(evt.detail.value, evt.detail.listItem.id);\n });\n\n // Determine if we need to show the list or the async element first\n if (config.options.length) {\n // Now we can create an append the list items\n createListItems(config, this._listElement);\n this._dropdownElement.appendChild(this._listElement);\n\n // Always append the optional header element **first**\n if (this._headerElement) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n\n // Always append the optional footer element **last**\n if (this._footerElement) {\n this._dropdownElement.appendChild(this._footerElement);\n }\n } else if (config.allowBusy) {\n this._asyncElement = createAsyncElement(config.asyncStyle);\n this._dropdownElement.appendChild(this._asyncElement);\n }\n\n // Create the announcer element for a11y\n this._announcerElement = createVisuallyHiddenElement();\n this._announcerElement.id = `${config.id}-activedescendant`;\n this._dropdownElement.appendChild(this._announcerElement);\n\n // Open the popup\n this._dropdownElement.open = true;\n }\n\n public close(): void {\n if (!this._dropdownElement) {\n return;\n }\n this._dropdownElement.open = false;\n this._dropdownElement = undefined;\n this._listElement = undefined;\n this._announcerElement = undefined;\n }\n\n public setScrollBottomListener(listener: () => void, scrollThreshold: number): void {\n if (this._dropdownElement) {\n if (!this._scrollObserver) {\n const scrollTarget = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n const scrollConfig: IScrollObserverConfiguration = { scrollThreshold };\n this._scrollObserver = new ScrollAxisObserver(scrollTarget, scrollConfig);\n this._scrollObserver.addListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n }\n\n public removeScrollBottomListener(listener: () => void): void {\n if (this._scrollObserver) {\n this._scrollObserver.removeListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n\n public getActiveOptionIndex(): number {\n if (!this._dropdownElement) {\n return -1;\n }\n const listItems = this._getListItemElements();\n const activeListItem = [...listItems].reverse().find(li => li.active);\n return activeListItem ? listItems.indexOf(activeListItem) : -1;\n }\n\n public getSelectedOptionIndex(): number {\n const listItems = this._getListItemElements();\n return listItems.findIndex(li => li.selected);\n }\n\n public getActiveOptionIdByIndex(index: number): string | null {\n if (!this._dropdownElement) {\n return null;\n }\n const listItems = this._getListItemElements();\n const item = listItems[index];\n return item ? item.id : null;\n }\n\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n const listItems = this._getListItemElements();\n if (listItems.length && listItems[index]) {\n this._toggleSelectedOption(listItems[index], isSelected);\n }\n }\n\n public scrollOptionIntoView(index: number, animate = true): void {\n const listItem = this._getListItemElements()[index];\n if (listItem) {\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n const listItem = this._getSelectedListItem();\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n\n public activateSelectedOption(config: IListDropdownOpenConfig): void {\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n }\n \n const listItem = this._getSelectedListItem();\n if (listItem) {\n this._activateListOption(listItem, config.activeChangeCallback);\n }\n }\n\n public activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate = true): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n this._activateListOption(listItems[index], activeChangeCallback);\n this._scrollListItemIntoView(listItems[index], animate ? 'smooth' : 'auto');\n }\n }\n\n public setSelectedValues(values: any[], multiple = false): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n for (const listItem of listItems) {\n const isSelected = values.some(v => isDeepEqual(v, listItem.value));\n listItem.selected = isSelected;\n\n if (multiple) {\n const checkboxElement = listItem.querySelector(`[${LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT}]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n }\n }\n\n public clearActiveOption(): void {\n const listItems = this._getListItemElements();\n listItems.forEach(li => li.active = false);\n }\n\n public syncWidth(sync: boolean, targetWidthCallback?: () => number): void {\n if (this._dropdownElement) {\n this._dropdownElement.style[sync ? 'width' : 'minWidth'] = `${this._getTargetElementWidth(targetWidthCallback)}px`;\n }\n }\n\n public setOptions(config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n if (this._asyncElement && this._asyncElement.isConnected) {\n removeElement(this._asyncElement);\n }\n if (this._busyElement) {\n this._busyElement.style.display = 'none';\n }\n if (!this._listElement.isConnected) {\n this._dropdownElement.appendChild(this._listElement);\n }\n \n removeAllChildren(this._listElement);\n createListItems(config, this._listElement);\n\n if (this._headerElement && !this._headerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n if (this._footerElement && !this._footerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('beforeend', this._footerElement);\n }\n if ('position' in this._dropdownElement && typeof this._dropdownElement.position === 'function') {\n this._dropdownElement.position();\n }\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n createListItems(config, this._listElement, options, this._listElement.childElementCount, false);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n if (isVisible) {\n this._busyElement.style.removeProperty('display');\n } else {\n this._busyElement.style.display = 'none';\n }\n }\n\n public getScreenWidth(): number {\n return window.innerWidth;\n }\n\n private _getListItemElements(): IListItemComponent[] {\n return this._dropdownElement ? Array.from(this._dropdownElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[] : [];\n }\n\n private _toggleSelectedOption(listItem: IListItemComponent, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n // First we need to remove the active state from any other list items\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeItems = listItems.filter(li => li !== listItem && li.active);\n activeItems.forEach(ai => ai.active = false);\n }\n\n // Now we can toggle the selected state and sync the active state\n listItem.selected = isSelected;\n listItem.setAttribute('aria-selected', `${isSelected}`);\n listItem.setAttribute('aria-checked', `${isSelected}`);\n\n // Toggle the checkbox icon based on the selected state\n const checkboxElement = listItem.querySelector(`${ICON_CONSTANTS.elementName}[slot=leading]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n\n private _getTargetElementWidth(cb?: () => number): number {\n if (cb && isFunction(cb)) {\n return cb();\n }\n return this._targetElement.getBoundingClientRect().width;\n }\n\n private _activateListOption(listItem: IListItemComponent | undefined, activeChangeCallback?: (id: string) => void): void {\n if (listItem && !listItem.disabled) {\n listItem.active = true;\n if (activeChangeCallback && isFunction(activeChangeCallback)) {\n activeChangeCallback(listItem.id);\n }\n }\n }\n\n private _scrollListItemIntoView(listItem: HTMLElement | undefined, behavior: 'auto' | 'smooth' = 'auto', block: 'nearest' | 'center' = 'nearest'): void {\n if (listItem && this._dropdownElement && this._dropdownElement.isConnected) {\n const scrollContainer = getShadowElement(this._dropdownElement, POPUP_CONSTANTS.selectors.CONTAINER);\n if (scrollContainer) {\n tryScrollIntoView(scrollContainer, listItem, behavior, block);\n }\n }\n }\n\n private _getSelectedListItem(): IListItemComponent | undefined {\n const listItems = this._getListItemElements();\n return listItems.find(li => li.selected);\n }\n}\n", "import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\n\nimport { IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { ListDropdownFoundation } from './list-dropdown-foundation';\nimport { ListDropdownAdapter } from './list-dropdown-adapter';\nimport { IconRegistry } from '../icon';\n\nexport interface IListDropdown {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): void;\n destroy(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n activateInitialOption(): void;\n clearActiveOption(): void;\n setSelectedValues(values: any[]): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdown implements IListDropdown {\n private _foundation: ListDropdownFoundation;\n\n constructor(private _targetElement: HTMLElement, config: IListDropdownConfig) {\n IconRegistry.define([tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n this._foundation = new ListDropdownFoundation(new ListDropdownAdapter(this._targetElement), config);\n }\n\n public destroy(): void {\n this._foundation.destroy();\n }\n\n /** Opens the dropdown. */\n public open(): void {\n this._foundation.open();\n }\n\n /** Closes the dropdown. */\n public close(): void {\n this._foundation.close();\n }\n\n /** Gets the currently highlighted option index in the dropdown. */\n public getActiveOptionIndex(): number {\n return this._foundation.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n return this._foundation.getActiveOption();\n }\n \n /** Toggles the selected option by index. Only applies when in multiselect mode. */\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._foundation.toggleOptionMultiple(index, isSelected);\n }\n \n /** Activates the first selected option. */\n public activateSelectedOption(): void {\n this._foundation.activateSelectedOption();\n }\n\n /** Activates the first non-disabled option. */\n public activateFirstOption(): number {\n return this._foundation.activateFirstOption();\n }\n\n /** Activates (highlights) an option by index. */\n public activateOption(index: number): void {\n return this._foundation.activateOption(index);\n }\n\n /** Activates the first activatable option. */\n public activateInitialOption(): void {\n return this._foundation.activateInitialOption();\n }\n\n /** Clears the active option from the dropdown */\n public clearActiveOption(): void {\n this._foundation.clearActiveOption();\n }\n\n /** Sets the selected values. Only applies when in multiselect mode. */\n public setSelectedValues(values: any[]): void {\n return this._foundation.setSelectedValues(values);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._foundation.dropdownElement;\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.setOptions(options);\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.appendOptions(options);\n }\n\n public scrollSelectedOptionIntoView(animate?: boolean): void {\n this._foundation.scrollSelectedOptionIntoView();\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._foundation.setScrollBottomListener(listener, threshold);\n }\n\n public removeScrollBottomListener(): void {\n this._foundation.removeScrollBottomListener();\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n this._foundation.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n this._foundation.handleKey(key);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';\n\nexport interface IListDropdownAwareFoundation extends ICustomElementFoundation {\n popupClasses: string | string[];\n popupHeaderBuilder: ListDropdownHeaderBuilder;\n popupFooterBuilder: ListDropdownHeaderBuilder;\n syncPopupWidth: boolean;\n optionLimit: number;\n observeScroll: boolean;\n observeScrollThreshold: number;\n constrainPopupWidth: boolean;\n wrapOptionText: boolean;\n}\n\nexport abstract class ListDropdownAwareFoundation implements IListDropdownAwareFoundation {\n protected _popupClasses: string | string[] = [];\n protected _popupHeaderBuilder: ListDropdownHeaderBuilder;\n protected _popupFooterBuilder: ListDropdownFooterBuilder;\n protected _syncPopupWidth = false;\n protected _optionLimit = 0;\n protected _observeScroll = false;\n protected _observeScrollThreshold = 0;\n protected _constrainPopupWidth = true;\n protected _wrapOptionText = false;\n\n public get syncPopupWidth(): boolean {\n return this._syncPopupWidth;\n }\n public set syncPopupWidth(value: boolean) {\n this._syncPopupWidth = value;\n }\n\n public get popupClasses(): string | string[] {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n if (typeof value === 'string') {\n value = [value];\n }\n if (Array.isArray(value)) {\n this._popupClasses = value;\n }\n }\n\n public get observeScroll(): boolean {\n return this._observeScroll;\n }\n public set observeScroll(value: boolean) {\n this._observeScroll = value;\n }\n\n public get observeScrollThreshold(): number {\n return this._observeScrollThreshold;\n }\n public set observeScrollThreshold(value: number) {\n this._observeScrollThreshold = value;\n }\n\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n this._optionLimit = value;\n }\n\n public get popupHeaderBuilder(): ListDropdownHeaderBuilder {\n return this._popupHeaderBuilder;\n }\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n public get popupFooterBuilder(): ListDropdownFooterBuilder {\n return this._popupFooterBuilder;\n }\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n public get constrainPopupWidth(): boolean {\n return this._constrainPopupWidth;\n }\n public set constrainPopupWidth(value: boolean) {\n this._constrainPopupWidth = value;\n }\n\n public get wrapOptionText(): boolean {\n return this._wrapOptionText;\n }\n public set wrapOptionText(value: boolean) {\n this._wrapOptionText = value;\n }\n\n protected _applySelection(): void {}\n}\n", "import { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from './list-dropdown-aware-foundation';\n\nexport interface ICascadingListDropdownAwareFoundation extends IListDropdownAwareFoundation {}\n\nexport interface ICascadingListDropdownAwareFoundationConfiguration {\n popupTimeout: number;\n targetTimeout: number;\n}\n\nexport abstract class CascadingListDropdownAwareFoundation<T> extends ListDropdownAwareFoundation implements ICascadingListDropdownAwareFoundation {\n protected _open = false;\n protected _options: T[] = [];\n protected _childOpen = false;\n protected _popupHasMouse = false; // Used to determine if the popup element is under the users mouse\n protected _mouseCoords: { x: number; y: number };\n protected _activeMouseLeaveTimeout: number;\n protected _targetMouseEnterListener: (evt: MouseEvent) => void;\n protected _targetMouseLeaveListener: (evt: MouseEvent) => void;\n protected _childPopupMouseEnterListener: (evt: MouseEvent) => void;\n protected _childPopupMouseLeaveListener: (evt: MouseEvent) => void;\n protected _documentMouseMoveListener: (evt: MouseEvent) => void;\n \n protected abstract _attachCascadingListeners(): void;\n protected abstract _detachCascadingListeners(): void;\n protected abstract _onCascadingOptionSelected(data: any): void;\n protected abstract _onCascadingChildOpen(index: number): void;\n protected abstract _onCascadingChildClose(index: number): void;\n protected abstract _closeDropdown(): void;\n protected abstract _openDropdown({ fromKeyboard }: { fromKeyboard?: boolean }): void;\n protected abstract _setCascadeTargetInactive(): void;\n protected abstract _isOwnElement(element: Element): boolean;\n\n constructor(private _config: ICascadingListDropdownAwareFoundationConfiguration) {\n super();\n this._targetMouseEnterListener = evt => this._onTargetMouseEnter(evt);\n this._targetMouseLeaveListener = evt => this._onTargetMouseLeave(evt);\n this._childPopupMouseEnterListener = () => this._onChildPopupMouseEnter();\n this._childPopupMouseLeaveListener = () => this._onChildPopupMouseLeave();\n this._documentMouseMoveListener = evt => this._mouseCoords = { x: evt.pageX, y: evt.pageY };\n }\n\n private _onChildPopupMouseEnter(): void {\n this._popupHasMouse = true;\n }\n\n private _onChildPopupMouseLeave(): void {\n this._popupHasMouse = false;\n setTimeout(() => {\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (!this._popupHasMouse && !this._childOpen && (!mouseElement || !this._isOwnElement(mouseElement))) {\n this._setCascadeTargetInactive();\n this._closeDropdown();\n }\n }, this._config.popupTimeout);\n }\n\n private _onTargetMouseEnter(evt: MouseEvent): void {\n if (!this._options.length) {\n return;\n }\n this._openDropdown({ fromKeyboard: false });\n }\n\n private _onTargetMouseLeave(evt: MouseEvent): void {\n // We wrap this in a timeout to allow for the user to take an indirect path toward an open child menu. This\n // allows for the popup to stay open while the user is moving their mouse to it (makes the transition easier and more smooth)\n this._activeMouseLeaveTimeout = window.setTimeout(() => {\n // Ignore this if our open state has changed, or if we have a child popup open now\n if (!this._open || this._childOpen) {\n return;\n }\n if (this._mouseCoords) {\n // We ignore this event if the mouse moved to an element within our own popup\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (mouseElement && this._isOwnElement(mouseElement)) {\n return;\n }\n }\n this._setCascadeTargetInactive();\n this._closeDropdown();\n }, this._config.targetTimeout);\n }\n\n protected _clearMouseLeaveTimeout(): void {\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "4lBAGA,IAAMA,GAAa,CACjB,cAAe,gBACf,aAAc,eACd,eAAgB,iBAChB,yBAA0B,2BAC1B,iBAAkB,mBAClB,sBAAuB,wBACvB,iBAAkB,mBAGlB,iBAAkB,8BAClB,iBAAkB,gCACpB,EAEMC,GAAU,CACd,cAAe,oCACjB,EAEaC,EAA0B,CACrC,WAAAF,GACA,QAAAC,EACF,EAwFaE,EAA6D,CACxE,QAAS,CAAC,EACV,UAAW,GACX,eAAgB,CAAC,EACjB,SAAU,EACZ,EAIYC,QACVA,EAAA,KAAO,OACPA,EAAA,SAAW,WACXA,EAAA,KAAO,OAHGA,QAAA,IAMAC,QACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WAFDA,QAAA,IC/HL,IAAMC,EAAN,KAAiB,CACpB,aAAc,CACV,KAAK,aAAe,IAAI,GAC5B,CACA,MAAMC,EAAMC,EAAM,CACd,IAAMC,EAAY,KAAK,aAAa,IAAIF,CAAI,EACxCE,GAAaA,EAAU,QACvBA,EAAU,QAAQC,GAAMA,EAAG,CAAE,KAAAH,EAAM,KAAAC,CAAK,CAAC,CAAC,CAElD,CACA,aAAaD,EAAM,CACf,OAAOA,EAAO,KAAK,aAAa,IAAIA,CAAI,EAAI,KAAK,aAAa,KAAO,CACzE,CACA,YAAYA,EAAMI,EAAU,CACxB,GAAI,CAAC,KAAK,aAAa,IAAIJ,CAAI,EAC3B,KAAK,aAAa,IAAIA,EAAM,CAACI,CAAQ,CAAC,MAErC,CACD,IAAMF,EAAY,KAAK,aAAa,IAAIF,CAAI,EACxCE,GACAA,EAAU,KAAKE,CAAQ,EAGnC,CACA,eAAeJ,EAAMI,EAAU,CAC3B,IAAMF,EAAY,KAAK,aAAa,IAAIF,CAAI,EACxCE,GAAaA,EAAU,QAAUA,EAAU,SAASE,CAAQ,IAC5DF,EAAU,OAAOA,EAAU,QAAQE,CAAQ,EAAG,CAAC,EAC1CF,EAAU,QACX,KAAK,aAAa,OAAOF,CAAI,EAGzC,CACJ,ECjCO,IAAIK,GACV,SAAUA,EAAiB,CACxBA,EAAgB,GAAQ,KACxBA,EAAgB,KAAU,OAC1BA,EAAgB,KAAU,OAC1BA,EAAgB,MAAW,OAC/B,GAAGA,IAAoBA,EAAkB,CAAC,EAAE,EACrC,IAAIC,GACV,SAAUA,EAAc,CACrBA,EAAa,OAAY,SACzBA,EAAa,SAAc,WAC3BA,EAAa,cAAmB,iBAChCA,EAAa,YAAiB,cAClC,GAAGA,IAAiBA,EAAe,CAAC,EAAE,ECVtC,IAAMC,GAA0B,IAInBC,EAAN,cAAiCC,CAAW,CAC/C,YAAYC,EAAUC,EAAU,CAAC,EAAG,CAChC,MAAM,EACN,KAAK,SAAWD,EAChB,KAAK,QAAUC,EACf,KAAK,MAAQ,WACb,KAAK,iBAAmB,EACxB,KAAK,oBAAsB,EAC3B,KAAK,eAAiB,EACtB,KAAK,gBAAkB,EACvB,KAAK,aAAe,GACpB,KAAK,YAAY,CACrB,CACA,SAAU,CACN,KAAK,KAAK,CACd,CACA,OAAQ,CACC,KAAK,eACN,KAAK,SAAS,iBAAiB,SAAU,KAAK,eAAe,EAC7D,KAAK,aAAe,GAE5B,CACA,MAAO,CACH,KAAK,SAAS,oBAAoB,SAAU,KAAK,eAAe,EAChE,KAAK,aAAe,EACxB,CACA,aAAc,CACV,GAAI,KAAK,QAAQ,SAAU,CACvB,IAAMC,EAAO,KAAK,QAAQ,cAAgBL,GAC1C,KAAK,gBAAkBM,EAAS,IAAM,KAAK,UAAU,EAAGD,CAAI,OAG5D,KAAK,gBAAkB,IAAM,KAAK,UAAU,GAE5C,CAACE,EAAU,KAAK,QAAQ,MAAM,GAAK,CAAC,KAAK,QAAQ,SACjD,KAAK,MAAM,EAEXA,EAAU,KAAK,QAAQ,IAAI,IAC3B,KAAK,MAAQ,KAAK,QAAQ,MAE1BA,EAAU,KAAK,QAAQ,eAAe,GAAKC,EAAS,KAAK,QAAQ,eAAe,IAChF,KAAK,iBAAmB,KAAK,QAAQ,gBAE7C,CACA,eAAgB,CACZ,IAAMC,EAAa,KAAK,iBAAmB,KAAK,SAAS,UACnDC,EAAe,KAAK,kBAAoB,KAAK,SAAS,WAC5D,OAAQ,KAAK,QAAU,YAAcD,GAAgB,KAAK,QAAU,cAAgBC,CACxF,CACA,WAAY,CACR,GAAI,CAAC,KAAK,cAAc,EACpB,OAEJ,IAAMC,EAAW,KAAK,eAChBC,EAAY,KAAK,oBAAsBD,EAAW,EAAI,KAAK,QAAU,WAAaE,EAAgB,KAAOA,EAAgB,MAAQ,KAAK,QAAU,WAAaA,EAAgB,GAAKA,EAAgB,KACxM,KAAK,MAAMC,EAAa,OAAQ,CAAE,UAAAF,EAAW,SAAAD,CAAS,CAAC,EACnD,KAAK,qBAAuB,KAAK,kBAAoBA,EAAW,KAAK,iBACrE,KAAK,MAAMG,EAAa,SAAU,EAAI,EAEjC,KAAK,qBAAuB,KAAK,mBAAqB,KAAK,iBAAmB,EAAIH,EAAW,KAAK,iBAAmBA,IAAa,IACvI,KAAK,MAAMG,EAAa,SAAU,EAAK,EAE3C,IAAMC,EAAc,KAAK,MAAMJ,EAAW,KAAK,gBAAgB,EACzDK,EAAY,KAAK,MAAM,KAAK,WAAaL,CAAQ,EACnD,KAAK,qBAAuB,KAAK,kBAAoBI,GAAe,EACpE,KAAK,MAAMD,EAAa,aAAa,EAEhC,KAAK,qBAAwB,KAAK,WAAa,KAAK,kBAAqBE,GAAa,KAAK,kBAChG,KAAK,MAAMF,EAAa,WAAW,EAEvC,KAAK,oBAAsBH,GAAY,EACvC,KAAK,eAAiB,KAAK,SAAS,WAAa,EACjD,KAAK,gBAAkB,KAAK,SAAS,YAAc,CACvD,CACA,IAAI,gBAAiB,CACjB,OAAO,KAAK,QAAU,WAAa,KAAK,SAAS,UAAY,KAAK,SAAS,UAC/E,CACA,IAAI,YAAa,CACb,OAAO,KAAK,eAAiB,KAAK,gBACtC,CACA,IAAI,iBAAkB,CAClB,OAAO,KAAK,iBAAmB,CACnC,CACA,IAAI,eAAgB,CAChB,OAAO,KAAK,iBAAmB,KAAK,SAAS,WACjD,CACA,IAAI,cAAe,CACf,OAAI,KAAK,QAAU,WACR,KAAK,SAAS,aAAe,KAAK,SAAS,aAE/C,KAAK,SAAS,YAAc,KAAK,SAAS,WACrD,CACA,IAAI,YAAa,CACb,OAAQ,KAAK,QAAU,WAAa,KAAK,SAAS,aAAe,KAAK,SAAS,aAAe,KAAK,WACvG,CACA,IAAI,aAAc,CACd,OAAO,KAAK,QAAU,WAAa,KAAK,SAAS,aAAe,KAAK,SAAS,WAClF,CACA,kBAAkBA,EAAU,CACpB,KAAK,QAAU,WACf,KAAK,SAAS,UAAYA,EAG1B,KAAK,SAAS,WAAaA,CAEnC,CACJ,EChGO,SAASM,GAAeC,EAAiCC,EAA6C,CAC3G,IAAMC,EAAkBC,GAAoBH,EAAQC,CAAa,EAC3DG,EAAc,uBAAuBJ,EAAO,KAGlD,OAAAE,EAAgB,iBAAiB,YAAaG,GAAO,CACnD,IAAMC,EAAeC,EAAaF,CAAG,EAIrC,GAD6BC,EAAa,KAAKE,GAAMA,EAAG,WAAa,GAAKA,EAAG,aAAaC,EAAwB,WAAW,gBAAgB,CAAC,EAE5I,OAG8BH,EAAa,KAAKE,GAAMA,EAAG,KAAOJ,GAAcI,EAAG,KAAOR,EAAO,EAAE,GAEjGK,EAAI,eAAe,CAEvB,CAAC,EAEGL,EAAO,KACTE,EAAgB,GAAKE,GAEnBJ,EAAO,cACTU,EAASV,EAAO,aAAcE,CAAe,EAGxCA,CACT,CAEO,SAASC,GAAoBH,EAAiCC,EAA6C,CA/ClH,IAAAU,EAgDE,IAAMC,EAAe,SAAS,cAAc,aAAa,EAmBzD,OAlBAA,EAAa,cAAgBX,EAC7BW,EAAa,UAAYZ,EAAO,gBAAkB,eAClDY,EAAa,YAAc,GAC3BA,EAAa,OAAS,CAAC,CAACZ,EAAO,aAE3BW,EAAAX,EAAO,0BAAP,MAAAW,EAAgC,SAClCC,EAAa,mBAAqBZ,EAAO,yBAGvCA,EAAO,wBACTY,EAAa,aAAaC,EAAgB,WAAW,yBAA0B,EAAE,EAG/Eb,EAAO,cACTY,EAAa,OAASZ,EAAO,aAIvBA,EAAO,KAAM,CACnB,WACEY,EAAa,qBACb,MACF,WACEA,EAAa,qBACb,MACF,QACEA,EAAa,wBACjB,CACA,OAAOA,CACT,CAEO,SAASE,GAAWd,EAAiD,CAC1E,IAAMe,EAAc,SAAS,cAAcC,EAAe,WAAW,EAKrE,OAJAD,EAAY,GAAK,sBAAsBf,EAAO,KAC9Ce,EAAY,eAAiB,GAGrBf,EAAO,KAAM,CACnB,WACEe,EAAY,aAAa,OAAQ,MAAM,EACvCA,EAAY,aAAa,mBAAoB,UAAU,EACvD,MACF,QACEA,EAAY,aAAa,OAAQ,SAAS,CAC9C,CAEA,OAAOA,CACT,CAMO,SAASE,EAAgBjB,EAAiCe,EAA6BG,EAAiEC,EAAa,EAAGC,EAAiB,GAAY,CAE1M,IAAMC,EAASC,GAAkBJ,GAAWlB,EAAO,OAAO,EACpDuB,EAAcC,EAAoBH,CAAM,EAExCI,EAAe,EAAAzB,EAAO,YACxB0B,EAAc1B,EAAO,aAAe,EACpC2B,GAAgBR,EAGpB,QAAWS,KAASP,EAAQ,CAC1B,IAAIQ,EAA6Cd,EAGjD,GAAIa,EAAM,SAAW,OAAOA,EAAM,SAAY,WAAY,CACxD,IAAME,EAAgBF,EAAM,QAAQA,CAAK,EACzC,GAAIE,EAAe,CACjB,IAAMC,EAAe,SAAS,cAAc,KAAK,EACjDA,EAAa,UAAU,IAAItB,EAAwB,QAAQ,aAAa,EACxEoB,EAAeE,EAEX,OAAOD,GAAkB,SAC3BC,EAAa,UAAYD,EAChBA,aAAyB,aAClCC,EAAa,YAAYD,CAAa,EAGxCf,EAAY,YAAYgB,CAAY,WAE7BH,EAAM,KAAM,CAErB,IAAMG,EAAe,SAAS,cAAc,KAAK,EACjDA,EAAa,UAAU,IAAItB,EAAwB,QAAQ,aAAa,EAExE,IAAMuB,EAAoB,SAAS,cAAc,KAAK,EACtDA,EAAkB,YAAcJ,EAAM,KACtCI,EAAkB,UAAU,IAAI,4BAA4B,EAC5DA,EAAkB,MAAM,WAAa,oBACrCA,EAAkB,MAAM,SAAW,UACnCA,EAAkB,MAAM,WAAa,OACrCA,EAAkB,MAAM,cAAgB,YACxCA,EAAkB,MAAM,WAAa,MACrCA,EAAkB,MAAM,OAAS,UAEjCH,EAAeE,EACfA,EAAa,YAAYC,CAAiB,EAC1CjB,EAAY,YAAYgB,CAAY,EAItC,QAAWE,KAAUL,EAAM,QAAS,CAElC,GAAIK,EAAO,QAAS,CAClB,IAAMC,EAAiBC,GAAc,EACrCpB,EAAY,YAAYmB,CAAc,EACtC,SAIF,GAAIT,GAAgB,EAAEC,EAAc,EAClC,MAIF,IAAMU,EAAapC,EAAO,eAAiBA,EAAO,eAAe,KAAKqC,GAAKC,EAAYD,EAAGJ,EAAO,KAAK,CAAC,EAAI,GAG3G,GAAI,CAACb,GAAkBgB,EACrB,SAGF,IAAIG,EAAkB,SAAS,cAAc,iBAAiB,EAkB9D,GAjBAA,EAAgB,MAAQN,EAAO,MAC/BM,EAAgB,GAAK,wBAAwBvC,EAAO,MAAM2B,OAEtD3B,EAAO,iBACTuC,EAAgB,KAAO,IAIrBN,EAAO,cAAgB,OAAOA,EAAO,aAAgB,UAAY,MAAM,QAAQA,EAAO,WAAW,GAAKA,EAAO,YAAY,SAC3HvB,EAASuB,EAAO,YAAaM,CAAe,EAG1CvC,EAAO,QACTuC,EAAgB,MAAQ,IAItBvC,EAAO,eAAiB,OAAOA,EAAO,eAAkB,WAAY,CACtE,IAAMwC,EAAUxC,EAAO,cAAciC,EAAQM,CAAe,EACxDC,IACE,OAAOA,GAAY,SACrBD,EAAgB,UAAYC,EAE5BD,EAAgB,YAAYC,CAAO,WAInC,OAAOxC,EAAO,WAAc,WAC9BuC,EAAgB,YAAcN,EAAO,OAAS,OACzC,CACL,IAAMQ,EAASzC,EAAO,UAAUiC,EAAO,KAAK,EACxC,OAAOQ,GAAW,SACpBF,EAAgB,YAAcE,EACrB,OAAOA,GAAW,UAAaA,EAAuB,WAAa,QAC5EF,EAAgB,YAAYE,CAAM,EAMxC,GAAIR,EAAO,eAAgB,CACzB,IAAMS,EAAwB,SAAS,cAAc,MAAM,EAC3DA,EAAsB,KAAO,WAC7BA,EAAsB,YAAcT,EAAO,eAC3CM,EAAgB,QAAU,GAC1BA,EAAgB,YAAYG,CAAqB,EAInD,GAAI1C,EAAO,SAAU,CACnB,IAAM2C,EAAkBC,EAAsBR,CAAU,EACxDG,EAAgB,YAAYI,CAAe,EAC3CJ,EAAgB,aAAa,gBAAiB,GAAGH,GAAY,EAC7DG,EAAgB,aAAa,eAAgB,GAAGH,GAAY,EAU9D,GAPIH,EAAO,mBACTA,EAAO,kBAAkB,QAAQ,CAACY,EAAeC,IAAgB,CAC/DP,EAAgB,aAAaO,EAAKD,CAAK,CACzC,CAAC,EAICZ,EAAO,eAAgB,CACzB,IAAMO,EAAUP,EAAO,eAAe,EAClCc,EAASP,CAAO,IAClBA,EAAQ,KAAO,UACfD,EAAgB,YAAYC,CAAO,WAE5BP,EAAO,YAAa,CAC7B,IAAMe,EAAqBC,GAAkBhB,EAAO,gBAAiBA,EAAO,YAAaA,EAAO,kBAAoBjC,EAAO,UAAWiC,EAAO,yBAAyB,EACtKe,EAAmB,KAAO,UAC1BT,EAAgB,YAAYS,CAAkB,EAIhD,GAAIf,EAAO,gBAAiB,CAC1B,IAAMO,EAAUP,EAAO,gBAAgB,EACnCc,EAASP,CAAO,IAClBA,EAAQ,KAAO,WACfD,EAAgB,YAAYC,CAAO,WAE5BP,EAAO,aAAc,CAC9B,IAAMiB,EAAsBD,GAAkBhB,EAAO,iBAAkBA,EAAO,aAAcA,EAAO,mBAAqBjC,EAAO,UAAWiC,EAAO,0BAA0B,EAC3KiB,EAAoB,KAAO,WAC3BX,EAAgB,YAAYW,CAAmB,EAkBjD,GAdIjB,EAAO,UACTM,EAAgB,SAAWN,EAAO,SAClCM,EAAgB,aAAa,gBAAiB,MAAM,GAEpDA,EAAgB,aAAa,gBAAiB,OAAO,EAInDH,IACFG,EAAgB,SAAW,IAE7BA,EAAgB,aAAa,gBAAiBH,EAAa,OAAS,OAAO,EAGvE,CAACH,EAAO,UAAY,OAAOjC,EAAO,yBAA4B,YAAc,MAAM,QAAQiC,EAAO,OAAO,GAAKA,EAAO,QAAQ,OAAQ,CAEtI,IAAMkB,EAAoB,SAAS,cAAc,YAAY,EAC7DA,EAAkB,KAAO,cACzBA,EAAkB,KAAO,WACzBZ,EAAgB,YAAYY,CAAiB,EAK7C,IAAMC,GAA4D,CAChE,MAJwB7B,EAAY,OAAO8B,IAAK,CAACA,GAAE,OAAO,EAIjC,QAAQpB,CAAM,EACvC,QAASA,EAAO,QAChB,YAAaA,EAAO,KACtB,EACMqB,EAAmBtD,EAAO,wBAAwB,KAAK,KAAMoD,EAAa,EAChFE,EAAiB,YAAYf,CAAe,EAC5CA,EAAkBe,EAGpBzB,EAAa,YAAYU,CAAe,GAG9C,CAEO,SAASK,EAAsBW,EAAgC,CACpE,IAAMZ,EAAkB,SAAS,cAAc,YAAY,EAC3D,OAAAA,EAAgB,aAAalC,EAAwB,WAAW,iBAAkB,EAAE,EACpFkC,EAAgB,KAAOY,EAAWC,EAAgB,KAAOC,EAA4B,KACrFd,EAAgB,KAAO,UACvBA,EAAgB,MAAM,YAAc,OACpCA,EAAgB,MAAM,cAAgB,SAC/BA,CACT,CAEA,SAASR,IAA6B,CACpC,IAAMuB,EAAU,SAAS,cAAc,eAAe,EACtD,OAAAA,EAAQ,aAAa,cAAe,MAAM,EACnCA,CACT,CAEA,SAAST,GAAkBU,EAA6B,OAAQC,EAAkBC,EAAoBC,EAAuD,CAC3J,GAAIH,IAAS,YAAa,CACxB,IAAMI,EAAO,SAAS,cAAc,YAAY,EAChD,OAAIF,GACFE,EAAK,UAAU,IAAIF,CAAS,EAE9BE,EAAK,aAAa,cAAe,MAAM,EACvCA,EAAK,KAAOH,EACRE,GACF,OAAO,OAAOC,EAAMD,CAAc,EAE7BC,EAGT,IAAMC,EAAc,SAAS,cAAc,GAAG,EAC9C,OAAAA,EAAY,UAAU,IAAIH,GAAaI,CAAe,EACtDD,EAAY,aAAa,cAAe,MAAM,EAC9CA,EAAY,YAAcJ,EACnBI,CACT,CAEO,SAASE,GAAmBC,EAAkD,CACnF,OAAQA,EAAY,CAClB,eACE,OAAOC,GAAsB,EAC/B,QACE,OAAOC,GAAqB,CAChC,CACF,CAEA,SAASA,IAAoC,CAC3C,IAAMC,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,MAAM,QAAU,OACpBA,EAAI,MAAM,eAAiB,SAC3BA,EAAI,MAAM,WAAa,SACvBA,EAAI,MAAM,QAAU,MACpBA,EAAI,MAAM,UAAY,aAEtB,IAAMC,EAAU,SAAS,cAAc,yBAAyB,EAChE,OAAAA,EAAQ,MAAM,YAAY,iCAAkC,MAAM,EAClED,EAAI,YAAYC,CAAO,EAEhBD,CACT,CAEA,SAASF,IAAqC,CAC5C,IAAMI,EAAO,SAAS,cAAc,YAAY,EAC1CF,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,MAAM,SAAW,QACrB,QAASG,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAMC,EAAmB,SAAS,cAAcC,EAAmB,WAAW,EAC9ED,EAAiB,aAAa,YAAa,EAAE,EAC7CJ,EAAI,YAAYI,CAAgB,EAElC,OAAAF,EAAK,YAAYF,CAAG,EACbE,CACT,CAEO,SAASI,IAA8C,CAC5D,IAAMC,EAAiB,SAAS,cAAcC,EAA0B,WAAW,EACnF,OAAAD,EAAe,YAAc,GAC7BA,EAAe,MAAM,SAAW,WAChCA,EAAe,MAAM,IAAM,IAC3BA,EAAe,MAAM,KAAO,IAC5BA,EAAe,MAAM,MAAQ,IAC7BA,EAAe,MAAM,MAAQ,OACtBA,CACT,CAEA,SAASvD,GAAkBJ,EAA4F,CACrH,OAAO6D,GAAyB7D,EAAS,CAA4B,EAAKA,EAAyC,CAAC,CAAE,KAAM,GAAI,QAAAA,CAAQ,CAAC,CAC3I,CAOO,SAAS6D,GAAyB7D,EAAgEyC,EAA8D,CACrK,IAAMqB,EAAiB9D,EAAQ,KAAMmC,GAAsD4B,EAAU5B,CAAC,GAAKN,EAASM,CAAC,GAAKA,EAAE,eAAe,SAAS,IAAMA,EAAE,eAAe,MAAM,GAAKA,EAAE,eAAe,SAAS,EAAE,EAC5M6B,EAAgBhE,EAAQ,KAAMmC,GAAsD4B,EAAU5B,CAAC,GAAKN,EAASM,CAAC,GAAKA,EAAE,eAAe,OAAO,GAAKA,EAAE,eAAe,OAAO,CAAC,EAC/K,OAAQ2B,GAAkBrB,IAAS,GAAkCuB,GAAiBvB,IAAS,CACjG,CAEO,SAASnC,EAAoBN,EAAuF,CACzH,OAAI6D,GAAyB7D,EAAS,CAA4B,EACjDA,EACD,OAAO,CAACiE,EAAUvD,IAAUuD,EAAS,OAAOvD,EAAM,OAAO,EAAG,CAAC,CAA0B,EAEhG,CAAC,GAAGV,CAAgC,CAC7C,CC/XO,IAAMkE,EAAN,KAAgE,CAOrE,YAAoBC,EAAgCC,EAA6B,CAA7D,cAAAD,EALpB,KAAQ,MAAQ,GAMd,KAAK,QAAU,OAAO,OAAOE,EAAA,GAAKC,GAAgCD,EAAA,GAAKD,EAAQ,EAC/E,KAAK,gBAAkB,CAACG,EAAOC,IAAO,KAAK,UAAUD,EAAOC,CAAE,EAC9D,KAAK,eAAiB,IAAM,CACtB,OAAO,KAAK,QAAQ,eAAkB,YACxC,KAAK,QAAQ,cAAc,CAE/B,EACA,KAAK,mBAAqB,IAAM,CAC1B,KAAK,QAAQ,eAAiB,OAAO,KAAK,QAAQ,mBAAsB,YAC1E,KAAK,QAAQ,kBAAkB,CAEnC,CACF,CAEO,SAAgB,CACjB,KAAK,OACP,KAAK,MAAM,CAEf,CAEO,MAAa,CACb,KAAK,QACR,KAAK,MAAQ,GACb,KAAK,SAAS,KAAK,KAAK,QAAS,KAAK,gBAAiB,KAAK,cAAc,EAC1E,OAAO,sBAAsB,IAAM,CAC7B,KAAK,OACP,KAAK,sBAAsB,CAE/B,CAAC,EAEG,KAAK,QAAQ,eAAiB,KAAK,QAAQ,mBAC7C,KAAK,SAAS,wBAAwB,KAAK,mBAAoB,KAAK,QAAQ,wBAA0B,CAAC,EAG7G,CAEO,OAAc,CACf,KAAK,QACP,KAAK,MAAQ,GACb,KAAK,SAAS,MAAM,EAChB,KAAK,QAAQ,eAAiB,KAAK,QAAQ,mBAC7C,KAAK,SAAS,2BAA2B,KAAK,kBAAkB,EAGtE,CAEQ,UAAUD,EAAYC,EAAkB,CAS9C,GARI,OAAO,KAAK,QAAQ,sBAAyB,YAC/C,KAAK,QAAQ,qBAAqBA,CAAE,EAGlC,OAAO,KAAK,QAAQ,gBAAmB,YACzC,KAAK,QAAQ,eAAeD,CAAK,EAG/B,KAAK,MAAO,CACd,IAAME,EAAO,KAAK,QAAQ,YAAc,OAExC,KAAK,SAAS,UAAUA,CAAI,EAEhC,CAEO,sBAA+B,CACpC,OAAO,KAAK,SAAS,qBAAqB,CAC5C,CAEO,iBAAmD,CACxD,IAAMC,EAAQ,KAAK,qBAAqB,EACxC,OAAOA,GAAS,EAAI,KAAK,mBAAmBA,CAAK,EAAI,MACvD,CAEO,qBAAqBA,EAAeC,EAA2B,CACpE,OAAO,KAAK,SAAS,qBAAqBD,EAAOC,CAAU,CAC7D,CAEO,wBAA+B,CACpC,KAAK,SAAS,uBAAuB,KAAK,OAAO,CACnD,CAEO,qBAA8B,CACnC,IAAMD,EAAQ,KAAK,mBAAmB,UAAUE,GAAK,CAACA,EAAE,QAAQ,EAChE,OAAIF,IAAU,IACZ,KAAK,eAAeA,CAAK,EAEpBA,CACT,CAEO,oBAA6B,CAClC,IAAMG,EAAU,KAAK,mBACfH,EAASG,EAAQ,OAAS,EAAKA,EAAQ,UAAU,GAAK,CAAC,EAAE,QAAQ,EACvE,OAAIH,IAAU,IACZ,KAAK,eAAeA,CAAK,EAEpBA,CACT,CAEO,eAAeA,EAAeI,EAAyB,CAC5D,OAAO,KAAK,SAAS,eAAeJ,EAAO,KAAK,QAAQ,qBAAsBI,CAAO,CACvF,CAEO,uBAA8B,CAC/B,OAAO,KAAK,QAAQ,kBAAqB,UAAY,KAAK,mBAAmB,KAAK,QAAQ,gBAAgB,GAC5G,KAAK,eAAe,KAAK,QAAQ,iBAAkB,EAAK,EACxD,KAAK,SAAS,6BAA6B,EAAK,GACvC,KAAK,QAAQ,gBAAkB,KAAK,QAAQ,eAAe,OACpE,KAAK,SAAS,6BAA6B,EAAK,EACvC,OAAO,KAAK,QAAQ,mBAAsB,UAAY,KAAK,mBAAmB,KAAK,QAAQ,iBAAiB,GACrH,KAAK,SAAS,qBAAqB,KAAK,QAAQ,iBAAiB,CAErE,CAEO,kBAAkBC,EAAqB,CACvC,MAAM,QAAQA,CAAM,IACvBA,EAAS,CAACA,CAAM,GAEd,CAAC,KAAK,QAAQ,UAAYA,EAAO,OAAS,IAC5CA,EAAS,CAACA,EAAO,CAAC,CAAC,GAErB,KAAK,QAAQ,eAAiBA,EAC9B,KAAK,SAAS,kBAAkBA,EAAQ,KAAK,QAAQ,QAAQ,CAC/D,CAEO,mBAA0B,CAC/B,KAAK,SAAS,kBAAkB,CAClC,CAEO,WAAWF,EAAsE,CACtF,KAAK,QAAQ,QAAUA,EAClB,KAAK,QAGV,KAAK,SAAS,WAAW,KAAK,OAAO,EACrC,KAAK,sBAAsB,EAC7B,CAEO,cAAcA,EAAsE,CACzF,KAAK,QAAQ,QAAU,CAAC,GAAG,KAAK,QAAQ,QAAS,GAAGA,CAAO,EACtD,KAAK,OAGV,KAAK,SAAS,cAAcA,EAAS,KAAK,OAAO,CACnD,CAEA,IAAW,iBAA2C,CACpD,OAAO,KAAK,SAAS,eACvB,CAEO,6BAA6BC,EAAU,GAAY,CACxD,KAAK,SAAS,6BAA6BA,CAAO,CACpD,CAEO,wBAAwBE,EAAsBC,EAA0B,CAC7E,KAAK,QAAQ,kBAAoBD,EACjC,KAAK,QAAQ,cAAgB,GAC7B,KAAK,QAAQ,uBAAyBC,EACtC,KAAK,SAAS,wBAAwB,KAAK,mBAAoB,KAAK,QAAQ,wBAA0B,CAAC,CACzG,CAEO,4BAAmC,CACxC,KAAK,QAAQ,kBAAoB,OACjC,KAAK,SAAS,2BAA2B,KAAK,kBAAkB,CAClE,CAEO,kBAAkBC,EAA0B,CAC5C,KAAK,QAAQ,WAGlB,KAAK,SAAS,kBAAkBA,CAAS,CAC3C,CAEO,UAAUC,EAAmB,CAClC,OAAQA,EAAK,CACX,IAAK,QACL,IAAK,cACH,IAAMC,EAAoB,KAAK,qBAAqB,EAC9CC,EAAe,KAAK,mBAAmBD,CAAiB,EAC9D,GAAI,KAAK,iBAAiBC,CAAY,EAAG,CACvC,IAAMb,EAAK,KAAK,SAAS,yBAAyBY,CAAiB,EAC/DZ,GACF,KAAK,UAAUa,EAAa,MAAOb,CAAE,EAGzC,MACF,IAAK,KACL,IAAK,UACL,IAAK,OACL,IAAK,YACH,IAAMK,EAAU,KAAK,mBACrB,GAAIA,EAAQ,QAAUA,EAAQ,MAAMD,GAAK,CAAC,KAAK,iBAAiBA,CAAC,CAAC,EAChE,OAEF,IAAMF,EAAQ,KAAK,0BAA0BS,CAAG,EAChD,KAAK,eAAeT,CAAK,EACzB,MACF,IAAK,OACH,KAAK,oBAAoB,EACzB,MACF,IAAK,MACH,KAAK,mBAAmB,EACxB,KACJ,CACF,CAEQ,iBAAiBY,EAAsC,CAC7D,OAAOA,GAAU,CAACA,EAAO,UAAY,CAACA,EAAO,OAC/C,CAEQ,0BAA0BH,EAAqB,CACrD,IAAIT,EAAQ,KAAK,SAAS,qBAAqB,EAI/C,OAHIA,IAAU,KACZA,EAAQ,KAAK,SAAS,uBAAuB,GAE3CS,IAAQ,WAAaA,IAAQ,KACxB,KAAK,qCAAqCT,EAAO,KAAK,kBAAkB,EAE1E,KAAK,iCAAiCA,EAAO,KAAK,kBAAkB,CAC7E,CAEQ,qCAAqCa,EAAoBV,EAAwC,CACvG,IAAMH,EAAQa,GAAc,EAAIV,EAAQ,OAAS,EAAIU,EAAa,EAClE,OAAIV,EAAQH,CAAK,EAAE,SACV,KAAK,qCAAqCA,EAAOG,CAAO,EAE1DH,CACT,CAEQ,iCAAiCa,EAAoBV,EAAwC,CACnG,IAAMH,EAAQa,IAAeV,EAAQ,OAAS,EAAI,EAAIU,EAAa,EACnE,OAAIV,EAAQH,CAAK,EAAE,SACV,KAAK,iCAAiCA,EAAOG,CAAO,EAEtDH,CACT,CAEA,IAAY,cAAsC,CAChD,OAAOc,EAAoB,KAAK,QAAQ,OAAO,CACjD,CAEA,IAAY,oBAA4C,CACtD,OAAO,KAAK,aAAa,OAAOZ,GAAK,CAACA,EAAE,OAAO,CACjD,CACF,EClPO,IAAMa,EAAN,KAA0D,CAU/D,YAAoBC,EAA6B,CAA7B,oBAAAA,CAA8B,CAElD,IAAW,iBAA2C,CACpD,OAAO,KAAK,gBACd,CAEO,KAAKC,EAAiCC,EAAkDC,EAA2B,CAExH,KAAK,iBAAmBC,GAAeH,EAAQ,KAAK,cAAc,EAClE,KAAK,UAAU,CAAC,CAACA,EAAO,UAAWA,EAAO,mBAAmB,EAGzDA,EAAO,YACT,KAAK,aAAeI,GAAkB,EACtC,KAAK,aAAa,MAAM,QAAU,OAClC,KAAK,iBAAiB,YAAY,KAAK,YAAY,GAIjDJ,EAAO,gBACT,KAAK,eAAiBA,EAAO,cAAc,EACvC,KAAK,gBACP,KAAK,eAAe,aAAaK,EAAwB,WAAW,iBAAkB,EAAE,GAKxFL,EAAO,gBACT,KAAK,eAAiBA,EAAO,cAAc,EACvC,KAAK,gBACP,KAAK,eAAe,aAAaK,EAAwB,WAAW,iBAAkB,EAAE,GAK5F,KAAK,aAAeC,GAAWN,CAAM,EAGrC,KAAK,aAAa,iBAAiB,yBAA0BO,GAAO,CAClEA,EAAI,OAAO,SAAS,aAAa,gBAAiB,MAAM,EACxDN,EAAeM,EAAI,OAAO,MAAOA,EAAI,OAAO,SAAS,EAAE,CACzD,CAAC,EAGGP,EAAO,QAAQ,QAEjBQ,EAAgBR,EAAQ,KAAK,YAAY,EACzC,KAAK,iBAAiB,YAAY,KAAK,YAAY,EAG/C,KAAK,gBACP,KAAK,iBAAiB,sBAAsB,aAAc,KAAK,cAAc,EAI3E,KAAK,gBACP,KAAK,iBAAiB,YAAY,KAAK,cAAc,GAE9CA,EAAO,YAChB,KAAK,cAAgBS,GAAmBT,EAAO,UAAU,EACzD,KAAK,iBAAiB,YAAY,KAAK,aAAa,GAItD,KAAK,kBAAoBU,EAA4B,EACrD,KAAK,kBAAkB,GAAK,GAAGV,EAAO,sBACtC,KAAK,iBAAiB,YAAY,KAAK,iBAAiB,EAGxD,KAAK,iBAAiB,KAAO,EAC/B,CAEO,OAAc,CACd,KAAK,mBAGV,KAAK,iBAAiB,KAAO,GAC7B,KAAK,iBAAmB,OACxB,KAAK,aAAe,OACpB,KAAK,kBAAoB,OAC3B,CAEO,wBAAwBW,EAAsBC,EAA+B,CAClF,GAAI,KAAK,kBACH,CAAC,KAAK,gBAAiB,CACzB,IAAMC,EAAeC,EAAiB,KAAK,iBAAkBC,EAAgB,UAAU,SAAS,EAC1FC,EAA6C,CAAE,gBAAAJ,CAAgB,EACrE,KAAK,gBAAkB,IAAIK,EAAmBJ,EAAcG,CAAY,EACxE,KAAK,gBAAgB,YAAYE,EAAa,YAAaP,CAAQ,EAGzE,CAEO,2BAA2BA,EAA4B,CACxD,KAAK,iBACP,KAAK,gBAAgB,eAAeO,EAAa,YAAaP,CAAQ,CAE1E,CAEO,sBAA+B,CACpC,GAAI,CAAC,KAAK,iBACR,MAAO,GAET,IAAMQ,EAAY,KAAK,qBAAqB,EACtCC,EAAiB,CAAC,GAAGD,CAAS,EAAE,QAAQ,EAAE,KAAKE,GAAMA,EAAG,MAAM,EACpE,OAAOD,EAAiBD,EAAU,QAAQC,CAAc,EAAI,EAC9D,CAEO,wBAAiC,CAEtC,OADkB,KAAK,qBAAqB,EAC3B,UAAUC,GAAMA,EAAG,QAAQ,CAC9C,CAEO,yBAAyBC,EAA8B,CAC5D,GAAI,CAAC,KAAK,iBACR,OAAO,KAGT,IAAMC,EADY,KAAK,qBAAqB,EACrBD,CAAK,EAC5B,OAAOC,EAAOA,EAAK,GAAK,IAC1B,CAEO,qBAAqBD,EAAeE,EAA2B,CACpE,GAAI,CAAC,KAAK,iBACR,OAGF,IAAML,EAAY,KAAK,qBAAqB,EACxCA,EAAU,QAAUA,EAAUG,CAAK,GACrC,KAAK,sBAAsBH,EAAUG,CAAK,EAAGE,CAAU,CAE3D,CAEO,qBAAqBF,EAAeG,EAAU,GAAY,CAC/D,IAAMC,EAAW,KAAK,qBAAqB,EAAEJ,CAAK,EAC9CI,GACF,KAAK,wBAAwBA,EAAUD,EAAU,SAAW,OAAQ,QAAQ,CAEhF,CAEO,6BAA6BA,EAAU,GAAY,CACxD,IAAMC,EAAW,KAAK,qBAAqB,EAC3C,KAAK,wBAAwBA,EAAUD,EAAU,SAAW,OAAQ,QAAQ,CAC9E,CAEO,uBAAuBzB,EAAuC,CACnE,IAAMmB,EAAY,KAAK,qBAAqB,EACxCA,EAAU,QACYA,EAAU,OAAOE,GAAMA,EAAG,MAAM,EACxC,QAAQA,GAAMA,EAAG,OAAS,EAAK,EAGjD,IAAMK,EAAW,KAAK,qBAAqB,EACvCA,GACF,KAAK,oBAAoBA,EAAU1B,EAAO,oBAAoB,CAElE,CAEO,eAAesB,EAAeK,EAA0DF,EAAU,GAAY,CACnH,GAAI,CAAC,KAAK,iBACR,OAEF,IAAMN,EAAY,KAAK,qBAAqB,EACxCA,EAAU,SACYA,EAAU,OAAOE,GAAMA,EAAG,MAAM,EACxC,QAAQA,GAAMA,EAAG,OAAS,EAAK,EAC/C,KAAK,oBAAoBF,EAAUG,CAAK,EAAGK,CAAoB,EAC/D,KAAK,wBAAwBR,EAAUG,CAAK,EAAGG,EAAU,SAAW,MAAM,EAE9E,CAEO,kBAAkBG,EAAeC,EAAW,GAAa,CAC9D,GAAI,CAAC,KAAK,iBACR,OAEF,IAAMV,EAAY,KAAK,qBAAqB,EAC5C,QAAWO,KAAYP,EAAW,CAChC,IAAMK,EAAaI,EAAO,KAAKE,GAAKC,EAAYD,EAAGJ,EAAS,KAAK,CAAC,EAGlE,GAFAA,EAAS,SAAWF,EAEhBK,EAAU,CACZ,IAAMG,EAAkBN,EAAS,cAAc,IAAIrB,EAAwB,WAAW,mBAAmB,EACzG,GAAI2B,EAAiB,CACnB,IAAMC,EAAqBC,EAAsBV,CAAU,EAC3DW,EAAeF,EAAoBD,CAAe,IAI1D,CAEO,mBAA0B,CACb,KAAK,qBAAqB,EAClC,QAAQX,GAAMA,EAAG,OAAS,EAAK,CAC3C,CAEO,UAAUe,EAAeC,EAA0C,CACpE,KAAK,mBACP,KAAK,iBAAiB,MAAMD,EAAO,QAAU,UAAU,EAAI,GAAG,KAAK,uBAAuBC,CAAmB,MAEjH,CAEO,WAAWrC,EAAuC,CACnD,CAAC,KAAK,kBAAoB,CAAC,KAAK,eAGhC,KAAK,eAAiB,KAAK,cAAc,aAC3CsC,EAAc,KAAK,aAAa,EAE9B,KAAK,eACP,KAAK,aAAa,MAAM,QAAU,QAE/B,KAAK,aAAa,aACrB,KAAK,iBAAiB,YAAY,KAAK,YAAY,EAGrDC,EAAkB,KAAK,YAAY,EACnC/B,EAAgBR,EAAQ,KAAK,YAAY,EAErC,KAAK,gBAAkB,CAAC,KAAK,eAAe,aAC9C,KAAK,iBAAiB,sBAAsB,aAAc,KAAK,cAAc,EAE3E,KAAK,gBAAkB,CAAC,KAAK,eAAe,aAC9C,KAAK,iBAAiB,sBAAsB,YAAa,KAAK,cAAc,EAE1E,aAAc,KAAK,kBAAoB,OAAO,KAAK,iBAAiB,UAAa,YACnF,KAAK,iBAAiB,SAAS,EAEnC,CAEO,cAAcwC,EAAgExC,EAAuC,CACtH,CAAC,KAAK,kBAAoB,CAAC,KAAK,cAGpCQ,EAAgBR,EAAQ,KAAK,aAAcwC,EAAS,KAAK,aAAa,kBAAmB,EAAK,CAChG,CAEO,kBAAkBC,EAA0B,CAC5C,KAAK,mBAGNA,EACF,KAAK,aAAa,MAAM,eAAe,SAAS,EAEhD,KAAK,aAAa,MAAM,QAAU,OAEtC,CAEO,gBAAyB,CAC9B,OAAO,OAAO,UAChB,CAEQ,sBAA6C,CACnD,OAAO,KAAK,iBAAmB,MAAM,KAAK,KAAK,iBAAiB,iBAAiBC,EAAoB,WAAW,CAAC,EAA4B,CAAC,CAChJ,CAEQ,sBAAsBhB,EAA8BF,EAA2B,CACrF,GAAI,CAAC,KAAK,iBACR,OAIF,IAAML,EAAY,KAAK,qBAAqB,EACxCA,EAAU,QACQA,EAAU,OAAOE,GAAMA,IAAOK,GAAYL,EAAG,MAAM,EAC3D,QAAQsB,GAAMA,EAAG,OAAS,EAAK,EAI7CjB,EAAS,SAAWF,EACpBE,EAAS,aAAa,gBAAiB,GAAGF,GAAY,EACtDE,EAAS,aAAa,eAAgB,GAAGF,GAAY,EAGrD,IAAMQ,EAAkBN,EAAS,cAAc,GAAGkB,EAAe,2BAA2B,EAC5F,GAAIZ,EAAiB,CACnB,IAAMC,EAAqBC,EAAsBV,CAAU,EAC3DW,EAAeF,EAAoBD,CAAe,EAEtD,CAEQ,uBAAuBa,EAA2B,CACxD,OAAIA,GAAMC,EAAWD,CAAE,EACdA,EAAG,EAEL,KAAK,eAAe,sBAAsB,EAAE,KACrD,CAEQ,oBAAoBnB,EAA0CC,EAAmD,CACnHD,GAAY,CAACA,EAAS,WACxBA,EAAS,OAAS,GACdC,GAAwBmB,EAAWnB,CAAoB,GACzDA,EAAqBD,EAAS,EAAE,EAGtC,CAEQ,wBAAwBA,EAAmCqB,EAA8B,OAAQC,EAA8B,UAAiB,CACtJ,GAAItB,GAAY,KAAK,kBAAoB,KAAK,iBAAiB,YAAa,CAC1E,IAAMuB,EAAkBnC,EAAiB,KAAK,iBAAkBC,EAAgB,UAAU,SAAS,EAC/FkC,GACFC,EAAkBD,EAAiBvB,EAAUqB,EAAUC,CAAK,EAGlE,CAEQ,sBAAuD,CAE7D,OADkB,KAAK,qBAAqB,EAC3B,KAAK3B,GAAMA,EAAG,QAAQ,CACzC,CACF,ECjUO,IAAM8B,GAAN,KAA4C,CAGjD,YAAoBC,EAA6BC,EAA6B,CAA1D,oBAAAD,EAClBE,EAAa,OAAO,CAACC,EAAiBC,CAA2B,CAAC,EAClE,KAAK,YAAc,IAAIC,EAAuB,IAAIC,EAAoB,KAAK,cAAc,EAAGL,CAAM,CACpG,CAEO,SAAgB,CACrB,KAAK,YAAY,QAAQ,CAC3B,CAGO,MAAa,CAClB,KAAK,YAAY,KAAK,CACxB,CAGO,OAAc,CACnB,KAAK,YAAY,MAAM,CACzB,CAGO,sBAA+B,CACpC,OAAO,KAAK,YAAY,qBAAqB,CAC/C,CAEO,iBAAmD,CACxD,OAAO,KAAK,YAAY,gBAAgB,CAC1C,CAGO,qBAAqBM,EAAeC,EAA2B,CACpE,OAAO,KAAK,YAAY,qBAAqBD,EAAOC,CAAU,CAChE,CAGO,wBAA+B,CACpC,KAAK,YAAY,uBAAuB,CAC1C,CAGO,qBAA8B,CACnC,OAAO,KAAK,YAAY,oBAAoB,CAC9C,CAGO,eAAeD,EAAqB,CACzC,OAAO,KAAK,YAAY,eAAeA,CAAK,CAC9C,CAGO,uBAA8B,CACnC,OAAO,KAAK,YAAY,sBAAsB,CAChD,CAGO,mBAA0B,CAC/B,KAAK,YAAY,kBAAkB,CACrC,CAGO,kBAAkBE,EAAqB,CAC5C,OAAO,KAAK,YAAY,kBAAkBA,CAAM,CAClD,CAEA,IAAW,iBAA2C,CACpD,OAAO,KAAK,YAAY,eAC1B,CAEO,WAAWC,EAAsE,CACtF,KAAK,YAAY,WAAWA,CAAO,CACrC,CAEO,cAAcA,EAAsE,CACzF,KAAK,YAAY,cAAcA,CAAO,CACxC,CAEO,6BAA6BC,EAAyB,CAC3D,KAAK,YAAY,6BAA6B,CAChD,CAEO,wBAAwBC,EAAsBC,EAA0B,CAC7E,KAAK,YAAY,wBAAwBD,EAAUC,CAAS,CAC9D,CAEO,4BAAmC,CACxC,KAAK,YAAY,2BAA2B,CAC9C,CAEO,kBAAkBC,EAA0B,CACjD,KAAK,YAAY,kBAAkBA,CAAS,CAC9C,CAEO,UAAUC,EAAmB,CAClC,KAAK,YAAY,UAAUA,CAAG,CAChC,CACF,EC/GO,IAAeC,EAAf,KAAmF,CAAnF,cACL,KAAU,cAAmC,CAAC,EAG9C,KAAU,gBAAkB,GAC5B,KAAU,aAAe,EACzB,KAAU,eAAiB,GAC3B,KAAU,wBAA0B,EACpC,KAAU,qBAAuB,GACjC,KAAU,gBAAkB,GAE5B,IAAW,gBAA0B,CACnC,OAAO,KAAK,eACd,CACA,IAAW,eAAeC,EAAgB,CACxC,KAAK,gBAAkBA,CACzB,CAEA,IAAW,cAAkC,CAC3C,OAAO,KAAK,aACd,CACA,IAAW,aAAaA,EAA0B,CAC5C,OAAOA,GAAU,WACnBA,EAAQ,CAACA,CAAK,GAEZ,MAAM,QAAQA,CAAK,IACrB,KAAK,cAAgBA,EAEzB,CAEA,IAAW,eAAyB,CAClC,OAAO,KAAK,cACd,CACA,IAAW,cAAcA,EAAgB,CACvC,KAAK,eAAiBA,CACxB,CAEA,IAAW,wBAAiC,CAC1C,OAAO,KAAK,uBACd,CACA,IAAW,uBAAuBA,EAAe,CAC/C,KAAK,wBAA0BA,CACjC,CAEA,IAAW,aAAsB,CAC/B,OAAO,KAAK,YACd,CACA,IAAW,YAAYA,EAAe,CACpC,KAAK,aAAeA,CACtB,CAEA,IAAW,oBAAgD,CACzD,OAAO,KAAK,mBACd,CACA,IAAW,mBAAmBA,EAAkC,CAC9D,KAAK,oBAAsBA,CAC7B,CAEA,IAAW,oBAAgD,CACzD,OAAO,KAAK,mBACd,CACA,IAAW,mBAAmBA,EAAkC,CAC9D,KAAK,oBAAsBA,CAC7B,CAEA,IAAW,qBAA+B,CACxC,OAAO,KAAK,oBACd,CACA,IAAW,oBAAoBA,EAAgB,CAC7C,KAAK,qBAAuBA,CAC9B,CAEA,IAAW,gBAA0B,CACnC,OAAO,KAAK,eACd,CACA,IAAW,eAAeA,EAAgB,CACxC,KAAK,gBAAkBA,CACzB,CAEU,iBAAwB,CAAC,CACrC,ECvFO,IAAeC,GAAf,cAA+DC,CAA6E,CAuBjJ,YAAoBC,EAA6D,CAC/E,MAAM,EADY,aAAAA,EAtBpB,KAAU,MAAQ,GAClB,KAAU,SAAgB,CAAC,EAC3B,KAAU,WAAa,GACvB,KAAU,eAAiB,GAqBzB,KAAK,0BAA4BC,GAAO,KAAK,oBAAoBA,CAAG,EACpE,KAAK,0BAA4BA,GAAO,KAAK,oBAAoBA,CAAG,EACpE,KAAK,8BAAgC,IAAM,KAAK,wBAAwB,EACxE,KAAK,8BAAgC,IAAM,KAAK,wBAAwB,EACxE,KAAK,2BAA6BA,GAAO,KAAK,aAAe,CAAE,EAAGA,EAAI,MAAO,EAAGA,EAAI,KAAM,CAC5F,CAEQ,yBAAgC,CACtC,KAAK,eAAiB,EACxB,CAEQ,yBAAgC,CACtC,KAAK,eAAiB,GACtB,WAAW,IAAM,CACf,IAAMC,EAAe,SAAS,iBAAiB,KAAK,aAAa,EAAG,KAAK,aAAa,CAAC,EACnF,CAAC,KAAK,gBAAkB,CAAC,KAAK,aAAe,CAACA,GAAgB,CAAC,KAAK,cAAcA,CAAY,KAChG,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EAExB,EAAG,KAAK,QAAQ,YAAY,CAC9B,CAEQ,oBAAoBD,EAAuB,CAC5C,KAAK,SAAS,QAGnB,KAAK,cAAc,CAAE,aAAc,EAAM,CAAC,CAC5C,CAEQ,oBAAoBA,EAAuB,CAGjD,KAAK,yBAA2B,OAAO,WAAW,IAAM,CAEtD,GAAI,GAAC,KAAK,OAAS,KAAK,YAGxB,IAAI,KAAK,aAAc,CAErB,IAAMC,EAAe,SAAS,iBAAiB,KAAK,aAAa,EAAG,KAAK,aAAa,CAAC,EACvF,GAAIA,GAAgB,KAAK,cAAcA,CAAY,EACjD,OAGJ,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACtB,EAAG,KAAK,QAAQ,aAAa,CAC/B,CAEU,yBAAgC,CACpC,KAAK,2BAA6B,QACpC,OAAO,aAAa,KAAK,wBAAwB,CAErD,CACF",
|
|
6
|
+
"names": ["attributes", "classes", "LIST_DROPDOWN_CONSTANTS", "DEFAULT_LIST_DROPDOWN_CONFIG", "ListDropdownType", "ListDropdownAsyncStyle", "EventAware", "type", "data", "listeners", "cb", "listener", "ScrollDirection", "ScrollEvents", "DEFAULT_SCROLL_THROTTLE", "ScrollAxisObserver", "EventAware", "_element", "_config", "wait", "throttle", "isDefined", "isNumber", "isVertical", "isHorizontal", "position", "direction", "ScrollDirection", "ScrollEvents", "scrollStart", "scrollEnd", "createDropdown", "config", "targetElement", "dropdownElement", "createPopupDropdown", "dropdownId", "evt", "composedPath", "getEventPath", "el", "LIST_DROPDOWN_CONSTANTS", "addClass", "_a", "popupElement", "POPUP_CONSTANTS", "createList", "listElement", "LIST_CONSTANTS", "createListItems", "options", "startIndex", "renderSelected", "groups", "getOptionsByGroup", "flatOptions", "getFlattenedOptions", "limitOptions", "optionLimit", "optionIdIndex", "group", "optionParent", "headerElement", "groupWrapper", "listHeaderElement", "option", "dividerElement", "createDivider", "isSelected", "v", "isDeepEqual", "listItemElement", "element", "result", "secondaryLabelElement", "checkboxElement", "createCheckboxElement", "value", "key", "isObject", "leadingIconElement", "createIconElement", "trailingIconElement", "optionIconElement", "factoryConfig", "o", "cascadingElement", "selected", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "divider", "type", "iconName", "iconClass", "componentProps", "icon", "iconElement", "ICON_CLASS_NAME", "createAsyncElement", "asyncStyle", "createSkeletonElement", "createSpinnerElement", "div", "spinner", "list", "i", "listItemSkeleton", "SKELETON_CONSTANTS", "createBusyElement", "linearProgress", "LINEAR_PROGRESS_CONSTANTS", "isListDropdownOptionType", "isOptionGroups", "isDefined", "isOptionTypes", "flatOpts", "ListDropdownFoundation", "_adapter", "config", "__spreadValues", "DEFAULT_LIST_DROPDOWN_CONFIG", "value", "id", "sync", "index", "isSelected", "o", "options", "animate", "values", "listener", "threshold", "isVisible", "key", "activeOptionIndex", "activeOption", "option", "startIndex", "getFlattenedOptions", "ListDropdownAdapter", "_targetElement", "config", "selectCallback", "closeCb", "createDropdown", "createBusyElement", "LIST_DROPDOWN_CONSTANTS", "createList", "evt", "createListItems", "createAsyncElement", "createVisuallyHiddenElement", "listener", "scrollThreshold", "scrollTarget", "getShadowElement", "POPUP_CONSTANTS", "scrollConfig", "ScrollAxisObserver", "ScrollEvents", "listItems", "activeListItem", "li", "index", "item", "isSelected", "animate", "listItem", "activeChangeCallback", "values", "multiple", "v", "isDeepEqual", "checkboxElement", "newCheckboxElement", "createCheckboxElement", "replaceElement", "sync", "targetWidthCallback", "removeElement", "removeAllChildren", "options", "isVisible", "LIST_ITEM_CONSTANTS", "ai", "ICON_CONSTANTS", "cb", "isFunction", "behavior", "block", "scrollContainer", "tryScrollIntoView", "ListDropdown", "_targetElement", "config", "IconRegistry", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "ListDropdownFoundation", "ListDropdownAdapter", "index", "isSelected", "values", "options", "animate", "listener", "threshold", "isVisible", "key", "ListDropdownAwareFoundation", "value", "CascadingListDropdownAwareFoundation", "ListDropdownAwareFoundation", "_config", "evt", "mouseElement"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{b as h,c as u,d as k}from"./chunk.W2LN45WY.js";import{a as n,d as w}from"./chunk.JVLJH6PR.js";import{a as b,b as g}from"./chunk.36F2GVWS.js";import{a as p,e as f,f as m}from"./chunk.JAWV5Y5T.js";import{t as c}from"./chunk.K7FPXAFS.js";import{d as l}from"./chunk.M3QDAYD2.js";var a=class extends h{constructor(r){super(r);this._component=r;this._backdropElement=m(this._component,n.elementName)}setBackdropCloseListener(r){this._backdropElement.addEventListener(n.events.BACKDROP_CLICK,r)}setBackdropVisibility(r){return this._backdropElement.hasAttribute("hidden")&&this._backdropElement.removeAttribute("hidden"),!this._backdropElement.fadeIn||!this._backdropElement.fadeOut?Promise.resolve():r?this._backdropElement.fadeIn():this._backdropElement.fadeOut()}toggleBackdropClass(r,t){c(this._backdropElement,r,t)}};var _=`${g}modal-drawer`,v={DISPLAY_NONE:"forge-drawer--display-none",SCRIM_CLOSED:"forge-drawer__scrim--closed"},x={CLOSE:`${_}-close`},e={elementName:_,classes:v,events:x};var i=class extends u{constructor(r){super(r);this._adapter=r;this._open=!1;this._isInitialized=!1;this._backdropClickListener=t=>this._onBackdropClick(t)}connect(){super.connect(),this._adapter.setBackdropCloseListener(this._backdropClickListener),this._setBackdrop(this._open),this._isInitialized=!0}disconnect(){this._isInitialized=!1}_triggerDrawerOpen(){super._triggerDrawerOpen(),this._setBackdrop(!0)}_triggerDrawerClose(){super._triggerDrawerClose(),this._setBackdrop(!1)}_onBackdropClick(r){this._adapter.emitHostEvent(e.events.CLOSE,void 0,!0,!0)&&(this.open=!1)}_setBackdrop(r){r?(this._adapter.toggleBackdropClass(!1,e.classes.SCRIM_CLOSED),this._adapter.setBackdropVisibility(!0)):this._isInitialized&&this._adapter.setBackdropVisibility(!1).then(()=>{this._open||this._adapter.toggleBackdropClass(!0,e.classes.SCRIM_CLOSED)})}};var C='<template><forge-backdrop class="forge-drawer__scrim" hidden part="scrim"></forge-backdrop><div class="forge-drawer forge-drawer--modal" part="root"><slot name="header"></slot><div class="forge-drawer__content" part="content"><slot></slot></div><slot name="footer"></slot></div></template>',D='.forge-drawer{width:256px;width:var(--forge-drawer-width,256px);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:#fff;background-color:var(--mdc-theme-surface,#fff);height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer__content{overflow-x:auto;-webkit-overflow-scrolling:"touch";display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;grid-row:2}.forge-drawer__content::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-drawer__content::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,var(--forge-shape-full,9999px));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-drawer__content::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-drawer--left{border-right-width:1px;border-right-style:solid}.forge-drawer--right{border-left-width:1px;border-left-style:solid}.forge-drawer--right.forge-drawer--closing{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--right.forge-drawer--closed{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer--closing{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;z-index:1;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:.2s;transition-duration:.2s}.forge-drawer--closed{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer--no-transition{-webkit-transition:none!important;transition:none!important}.forge-drawer--modal{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);z-index:8;z-index:var(--forge-z-index-dialog,8);position:absolute;top:0;max-width:80%}.forge-drawer--modal+.mdc-drawer-scrim{background-color:rgba(0,0,0,.32)}.forge-drawer--modal.forge-drawer--closed,.forge-drawer--modal.forge-drawer--closing{-webkit-box-shadow:none;box-shadow:none}.forge-drawer--modal.forge-drawer--closing.forge-drawer--right{-webkit-transform:translateX(100%);transform:translateX(100%)}.forge-drawer__scrim{z-index:8;z-index:var(--forge-z-index-dialog,8)}.forge-drawer__scrim--closed{display:none}.forge-drawer.forge-drawer--right{right:0}.forge-drawer--display-none{display:none!important}',o=class extends k{constructor(){super();f(this,C,D),this._foundation=new i(new a(this))}};o=l([b({name:e.elementName,dependencies:[w]})],o);function q(){p(o)}export{a,e as b,i as c,o as d,q as e};
|
|
7
|
+
//# sourceMappingURL=chunk.MWYQRG5W.js.map
|