@tylertech/forge 3.0.0-next.13 → 3.0.0-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +27366 -24598
- package/dist/esm/accordion/index.js +1 -1
- package/dist/esm/app-bar/app-bar/index.js +7 -0
- package/dist/esm/app-bar/app-bar/index.js.map +7 -0
- 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 +1 -1
- package/dist/esm/button-toggle/button-toggle/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/dist/esm/button-toggle/index.js +1 -1
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
- package/dist/esm/calendar/calendar-menu/index.js +1 -1
- package/dist/esm/calendar/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.FLWNOP42.js → chunk.26E4L52W.js} +2 -2
- package/dist/esm/chunks/chunk.2GJ54C3Q.js +7 -0
- package/dist/esm/chunks/chunk.2GJ54C3Q.js.map +7 -0
- package/dist/esm/chunks/{chunk.ZRSDTCSD.js → chunk.2GYZM6ZG.js} +2 -2
- package/dist/esm/chunks/chunk.2YDKRTKP.js +7 -0
- package/dist/esm/chunks/chunk.2YDKRTKP.js.map +7 -0
- package/dist/esm/chunks/chunk.3JCHXLPT.js +7 -0
- package/dist/esm/chunks/{chunk.LUNKNRRH.js.map → chunk.3JCHXLPT.js.map} +3 -3
- package/dist/esm/chunks/chunk.3PKNBYMG.js +6 -0
- package/dist/esm/chunks/chunk.3PKNBYMG.js.map +7 -0
- package/dist/esm/chunks/chunk.3RMBFRGC.js +7 -0
- package/dist/esm/chunks/{chunk.DTLZOIUQ.js → chunk.3UO6S3IK.js} +2 -2
- package/dist/esm/chunks/chunk.3ZRQFXQU.js +7 -0
- package/dist/esm/chunks/{chunk.XNFS7YIB.js.map → chunk.3ZRQFXQU.js.map} +1 -1
- package/dist/esm/chunks/{chunk.MWYQRG5W.js → chunk.4B5IOZAT.js} +2 -2
- package/dist/esm/chunks/{chunk.IDMDBMBR.js → chunk.4QDN5PM6.js} +2 -2
- package/dist/esm/chunks/{chunk.Z5RROENA.js → chunk.543K5Y4E.js} +2 -2
- package/dist/esm/chunks/{chunk.W2LN45WY.js → chunk.57PXXJA6.js} +2 -2
- package/dist/esm/chunks/{chunk.675V42JS.js → chunk.5C24LZNU.js} +2 -2
- package/dist/esm/chunks/{chunk.V24M62MC.js → chunk.5H4G6BWX.js} +2 -2
- package/dist/esm/chunks/{chunk.QLCVRJ3Q.js → chunk.5VHUMZYS.js} +2 -2
- package/dist/esm/chunks/{chunk.OWZREAT6.js → chunk.6DXDNQUR.js} +2 -2
- package/dist/esm/chunks/{chunk.7VMJLHQY.js → chunk.6Q3SV2R2.js} +2 -2
- package/dist/esm/chunks/chunk.6Y45DLA6.js +7 -0
- package/dist/esm/chunks/chunk.6Y45DLA6.js.map +7 -0
- package/dist/esm/chunks/{chunk.IHAHJPMB.js → chunk.7ABZUBTT.js} +2 -2
- package/dist/esm/chunks/{chunk.Z5ZLKM7W.js → chunk.7BGOH44S.js} +2 -2
- package/dist/esm/chunks/{chunk.LOG6GQOK.js → chunk.7DHDFH5L.js} +2 -2
- package/dist/esm/chunks/{chunk.3R4BUIQP.js → chunk.7PP6QHOM.js} +2 -2
- package/dist/esm/chunks/{chunk.YBZK6LJZ.js → chunk.7UXLLUTN.js} +2 -2
- package/dist/esm/chunks/{chunk.5RM65QPN.js → chunk.7W2UWAZX.js} +2 -2
- package/dist/esm/chunks/chunk.A72W7RW7.js +7 -0
- package/dist/esm/chunks/{chunk.STB2FEUA.js.map → chunk.A72W7RW7.js.map} +2 -2
- package/dist/esm/chunks/{chunk.6NTYTHAL.js → chunk.AEJGC4YG.js} +2 -2
- package/dist/esm/chunks/{chunk.BTXY3XMJ.js → chunk.B46Q3AFP.js} +2 -2
- package/dist/esm/chunks/{chunk.QJCNMYD3.js → chunk.BFUGFHEH.js} +2 -2
- package/dist/esm/chunks/chunk.BLW6QESQ.js +12 -0
- package/dist/esm/chunks/chunk.BLW6QESQ.js.map +7 -0
- package/dist/esm/chunks/{chunk.2ZU6LWHE.js → chunk.BMQYEYCT.js} +2 -2
- package/dist/esm/chunks/{chunk.HOLCNJXC.js → chunk.C5IB44HX.js} +2 -2
- package/dist/esm/chunks/chunk.CNRFOWHY.js +7 -0
- package/dist/esm/chunks/{chunk.QQRPV4RN.js.map → chunk.CNRFOWHY.js.map} +2 -2
- package/dist/esm/chunks/{chunk.G73KL7P2.js → chunk.CTZ3AWDW.js} +2 -2
- package/dist/esm/chunks/{chunk.YA3RDJCV.js → chunk.CZOABXEQ.js} +2 -2
- package/dist/esm/chunks/{chunk.YA3RDJCV.js.map → chunk.CZOABXEQ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.QLOYOZN3.js → chunk.DD35U4AA.js} +2 -2
- package/dist/esm/chunks/{chunk.XEFWZKHQ.js → chunk.DDXIHZFX.js} +2 -2
- package/dist/esm/chunks/{chunk.MKJCHUJH.js → chunk.DOEG3DWJ.js} +2 -2
- package/dist/esm/chunks/{chunk.2MSL7CYM.js → chunk.DTKFE7YB.js} +2 -2
- package/dist/esm/chunks/{chunk.FXIWCHLW.js → chunk.E3GVKR4E.js} +2 -2
- package/dist/esm/chunks/{chunk.FFHSUJFM.js → chunk.EBSBAFCX.js} +2 -2
- package/dist/esm/chunks/{chunk.RES7WDKH.js → chunk.F2EBSV5Z.js} +2 -2
- package/dist/esm/chunks/chunk.F6KM5FO6.js +7 -0
- package/dist/esm/chunks/{chunk.5WMYF27O.js.map → chunk.F6KM5FO6.js.map} +2 -2
- package/dist/esm/chunks/{chunk.BBCZNGT3.js → chunk.FB6ZLH6P.js} +2 -2
- package/dist/esm/chunks/{chunk.VFKHRAWD.js → chunk.FQSL747N.js} +2 -2
- package/dist/esm/chunks/{chunk.JVLJH6PR.js → chunk.G2BNY5QQ.js} +2 -2
- package/dist/esm/chunks/{chunk.URJQNB3S.js → chunk.GS72TBUD.js} +2 -2
- package/dist/esm/chunks/{chunk.5PG6WIIX.js → chunk.GT3VPSXY.js} +2 -2
- package/dist/esm/chunks/{chunk.IMLJD35R.js → chunk.GWJ4QCSW.js} +2 -2
- package/dist/esm/chunks/{chunk.IISWKFCX.js → chunk.H7GW57Q6.js} +2 -2
- package/dist/esm/chunks/{chunk.BB4UF5RX.js → chunk.HHHBS6FB.js} +2 -2
- package/dist/esm/chunks/{chunk.KPJWP77R.js → chunk.I3NHK2S3.js} +2 -2
- package/dist/esm/chunks/{chunk.5N4N6DL6.js → chunk.IEB5KRFQ.js} +2 -2
- package/dist/esm/chunks/chunk.IT66AOX7.js +7 -0
- package/dist/esm/chunks/chunk.IT66AOX7.js.map +7 -0
- package/dist/esm/chunks/{chunk.BQ2X5SBP.js → chunk.IVUK3W34.js} +2 -2
- package/dist/esm/chunks/{chunk.ZGRQDDHO.js → chunk.IW7HALLT.js} +2 -2
- package/dist/esm/chunks/chunk.J2KHTGSB.js +7 -0
- package/dist/esm/chunks/chunk.J2KHTGSB.js.map +7 -0
- package/dist/esm/chunks/{chunk.7ZROQ6D3.js → chunk.J3B5CWKT.js} +2 -2
- package/dist/esm/chunks/{chunk.TBGMJQYJ.js → chunk.JVK64JDZ.js} +2 -2
- package/dist/esm/chunks/chunk.KFDYMENL.js +7 -0
- package/dist/esm/chunks/chunk.KFDYMENL.js.map +7 -0
- package/dist/esm/chunks/{chunk.AUBOJZQ7.js → chunk.KLPF4CNX.js} +2 -2
- package/dist/esm/chunks/chunk.KTYYBWTN.js +7 -0
- package/dist/esm/chunks/{chunk.QN5T26HH.js.map → chunk.KTYYBWTN.js.map} +2 -2
- package/dist/esm/chunks/{chunk.IT7XPDAV.js → chunk.L4Y4RO5O.js} +2 -2
- package/dist/esm/chunks/{chunk.IAWYYNUU.js → chunk.LCNR2RPT.js} +2 -2
- package/dist/esm/chunks/{chunk.TU74SREL.js → chunk.LMIKNDBS.js} +2 -2
- package/dist/esm/chunks/{chunk.5A2PA7TL.js → chunk.LOBKFTRM.js} +2 -2
- package/dist/esm/chunks/chunk.LOBKFTRM.js.map +7 -0
- package/dist/esm/chunks/{chunk.HSI7B43D.js → chunk.LS7WRRT2.js} +2 -2
- package/dist/esm/chunks/{chunk.HSI7B43D.js.map → chunk.LS7WRRT2.js.map} +2 -2
- package/dist/esm/chunks/{chunk.VO6YJCEU.js → chunk.LSNAGIIH.js} +2 -2
- package/dist/esm/chunks/{chunk.ARQMMZJL.js → chunk.LXX3YZYS.js} +2 -2
- package/dist/esm/chunks/chunk.MZZJY5NX.js +7 -0
- package/dist/esm/chunks/chunk.MZZJY5NX.js.map +7 -0
- package/dist/esm/chunks/{chunk.AMLT6XJP.js → chunk.NG6UZ4OL.js} +2 -2
- package/dist/esm/chunks/{chunk.YKIBREM5.js → chunk.NYYXUH3X.js} +2 -2
- package/dist/esm/chunks/{chunk.HRRJIFC5.js → chunk.NZKIFXBU.js} +2 -2
- package/dist/esm/chunks/{chunk.YAERJVPL.js → chunk.OED5UCYT.js} +2 -2
- package/dist/esm/chunks/{chunk.72JVXGHF.js → chunk.OUACQISE.js} +2 -2
- package/dist/esm/chunks/{chunk.72JVXGHF.js.map → chunk.OUACQISE.js.map} +1 -1
- package/dist/esm/chunks/{chunk.RP674CRC.js → chunk.OYO5O3NF.js} +2 -2
- package/dist/esm/chunks/{chunk.LCR4YH3O.js → chunk.P7LC3YYW.js} +2 -2
- package/dist/esm/chunks/{chunk.KV5IKYG2.js → chunk.PK7R6WDF.js} +2 -2
- package/dist/esm/chunks/{chunk.PYR2OCCH.js → chunk.PQQVUUHU.js} +2 -2
- package/dist/esm/chunks/{chunk.SLJ6HDK7.js → chunk.PSTGTQVK.js} +2 -2
- package/dist/esm/chunks/chunk.Q5Z6F3PI.js +7 -0
- package/dist/esm/chunks/chunk.Q5Z6F3PI.js.map +7 -0
- package/dist/esm/chunks/{chunk.36C6SIPW.js → chunk.QFY23EWU.js} +2 -2
- package/dist/esm/chunks/{chunk.S5QL4SPT.js → chunk.RCSBJQ4G.js} +2 -2
- package/dist/esm/chunks/chunk.RDW7Z4W5.js +7 -0
- package/dist/esm/chunks/chunk.RDW7Z4W5.js.map +7 -0
- package/dist/esm/chunks/{chunk.FYVDTZLF.js → chunk.RYNQDXFA.js} +2 -2
- package/dist/esm/chunks/{chunk.HAKF2T2D.js → chunk.RZZBM3AW.js} +2 -2
- package/dist/esm/chunks/{chunk.3ZPSN2QG.js → chunk.SNF35Y6C.js} +2 -2
- package/dist/esm/chunks/chunk.SOLF23NC.js +7 -0
- package/dist/esm/chunks/chunk.SOLF23NC.js.map +7 -0
- package/dist/esm/chunks/{chunk.XYAZVLPR.js → chunk.T34DG7BU.js} +2 -2
- package/dist/esm/chunks/chunk.TA3MVDUU.js +7 -0
- package/dist/esm/chunks/chunk.TA3MVDUU.js.map +7 -0
- package/dist/esm/chunks/{chunk.3HCYRDRI.js → chunk.THWSN3X4.js} +2 -2
- package/dist/esm/chunks/chunk.TLFCQSJN.js +7 -0
- package/dist/esm/chunks/chunk.TLFCQSJN.js.map +7 -0
- package/dist/esm/chunks/{chunk.R6LQBI42.js → chunk.TZFUKJ24.js} +2 -2
- package/dist/esm/chunks/{chunk.SIRXAA3O.js → chunk.U5WMRBSC.js} +2 -2
- package/dist/esm/chunks/chunk.URCJO73M.js +7 -0
- package/dist/esm/chunks/{chunk.WY3E33CW.js.map → chunk.URCJO73M.js.map} +2 -2
- package/dist/esm/chunks/{chunk.GNDKQPDV.js → chunk.UWZWXNTW.js} +2 -2
- package/dist/esm/chunks/{chunk.KV67JXOC.js → chunk.VD5ZL5ZN.js} +2 -2
- package/dist/esm/chunks/{chunk.G7SMCLHQ.js → chunk.VDZ7HBKM.js} +2 -2
- package/dist/esm/chunks/{chunk.NUMKGUCK.js → chunk.W324TWF2.js} +2 -2
- package/dist/esm/chunks/chunk.WQGPIOL6.js +7 -0
- package/dist/esm/chunks/chunk.WQGPIOL6.js.map +7 -0
- package/dist/esm/chunks/chunk.XDANTL6C.js +7 -0
- package/dist/esm/chunks/chunk.XDANTL6C.js.map +7 -0
- package/dist/esm/chunks/chunk.XNCBGWE4.js +7 -0
- package/dist/esm/chunks/chunk.XNCBGWE4.js.map +7 -0
- package/dist/esm/chunks/{chunk.HDG2GHKC.js → chunk.YKZ25J6B.js} +2 -2
- package/dist/esm/chunks/{chunk.7V4BDSA5.js → chunk.Z2RB75TN.js} +2 -2
- package/dist/esm/chunks/chunk.Z7PBGV4K.js +7 -0
- package/dist/esm/chunks/{chunk.AMZZKEAE.js.map → chunk.Z7PBGV4K.js.map} +4 -4
- package/dist/esm/chunks/{chunk.O6V3YNMO.js → chunk.ZSD7MMVB.js} +2 -2
- package/dist/esm/chunks/chunk.ZVJMIBUM.js +7 -0
- package/dist/esm/chunks/chunk.ZVJMIBUM.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/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 +1 -1
- package/dist/esm/label-value/index.js +1 -1
- package/dist/esm/linear-progress/index.js +1 -1
- package/dist/esm/list/index.js +1 -1
- package/dist/esm/list/list/index.js +1 -1
- package/dist/esm/list/list-item/index.js +1 -1
- package/dist/esm/list-dropdown/index.js +1 -1
- package/dist/esm/menu/index.js +1 -1
- package/dist/esm/open-icon/index.js +1 -1
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +1 -1
- package/dist/esm/popup/index.js +1 -1
- package/dist/esm/product-icon/index.js +1 -1
- package/dist/esm/profile-card/index.js +1 -1
- package/dist/esm/quantity-field/index.js +1 -1
- package/dist/esm/radio/index.js +1 -1
- package/dist/esm/ripple/index.js +1 -1
- package/dist/esm/scaffold/index.js +1 -1
- package/dist/esm/select/core/index.js +1 -1
- package/dist/esm/select/index.js +1 -1
- package/dist/esm/select/option/index.js +1 -1
- package/dist/esm/select/option-group/index.js +1 -1
- package/dist/esm/select/select/index.js +1 -1
- package/dist/esm/select/select-dropdown/index.js +1 -1
- package/dist/esm/skeleton/index.js +1 -1
- package/dist/esm/slider/index.js +1 -1
- package/dist/esm/split-button/index.js +1 -1
- package/dist/esm/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view-panel/index.js +1 -1
- package/dist/esm/stack/index.js +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/theme/forge-theme.css +1 -1
- package/esm/app-bar/app-bar/app-bar-adapter.d.ts +30 -0
- package/esm/app-bar/app-bar/app-bar-adapter.js +71 -0
- package/esm/app-bar/{app-bar-constants.d.ts → app-bar/app-bar-constants.d.ts} +7 -11
- package/esm/app-bar/app-bar/app-bar-constants.js +32 -0
- package/esm/app-bar/{app-bar-foundation.d.ts → app-bar/app-bar-foundation.d.ts} +17 -16
- package/esm/app-bar/app-bar/app-bar-foundation.js +71 -0
- package/esm/app-bar/app-bar/app-bar.d.ts +66 -0
- package/esm/app-bar/app-bar/app-bar.js +107 -0
- package/esm/app-bar/app-bar/index.d.ts +10 -0
- package/esm/app-bar/app-bar/index.js +14 -0
- package/esm/app-bar/help-button/app-bar-help-button-adapter.d.ts +8 -1
- package/esm/app-bar/help-button/app-bar-help-button-adapter.js +22 -1
- package/esm/app-bar/help-button/app-bar-help-button-constants.d.ts +7 -0
- package/esm/app-bar/help-button/app-bar-help-button-constants.js +11 -1
- package/esm/app-bar/help-button/app-bar-help-button-foundation.d.ts +4 -0
- package/esm/app-bar/help-button/app-bar-help-button-foundation.js +16 -0
- package/esm/app-bar/help-button/app-bar-help-button.d.ts +13 -2
- package/esm/app-bar/help-button/app-bar-help-button.js +26 -5
- package/esm/app-bar/index.d.ts +0 -4
- package/esm/app-bar/index.js +0 -8
- package/esm/app-bar/menu-button/app-bar-menu-button-constants.d.ts +7 -0
- package/esm/app-bar/menu-button/app-bar-menu-button-constants.js +9 -1
- package/esm/app-bar/menu-button/app-bar-menu-button.d.ts +19 -2
- package/esm/app-bar/menu-button/app-bar-menu-button.js +57 -8
- package/esm/app-bar/notification-button/app-bar-notification-button-adapter.d.ts +6 -2
- package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +17 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-constants.d.ts +1 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-constants.js +3 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-foundation.d.ts +4 -4
- package/esm/app-bar/notification-button/app-bar-notification-button-foundation.js +9 -11
- package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +17 -4
- package/esm/app-bar/notification-button/app-bar-notification-button.js +20 -5
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +7 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +26 -3
- package/esm/app-bar/profile-button/app-bar-profile-button-constants.d.ts +1 -3
- package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +2 -4
- package/esm/app-bar/profile-button/app-bar-profile-button-foundation.d.ts +5 -2
- package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +20 -22
- package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +31 -2
- package/esm/app-bar/profile-button/app-bar-profile-button.js +33 -6
- package/esm/button/base/base-button-adapter.d.ts +4 -8
- package/esm/button/base/base-button-adapter.js +5 -17
- package/esm/button/base/base-button-constants.d.ts +3 -0
- package/esm/button/base/base-button-foundation.d.ts +6 -7
- package/esm/button/base/base-button-foundation.js +10 -4
- package/esm/button/base/base-button.d.ts +3 -1
- package/esm/button/base/base-button.js +6 -0
- package/esm/button/button.js +3 -5
- package/esm/checkbox/checkbox.js +1 -1
- package/esm/circular-progress/circular-progress-adapter.d.ts +2 -2
- package/esm/circular-progress/circular-progress-adapter.js +15 -6
- package/esm/circular-progress/circular-progress-constants.d.ts +1 -2
- package/esm/circular-progress/circular-progress-constants.js +1 -2
- package/esm/circular-progress/circular-progress-foundation.d.ts +0 -1
- package/esm/circular-progress/circular-progress-foundation.js +3 -5
- package/esm/circular-progress/circular-progress.d.ts +1 -2
- package/esm/circular-progress/circular-progress.js +6 -11
- package/esm/constants.d.ts +9 -0
- package/esm/core/base/base-adapter.js +1 -1
- package/esm/core/utils/utils.d.ts +1 -1
- package/esm/floating-action-button/floating-action-button-adapter.d.ts +20 -0
- package/esm/floating-action-button/floating-action-button-adapter.js +49 -0
- package/esm/floating-action-button/floating-action-button-component-delegate.d.ts +19 -3
- package/esm/floating-action-button/floating-action-button-component-delegate.js +62 -14
- package/esm/floating-action-button/floating-action-button-constants.d.ts +19 -14
- package/esm/floating-action-button/floating-action-button-constants.js +15 -15
- package/esm/floating-action-button/floating-action-button-foundation.d.ts +27 -0
- package/esm/floating-action-button/floating-action-button-foundation.js +48 -0
- package/esm/floating-action-button/floating-action-button.d.ts +86 -25
- package/esm/floating-action-button/floating-action-button.js +117 -104
- package/esm/floating-action-button/index.d.ts +3 -1
- package/esm/floating-action-button/index.js +5 -3
- package/esm/focus-indicator/focus-indicator.js +2 -2
- package/esm/icon-button/icon-button-constants.d.ts +3 -3
- package/esm/icon-button/icon-button.d.ts +51 -0
- package/esm/icon-button/icon-button.js +54 -5
- package/esm/icon-button/index.d.ts +3 -1
- package/esm/icon-button/index.js +3 -1
- package/esm/index.js +2 -2
- package/esm/label/label-foundation.js +4 -2
- package/esm/linear-progress/linear-progress-adapter.d.ts +2 -2
- package/esm/linear-progress/linear-progress-adapter.js +14 -6
- package/esm/linear-progress/linear-progress-constants.d.ts +0 -1
- package/esm/linear-progress/linear-progress-constants.js +1 -2
- package/esm/linear-progress/linear-progress-foundation.d.ts +1 -1
- package/esm/linear-progress/linear-progress-foundation.js +2 -2
- package/esm/linear-progress/linear-progress.d.ts +1 -1
- package/esm/linear-progress/linear-progress.js +5 -7
- package/esm/list/list-item/list-item.js +2 -2
- package/esm/menu/menu-constants.js +1 -1
- package/esm/profile-card/profile-card-adapter.d.ts +5 -8
- package/esm/profile-card/profile-card-adapter.js +5 -16
- package/esm/profile-card/profile-card-constants.js +3 -3
- package/esm/profile-card/profile-card-foundation.d.ts +4 -1
- package/esm/profile-card/profile-card-foundation.js +24 -13
- package/esm/profile-card/profile-card.d.ts +1 -2
- package/esm/profile-card/profile-card.js +11 -8
- package/esm/slider/slider.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/switch/switch.js +1 -1
- package/esm/tabs/tab/tab.js +1 -1
- package/esm/toolbar/toolbar.js +1 -1
- package/package.json +1 -2
- package/styles/app-bar/app-bar/_configuration.scss +16 -0
- package/styles/app-bar/app-bar/_core.scss +95 -0
- package/styles/app-bar/app-bar/_token-utils.scss +30 -0
- package/styles/app-bar/app-bar/app-bar.scss +142 -0
- package/styles/app-bar/app-bar/index.scss +8 -0
- package/styles/button/button.scss +18 -5
- package/styles/circular-progress/_core.scss +2 -0
- package/styles/circular-progress/circular-progress.scss +2 -2
- package/styles/core/styles/elevation/index.scss +10 -0
- package/styles/core/styles/spacing/index.scss +1 -1
- package/styles/core/styles/theme/index.scss +2 -0
- package/styles/core/styles/tokens/app-bar/app-bar/_tokens.scss +35 -0
- package/styles/core/styles/tokens/circular-progress/_tokens.scss +2 -1
- package/styles/core/styles/tokens/floating-action-button/_tokens.scss +66 -0
- package/styles/core/styles/tokens/icon-button/_tokens.scss +1 -1
- package/styles/core/styles/tokens/profile-card/_tokens.scss +19 -0
- package/styles/core/styles/tokens/shape/_tokens.scss +6 -0
- package/styles/core/styles/tokens/spacing/_tokens.scss +2 -0
- package/styles/core/styles/tokens/theme/_token-utils.scss +2 -2
- package/styles/core/styles/tokens/theme/_tokens.brand.scss +22 -0
- package/styles/core/styles/tokens/theme/_tokens.scss +3 -0
- package/styles/floating-action-button/_configuration.scss +16 -0
- package/styles/floating-action-button/_core.scss +103 -0
- package/styles/floating-action-button/_token-utils.scss +30 -0
- package/styles/floating-action-button/floating-action-button.scss +129 -0
- package/styles/floating-action-button/index.scss +8 -0
- package/styles/focus-indicator/focus-indicator.scss +11 -28
- package/styles/forge.scss +0 -1
- package/styles/icon-button/_core.scss +0 -4
- package/styles/icon-button/icon-button.scss +45 -11
- package/styles/list/list-item/list-item.scss +2 -0
- package/styles/profile-card/_configuration.scss +10 -0
- package/styles/profile-card/_core.scss +58 -0
- package/styles/profile-card/_token-utils.scss +30 -0
- package/styles/profile-card/index.scss +8 -0
- package/styles/profile-card/profile-card.scss +55 -6
- package/styles/theme/_theme-dark.scss +0 -3
- package/styles/toolbar/_mixins.scss +0 -1
- package/dist/esm/chunks/chunk.36F2GVWS.js +0 -7
- package/dist/esm/chunks/chunk.36F2GVWS.js.map +0 -7
- package/dist/esm/chunks/chunk.4SPEX2GJ.js +0 -7
- package/dist/esm/chunks/chunk.4SPEX2GJ.js.map +0 -7
- package/dist/esm/chunks/chunk.4YFJVHXN.js +0 -7
- package/dist/esm/chunks/chunk.4YFJVHXN.js.map +0 -7
- package/dist/esm/chunks/chunk.5A2PA7TL.js.map +0 -7
- package/dist/esm/chunks/chunk.5CSXPRL3.js +0 -7
- package/dist/esm/chunks/chunk.5CSXPRL3.js.map +0 -7
- package/dist/esm/chunks/chunk.5LVZVQXB.js +0 -7
- package/dist/esm/chunks/chunk.5LVZVQXB.js.map +0 -7
- package/dist/esm/chunks/chunk.5WMYF27O.js +0 -7
- package/dist/esm/chunks/chunk.6M27ERWW.js +0 -12
- package/dist/esm/chunks/chunk.6M27ERWW.js.map +0 -7
- package/dist/esm/chunks/chunk.6ZNBFKNP.js +0 -7
- package/dist/esm/chunks/chunk.6ZNBFKNP.js.map +0 -7
- package/dist/esm/chunks/chunk.AMZZKEAE.js +0 -7
- package/dist/esm/chunks/chunk.APPY5AYL.js +0 -7
- package/dist/esm/chunks/chunk.APPY5AYL.js.map +0 -7
- package/dist/esm/chunks/chunk.AUCBR6CC.js +0 -7
- package/dist/esm/chunks/chunk.AUCBR6CC.js.map +0 -7
- package/dist/esm/chunks/chunk.EJX6RI4I.js +0 -7
- package/dist/esm/chunks/chunk.EJX6RI4I.js.map +0 -7
- package/dist/esm/chunks/chunk.EWK76SPH.js +0 -7
- package/dist/esm/chunks/chunk.EWK76SPH.js.map +0 -7
- package/dist/esm/chunks/chunk.FAXYCG55.js +0 -7
- package/dist/esm/chunks/chunk.FAXYCG55.js.map +0 -7
- package/dist/esm/chunks/chunk.LUNKNRRH.js +0 -7
- package/dist/esm/chunks/chunk.PMYQY3D3.js +0 -7
- package/dist/esm/chunks/chunk.QN5T26HH.js +0 -7
- package/dist/esm/chunks/chunk.QQRPV4RN.js +0 -7
- package/dist/esm/chunks/chunk.STB2FEUA.js +0 -7
- package/dist/esm/chunks/chunk.WMVYRDUJ.js +0 -7
- package/dist/esm/chunks/chunk.WMVYRDUJ.js.map +0 -7
- package/dist/esm/chunks/chunk.WY3E33CW.js +0 -7
- package/dist/esm/chunks/chunk.XLL7L2UB.js +0 -7
- package/dist/esm/chunks/chunk.XLL7L2UB.js.map +0 -7
- package/dist/esm/chunks/chunk.XNFS7YIB.js +0 -7
- package/dist/esm/chunks/chunk.YWAUEUAH.js +0 -7
- package/dist/esm/chunks/chunk.YWAUEUAH.js.map +0 -7
- package/dist/esm/chunks/chunk.ZKM667OT.js +0 -7
- package/dist/esm/chunks/chunk.ZKM667OT.js.map +0 -7
- package/dist/floating-action-button/forge-floating-action-button.css +0 -6
- package/esm/app-bar/app-bar-adapter.d.ts +0 -43
- package/esm/app-bar/app-bar-adapter.js +0 -60
- package/esm/app-bar/app-bar-constants.js +0 -37
- package/esm/app-bar/app-bar-foundation.js +0 -70
- package/esm/app-bar/app-bar.d.ts +0 -38
- package/esm/app-bar/app-bar.js +0 -75
- package/styles/app-bar/_mixins.scss +0 -254
- package/styles/app-bar/_variables.scss +0 -34
- package/styles/app-bar/app-bar.scss +0 -22
- package/styles/floating-action-button/_extended-fab-theme.scss +0 -238
- package/styles/floating-action-button/_fab-custom-properties.scss +0 -29
- package/styles/floating-action-button/_fab-theme.scss +0 -541
- package/styles/floating-action-button/_fab.mixins.scss +0 -351
- package/styles/floating-action-button/forge-floating-action-button.scss +0 -16
- package/styles/profile-card/_mixins.scss +0 -83
- /package/dist/esm/chunks/{chunk.FLWNOP42.js.map → chunk.26E4L52W.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZRSDTCSD.js.map → chunk.2GYZM6ZG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PMYQY3D3.js.map → chunk.3RMBFRGC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DTLZOIUQ.js.map → chunk.3UO6S3IK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MWYQRG5W.js.map → chunk.4B5IOZAT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IDMDBMBR.js.map → chunk.4QDN5PM6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Z5RROENA.js.map → chunk.543K5Y4E.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.W2LN45WY.js.map → chunk.57PXXJA6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.675V42JS.js.map → chunk.5C24LZNU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.V24M62MC.js.map → chunk.5H4G6BWX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QLCVRJ3Q.js.map → chunk.5VHUMZYS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OWZREAT6.js.map → chunk.6DXDNQUR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7VMJLHQY.js.map → chunk.6Q3SV2R2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IHAHJPMB.js.map → chunk.7ABZUBTT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Z5ZLKM7W.js.map → chunk.7BGOH44S.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LOG6GQOK.js.map → chunk.7DHDFH5L.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3R4BUIQP.js.map → chunk.7PP6QHOM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YBZK6LJZ.js.map → chunk.7UXLLUTN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5RM65QPN.js.map → chunk.7W2UWAZX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6NTYTHAL.js.map → chunk.AEJGC4YG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BTXY3XMJ.js.map → chunk.B46Q3AFP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QJCNMYD3.js.map → chunk.BFUGFHEH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2ZU6LWHE.js.map → chunk.BMQYEYCT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HOLCNJXC.js.map → chunk.C5IB44HX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.G73KL7P2.js.map → chunk.CTZ3AWDW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QLOYOZN3.js.map → chunk.DD35U4AA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XEFWZKHQ.js.map → chunk.DDXIHZFX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MKJCHUJH.js.map → chunk.DOEG3DWJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2MSL7CYM.js.map → chunk.DTKFE7YB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FXIWCHLW.js.map → chunk.E3GVKR4E.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FFHSUJFM.js.map → chunk.EBSBAFCX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RES7WDKH.js.map → chunk.F2EBSV5Z.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BBCZNGT3.js.map → chunk.FB6ZLH6P.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VFKHRAWD.js.map → chunk.FQSL747N.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JVLJH6PR.js.map → chunk.G2BNY5QQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.URJQNB3S.js.map → chunk.GS72TBUD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5PG6WIIX.js.map → chunk.GT3VPSXY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IMLJD35R.js.map → chunk.GWJ4QCSW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IISWKFCX.js.map → chunk.H7GW57Q6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BB4UF5RX.js.map → chunk.HHHBS6FB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KPJWP77R.js.map → chunk.I3NHK2S3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5N4N6DL6.js.map → chunk.IEB5KRFQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BQ2X5SBP.js.map → chunk.IVUK3W34.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZGRQDDHO.js.map → chunk.IW7HALLT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7ZROQ6D3.js.map → chunk.J3B5CWKT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TBGMJQYJ.js.map → chunk.JVK64JDZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AUBOJZQ7.js.map → chunk.KLPF4CNX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IT7XPDAV.js.map → chunk.L4Y4RO5O.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IAWYYNUU.js.map → chunk.LCNR2RPT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TU74SREL.js.map → chunk.LMIKNDBS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VO6YJCEU.js.map → chunk.LSNAGIIH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ARQMMZJL.js.map → chunk.LXX3YZYS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AMLT6XJP.js.map → chunk.NG6UZ4OL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YKIBREM5.js.map → chunk.NYYXUH3X.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HRRJIFC5.js.map → chunk.NZKIFXBU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YAERJVPL.js.map → chunk.OED5UCYT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RP674CRC.js.map → chunk.OYO5O3NF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LCR4YH3O.js.map → chunk.P7LC3YYW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KV5IKYG2.js.map → chunk.PK7R6WDF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PYR2OCCH.js.map → chunk.PQQVUUHU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SLJ6HDK7.js.map → chunk.PSTGTQVK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.36C6SIPW.js.map → chunk.QFY23EWU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.S5QL4SPT.js.map → chunk.RCSBJQ4G.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FYVDTZLF.js.map → chunk.RYNQDXFA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HAKF2T2D.js.map → chunk.RZZBM3AW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3ZPSN2QG.js.map → chunk.SNF35Y6C.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XYAZVLPR.js.map → chunk.T34DG7BU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3HCYRDRI.js.map → chunk.THWSN3X4.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.R6LQBI42.js.map → chunk.TZFUKJ24.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SIRXAA3O.js.map → chunk.U5WMRBSC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GNDKQPDV.js.map → chunk.UWZWXNTW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KV67JXOC.js.map → chunk.VD5ZL5ZN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.G7SMCLHQ.js.map → chunk.VDZ7HBKM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NUMKGUCK.js.map → chunk.W324TWF2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HDG2GHKC.js.map → chunk.YKZ25J6B.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7V4BDSA5.js.map → chunk.Z2RB75TN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.O6V3YNMO.js.map → chunk.ZSD7MMVB.js.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/constants.ts", "../../../../../../node_modules/@tylertech/forge-core/esm/custom-elements/decorators/custom-element.js"],
|
|
4
|
-
"sourcesContent": ["export const COMPONENT_NAME_PREFIX = 'forge-';\nexport const KEYSTROKE_DEBOUNCE_THRESHOLD = 500;\nexport const ICON_CLASS_NAME = 'tyler-icons';\nexport const CDN_BASE_URL = 'https://cdn.forge.tylertech.com/';\n\n/** A property symbol that references the `ElementInternals` instance of an element. */\nexport const internals = Symbol('ElementInternals');\n\n/** A property symbol that indicates whether or not a `Focusable` element can be focused. */\nexport const isFocusable = Symbol('isFocusable');\n\nexport type Theme = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'info';\n\nexport type MixinBase<ExpectedBase = object> = abstract new (...args: any[]) => ExpectedBase;\nexport type MixinReturn<TBase extends MixinBase, MixinClass = object> = (abstract new (...args: any[]) => MixinClass) & TBase;\n", "import { isFunction } from '../../utils';\nimport { defineCustomElement } from '../component-utils';\nexport const CUSTOM_ELEMENT_NAME_PROPERTY = '_customElementName';\nexport const CUSTOM_ELEMENT_DEPENDENCIES_PROPERTY = '_customElementDependencies';\n/**\n * This decorator is intended to be used on classes that extend `HTMLElement` to\n * extend/modify the behavior of a custom element.\n * @param {ICustomElementConfig} [config={}] The custom element configuration.\n */\nexport function CustomElement({ name, dependencies, define = true }) {\n return (ctor) => {\n patchConnectedCallback(ctor);\n if (name) {\n ctor[CUSTOM_ELEMENT_NAME_PROPERTY] = name;\n }\n if (dependencies && dependencies.length) {\n ctor[CUSTOM_ELEMENT_DEPENDENCIES_PROPERTY] = dependencies;\n }\n if (window.__forgeFlags__autoDefine !== false && define) {\n defineCustomElement(ctor);\n }\n };\n}\nfunction patchConnectedCallback(ctor) {\n const originalConnectedCallback = ctor.prototype.connectedCallback;\n ctor.prototype.connectedCallback = function () {\n if (!this.isConnected) {\n return;\n }\n if (!this._isInitialized) {\n tryUpgradeOwnProperties(this);\n if (isFunction(this.initializedCallback)) {\n this.initializedCallback.apply(this);\n }\n this._isInitialized = true;\n }\n if (isFunction(originalConnectedCallback)) {\n originalConnectedCallback.apply(this);\n }\n };\n}\nfunction tryUpgradeOwnProperties(instance) {\n // We ignore our properties that start with an underscore as those are considered \"internal\"\n // and are not auto-upgraded for us\n const ownProperties = Object.getOwnPropertyNames(instance)\n .filter(p => !p.startsWith('_'));\n for (const property of ownProperties) {\n const value = instance[property];\n delete instance[property];\n instance[property] = value;\n }\n}\n"],
|
|
5
|
-
"mappings": "gFAAO,IAAMA,EAAwB,SACxBC,EAA+B,IAC/BC,EAAkB,cAClBC,EAAe,mCAGfC,EAAY,OAAO,kBAAkB,EAGrCC,EAAc,OAAO,aAAa,ECPxC,IAAMC,EAA+B,qBAC/BC,EAAuC,6BAM7C,SAASC,EAAc,CAAE,KAAAC,EAAM,aAAAC,EAAc,OAAAC,EAAS,EAAK,EAAG,CACjE,OAAQC,GAAS,CACbC,EAAuBD,CAAI,EACvBH,IACAG,EAAKN,CAA4B,EAAIG,GAErCC,GAAgBA,EAAa,SAC7BE,EAAKL,CAAoC,EAAIG,GAE7C,OAAO,2BAA6B,IAASC,GAC7CG,EAAoBF,CAAI,CAEhC,CACJ,CACA,SAASC,EAAuBD,EAAM,CAClC,IAAMG,EAA4BH,EAAK,UAAU,kBACjDA,EAAK,UAAU,kBAAoB,UAAY,CACtC,KAAK,cAGL,KAAK,iBACNI,EAAwB,IAAI,EACxBC,EAAW,KAAK,mBAAmB,GACnC,KAAK,oBAAoB,MAAM,IAAI,EAEvC,KAAK,eAAiB,IAEtBA,EAAWF,CAAyB,GACpCA,EAA0B,MAAM,IAAI,EAE5C,CACJ,CACA,SAASC,EAAwBE,EAAU,CAGvC,IAAMC,EAAgB,OAAO,oBAAoBD,CAAQ,EACpD,OAAOE,GAAK,CAACA,EAAE,WAAW,GAAG,CAAC,EACnC,QAAWC,KAAYF,EAAe,CAClC,IAAMG,EAAQJ,EAASG,CAAQ,EAC/B,OAAOH,EAASG,CAAQ,EACxBH,EAASG,CAAQ,EAAIC,EAE7B",
|
|
6
|
-
"names": ["COMPONENT_NAME_PREFIX", "KEYSTROKE_DEBOUNCE_THRESHOLD", "ICON_CLASS_NAME", "CDN_BASE_URL", "internals", "isFocusable", "CUSTOM_ELEMENT_NAME_PROPERTY", "CUSTOM_ELEMENT_DEPENDENCIES_PROPERTY", "CustomElement", "name", "dependencies", "define", "ctor", "patchConnectedCallback", "defineCustomElement", "originalConnectedCallback", "tryUpgradeOwnProperties", "isFunction", "instance", "ownProperties", "p", "property", "value"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
-
* License: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import{d as x}from"./chunk.ARQMMZJL.js";import{b as E}from"./chunk.APPY5AYL.js";import{d as A}from"./chunk.5A2PA7TL.js";import{m as O}from"./chunk.AMZZKEAE.js";import{a as T}from"./chunk.HSI7B43D.js";import{a as o}from"./chunk.NVUMRW44.js";import{a as _,b as y}from"./chunk.36F2GVWS.js";import{a as b,e as v,f as n,k as h}from"./chunk.JAWV5Y5T.js";import{d as u}from"./chunk.K7FPXAFS.js";import{k as c,l as g}from"./chunk.J2M2MXP2.js";import{d as a}from"./chunk.M3QDAYD2.js";var d=`${y}profile-card`,I={FULL_NAME:"full-name",EMAIL:"email",SIGN_OUT:"sign-out",PROFILE:"profile",SIGN_OUT_TEXT:"sign-out-text",PROFILE_TEXT:"profile-text",AVATAR_TEXT:"avatar-text",AVATAR_ICON:"avatar-icon",AVATAR_IMAGE_URL:"avatar-image-url",AVATAR_LETTER_COUNT:"avatar-letter-count"},B={FULL_NAME:".forge-profile-card__full-name",EMAIL:".forge-profile-card__email",AVATAR:".forge-profile-card__info-avatar > forge-avatar",ACTION_TOOLBAR:"#action-toolbar",PROFILE_BUTTON:"#profile-button",SIGN_OUT_BUTTON:"#sign-out-button"},L={SHOW_SIGN_OUT_BUTTON:!0,SHOW_PROFILE_BUTTON:!1,SIGN_OUT_BUTTON_TEXT:"Sign out",PROFILE_BUTTON_TEXT:"Profile"},w={SIGN_OUT:`${d}-sign-out`,PROFILE:`${d}-profile`},e={elementName:d,attributes:I,selectors:B,defaults:L,events:w};var l=class extends T{constructor(t){super(t);this._fullNameElement=n(t,e.selectors.FULL_NAME),this._emailElement=n(t,e.selectors.EMAIL),this._avatarElement=n(t,e.selectors.AVATAR),this._actionToolbar=n(t,e.selectors.ACTION_TOOLBAR),this._profileButton=n(t,e.selectors.PROFILE_BUTTON),this._signOutButton=n(t,e.selectors.SIGN_OUT_BUTTON)}setFullName(t){this._component.setAttribute(e.attributes.FULL_NAME,t),this._fullNameElement.textContent=t}setEmail(t){this._component.setAttribute(e.attributes.EMAIL,t),this._emailElement.textContent=t}setAvatarText(t){this._component.setAttribute(e.attributes.AVATAR_TEXT,t),this._avatarElement.text=t,u(this._avatarElement)}setAvatarIcon(t){if(t){let f=new O({props:{name:t}});this._avatarElement.replaceChildren(f.element)}else u(this._avatarElement)}setAvatarImageUrl(t){this._component.setAttribute(e.attributes.AVATAR_IMAGE_URL,t),this._avatarElement.imageUrl=t}setAvatarLetterCount(t){this._component.setAttribute(e.attributes.AVATAR_LETTER_COUNT,String(t)),this._avatarElement.letterCount=t}setActionToolbarVisibility(t){t?this._actionToolbar.style.removeProperty("display"):this._actionToolbar.style.display="none"}setProfileButtonVisibility(t){t?this._profileButton.style.removeProperty("display"):this._profileButton.style.display="none"}setSignOutButtonVisibility(t){t?this._signOutButton.style.removeProperty("display"):this._signOutButton.style.display="none"}setSignOutButtonText(t){this._signOutButton.textContent=t}setProfileButtonText(t){this._profileButton.textContent=t}setProfileButtonListener(t){this._profileButton.addEventListener("click",t)}setSignOutButtonListener(t){this._signOutButton.addEventListener("click",t)}removeProfileButtonListener(t){this._profileButton.removeEventListener("click",t)}removeSignOutButtonListener(t){this._signOutButton.removeEventListener("click",t)}requestProfileButtonFocus(){window.requestAnimationFrame(()=>this._profileButton.focus())}requestSignOutButtonFocus(){window.requestAnimationFrame(()=>this._signOutButton.focus())}};var p=class{constructor(i){this._adapter=i;this._showSignOutButton=e.defaults.SHOW_SIGN_OUT_BUTTON;this._showProfileButton=e.defaults.SHOW_PROFILE_BUTTON;this._signOutButtonText=e.defaults.SIGN_OUT_BUTTON_TEXT;this._profileButtonText=e.defaults.PROFILE_BUTTON_TEXT;this._profileListener=t=>this._onProfileButtonClick(t),this._signOutListener=t=>this._onSignOutButtonClick(t)}initialize(){this._adapter.setProfileButtonListener(this._profileListener),this._adapter.setSignOutButtonListener(this._signOutListener),(this._showSignOutButton||this._showProfileButton)&&this._requestInitialFocus(),this._setActionVisibility(),this._adapter.setSignOutButtonText(this._signOutButtonText),this._adapter.setProfileButtonText(this._profileButtonText)}_requestInitialFocus(){this._showSignOutButton?this._adapter.requestSignOutButtonFocus():this._showProfileButton&&this._adapter.requestProfileButtonFocus()}_setActionVisibility(){let i=this._showSignOutButton||this._showProfileButton;this._adapter.setActionToolbarVisibility(i),this._adapter.setSignOutButtonVisibility(this._showSignOutButton),this._adapter.setProfileButtonVisibility(this._showProfileButton)}_onProfileButtonClick(i){i.stopPropagation(),this._adapter.emitHostEvent(e.events.PROFILE)}_onSignOutButtonClick(i){i.stopPropagation(),this._adapter.emitHostEvent(e.events.SIGN_OUT)}get fullName(){return this._fullName}set fullName(i){this._fullName!==i&&(this._fullName=i,this._adapter.setFullName(this._fullName))}get email(){return this._email}set email(i){this._email!==i&&(this._email=i,this._adapter.setEmail(this._email))}get avatarText(){return this._avatarText}set avatarText(i){this._avatarText!==i&&(this._avatarText=i,this._adapter.setAvatarText(this._avatarText))}get avatarIcon(){return this._avatarIcon}set avatarIcon(i){this._avatarIcon!==i&&(this._avatarIcon=i,this._adapter.setAvatarIcon(this._avatarIcon))}get avatarImageUrl(){return this._avatarImageUrl}set avatarImageUrl(i){this._avatarImageUrl!==i&&(this._avatarImageUrl=i,this._adapter.setAvatarImageUrl(this._avatarImageUrl))}get avatarLetterCount(){return this._avatarLetterCount}set avatarLetterCount(i){this._avatarLetterCount!==i&&(this._avatarLetterCount=i,this._adapter.setAvatarLetterCount(this._avatarLetterCount))}get signOut(){return this._showSignOutButton}set signOut(i){this._showSignOutButton!==i&&(this._showSignOutButton=i,this._setActionVisibility())}get profile(){return this._showProfileButton}set profile(i){this._showProfileButton!==i&&(this._showProfileButton=i,this._setActionVisibility())}get signOutText(){return this._signOutButtonText}set signOutText(i){this._signOutButtonText!==i&&(this._signOutButtonText=i||e.defaults.SIGN_OUT_BUTTON_TEXT,this._adapter.setSignOutButtonText(this._signOutButtonText))}get profileText(){return this._profileButtonText}set profileText(i){this._profileButtonText!==i&&(this._profileButtonText=i||e.defaults.PROFILE_BUTTON_TEXT,this._adapter.setProfileButtonText(this._profileButtonText))}};var N='<template><div class="forge-profile-card" part="root"><div class="forge-profile-card__info" part="info-container"><div class="forge-profile-card__info-avatar" part="avatar-container"><forge-avatar part="avatar"></forge-avatar></div><div class="forge-profile-card__info-text" part="info-text"><div class="forge-profile-card__full-name" part="name"></div><div class="forge-profile-card__email" part="email"></div></div></div><slot></slot><forge-toolbar inverted id="action-toolbar" part="footer"><forge-button variant="outlined" slot="end" style="margin-right: 8px;" part="profile-button" aria-label="View profile" id="profile-button">Profile</forge-button><forge-button slot="end" part="sign-out-button" id="sign-out-button" aria-label="Sign out">Sign out</forge-button></forge-toolbar></div></template>',k='@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.mdc-ripple-surface::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-profile-card{min-width:360px;border-radius:4px}@media (max-width:399px){.forge-profile-card{width:100vw;min-width:unset;overflow:auto}}.forge-profile-card__info{padding:8px 16px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.forge-profile-card__info-avatar{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:8px;margin-right:16px;--forge-avatar-size:56px}.forge-profile-card__info-text{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start}.forge-profile-card__full-name{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1rem;font-size:var(--forge-typography-subtitle1-secondary-font-size, 1rem);line-height:1.75rem;line-height:var(--forge-typography-subtitle1-secondary-line-height, 1.75rem);font-weight:500;font-weight:var(--forge-typography-subtitle1-secondary-font-weight,500);letter-spacing:.01em;letter-spacing:var(--forge-typography-subtitle1-secondary-letter-spacing, .01em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle1-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle1-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle1-secondary-text-transform,inherit);line-height:1.25rem}.forge-profile-card__email{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-subtitle2-font-size, .875rem);line-height:1.375rem;line-height:var(--mdc-typography-subtitle2-line-height, 1.375rem);font-weight:500;font-weight:var(--mdc-typography-subtitle2-font-weight,500);letter-spacing:.0071428571em;letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, .0071428571em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle2-text-transform,inherit);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}forge-toolbar#action-toolbar::part(root){border-bottom-left-radius:4px;border-bottom-right-radius:4px}:host{display:inline}:host([hidden]){display:none}forge-toolbar{--mdc-theme-surface:var(--forge-theme-elevated-surface)}',r=class extends h{constructor(){super();v(this,N,k),this._foundation=new p(new l(this))}static get observedAttributes(){return[e.attributes.FULL_NAME,e.attributes.EMAIL,e.attributes.SIGN_OUT,e.attributes.PROFILE,e.attributes.SIGN_OUT_TEXT,e.attributes.PROFILE_TEXT,e.attributes.AVATAR_TEXT,e.attributes.AVATAR_ICON,e.attributes.AVATAR_IMAGE_URL,e.attributes.AVATAR_LETTER_COUNT]}connectedCallback(){this._foundation.initialize()}attributeChangedCallback(t,f,s){switch(t){case e.attributes.FULL_NAME:this.fullName=s;break;case e.attributes.EMAIL:this.email=s;break;case e.attributes.SIGN_OUT:this.signOut=c(e.attributes.SIGN_OUT);break;case e.attributes.PROFILE:this.profile=c(e.attributes.PROFILE);break;case e.attributes.SIGN_OUT_TEXT:this.signOutText=e.attributes.SIGN_OUT_TEXT;break;case e.attributes.PROFILE_TEXT:this.profileText=e.attributes.PROFILE_TEXT;break;case e.attributes.AVATAR_TEXT:this.avatarText=s;break;case e.attributes.AVATAR_ICON:this.avatarIcon=s;break;case e.attributes.AVATAR_IMAGE_URL:this.avatarImageUrl=s;break;case e.attributes.AVATAR_LETTER_COUNT:this.avatarLetterCount=g(s);break}}};a([o()],r.prototype,"fullName",2),a([o()],r.prototype,"email",2),a([o()],r.prototype,"signOut",2),a([o()],r.prototype,"profile",2),a([o()],r.prototype,"signOutText",2),a([o()],r.prototype,"profileText",2),a([o()],r.prototype,"avatarText",2),a([o()],r.prototype,"avatarIcon",2),a([o()],r.prototype,"avatarImageUrl",2),a([o()],r.prototype,"avatarLetterCount",2),r=a([_({name:e.elementName,dependencies:[E,A,x]})],r);function et(){b(r)}export{e as a,l as b,p as c,r as d,et as e};
|
|
7
|
-
//# sourceMappingURL=chunk.4SPEX2GJ.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/profile-card/profile-card-constants.ts", "../../src/profile-card/profile-card-adapter.ts", "../../src/profile-card/profile-card-foundation.ts", "../../src/profile-card/profile-card.ts", "../../src/profile-card/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}profile-card`;\n\nconst attributes = {\n FULL_NAME: 'full-name',\n EMAIL: 'email',\n SIGN_OUT: 'sign-out',\n PROFILE: 'profile',\n SIGN_OUT_TEXT: 'sign-out-text',\n PROFILE_TEXT: 'profile-text',\n AVATAR_TEXT: 'avatar-text',\n AVATAR_ICON: 'avatar-icon',\n AVATAR_IMAGE_URL: 'avatar-image-url',\n AVATAR_LETTER_COUNT: 'avatar-letter-count'\n};\n\nconst selectors = {\n FULL_NAME: '.forge-profile-card__full-name',\n EMAIL: '.forge-profile-card__email',\n AVATAR: '.forge-profile-card__info-avatar > forge-avatar',\n ACTION_TOOLBAR: '#action-toolbar',\n PROFILE_BUTTON: '#profile-button',\n SIGN_OUT_BUTTON: '#sign-out-button'\n};\n\nconst defaults = {\n SHOW_SIGN_OUT_BUTTON: true,\n SHOW_PROFILE_BUTTON: false,\n SIGN_OUT_BUTTON_TEXT: 'Sign out',\n PROFILE_BUTTON_TEXT: 'Profile'\n};\n\nconst events = {\n SIGN_OUT: `${elementName}-sign-out`,\n PROFILE: `${elementName}-profile`\n};\n\nexport const PROFILE_CARD_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n defaults,\n events\n};\n", "import { getShadowElement, removeAllChildren } from '@tylertech/forge-core';\nimport { IAvatarComponent } from '../avatar';\nimport { IButtonComponent } from '../button';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IconComponentDelegate } from '../icon';\nimport { IToolbarComponent } from '../toolbar';\nimport { IProfileCardComponent } from './profile-card';\nimport { PROFILE_CARD_CONSTANTS } from './profile-card-constants';\n\nexport interface IProfileCardAdapter extends IBaseAdapter {\n setFullName(value: string): void;\n setEmail(value: string): void;\n setAvatarText(value: string): void;\n setAvatarIcon(value: string): void;\n setAvatarImageUrl(value: string): void;\n setAvatarLetterCount(count: number): void;\n setActionToolbarVisibility(isVisible: boolean): void;\n setProfileButtonVisibility(isVisible: boolean): void;\n setSignOutButtonVisibility(isVisible: boolean): void;\n setSignOutButtonText(value: string): void;\n setProfileButtonText(value: string): void;\n setProfileButtonListener(listener: (evt: Event) => void): void;\n setSignOutButtonListener(listener: (evt: Event) => void): void;\n removeProfileButtonListener(listener: (evt: Event) => void): void;\n removeSignOutButtonListener(listener: (evt: Event) => void): void;\n requestProfileButtonFocus(): void;\n requestSignOutButtonFocus(): void;\n}\n\nexport class ProfileCardAdapter extends BaseAdapter<IProfileCardComponent> implements IProfileCardAdapter {\n private _fullNameElement: HTMLElement;\n private _emailElement: HTMLElement;\n private _avatarElement: IAvatarComponent;\n private _actionToolbar: IToolbarComponent;\n private _profileButton: IButtonComponent;\n private _signOutButton: IButtonComponent;\n\n constructor(component: IProfileCardComponent) {\n super(component);\n this._fullNameElement = getShadowElement(component, PROFILE_CARD_CONSTANTS.selectors.FULL_NAME);\n this._emailElement = getShadowElement(component, PROFILE_CARD_CONSTANTS.selectors.EMAIL);\n this._avatarElement = getShadowElement(component, PROFILE_CARD_CONSTANTS.selectors.AVATAR) as IAvatarComponent;\n this._actionToolbar = getShadowElement(component, PROFILE_CARD_CONSTANTS.selectors.ACTION_TOOLBAR) as IToolbarComponent;\n this._profileButton = getShadowElement(component, PROFILE_CARD_CONSTANTS.selectors.PROFILE_BUTTON) as IButtonComponent;\n this._signOutButton = getShadowElement(component, PROFILE_CARD_CONSTANTS.selectors.SIGN_OUT_BUTTON) as IButtonComponent;\n }\n\n public setFullName(value: string): void {\n this._component.setAttribute(PROFILE_CARD_CONSTANTS.attributes.FULL_NAME, value);\n this._fullNameElement.textContent = value;\n }\n\n public setEmail(value: string): void {\n this._component.setAttribute(PROFILE_CARD_CONSTANTS.attributes.EMAIL, value);\n this._emailElement.textContent = value;\n }\n\n public setAvatarText(value: string): void {\n this._component.setAttribute(PROFILE_CARD_CONSTANTS.attributes.AVATAR_TEXT, value);\n this._avatarElement.text = value;\n removeAllChildren(this._avatarElement);\n }\n\n public setAvatarIcon(value: string): void {\n if (value) {\n const iconDelegate = new IconComponentDelegate({ props: { name: value }});\n this._avatarElement.replaceChildren(iconDelegate.element);\n } else {\n removeAllChildren(this._avatarElement);\n }\n }\n\n public setAvatarImageUrl(value: string): void {\n this._component.setAttribute(PROFILE_CARD_CONSTANTS.attributes.AVATAR_IMAGE_URL, value);\n this._avatarElement.imageUrl = value;\n }\n\n public setAvatarLetterCount(count: number): void {\n this._component.setAttribute(PROFILE_CARD_CONSTANTS.attributes.AVATAR_LETTER_COUNT, String(count));\n this._avatarElement.letterCount = count;\n }\n\n public setActionToolbarVisibility(isVisible: boolean): void {\n if (isVisible) {\n this._actionToolbar.style.removeProperty('display');\n } else {\n this._actionToolbar.style.display = 'none';\n }\n }\n\n public setProfileButtonVisibility(isVisible: boolean): void {\n if (isVisible) {\n this._profileButton.style.removeProperty('display');\n } else {\n this._profileButton.style.display = 'none';\n }\n }\n\n public setSignOutButtonVisibility(isVisible: boolean): void {\n if (isVisible) {\n this._signOutButton.style.removeProperty('display');\n } else {\n this._signOutButton.style.display = 'none';\n }\n }\n\n public setSignOutButtonText(value: string): void {\n this._signOutButton.textContent = value;\n }\n \n public setProfileButtonText(value: string): void {\n this._profileButton.textContent = value;\n }\n\n public setProfileButtonListener(listener: (evt: Event) => void): void {\n this._profileButton.addEventListener('click', listener);\n }\n\n public setSignOutButtonListener(listener: (evt: Event) => void): void {\n this._signOutButton.addEventListener('click', listener);\n }\n\n public removeProfileButtonListener(listener: (evt: Event) => void): void {\n this._profileButton.removeEventListener('click', listener);\n }\n\n public removeSignOutButtonListener(listener: (evt: Event) => void): void {\n this._signOutButton.removeEventListener('click', listener);\n }\n\n public requestProfileButtonFocus(): void {\n window.requestAnimationFrame(() => this._profileButton.focus());\n }\n\n public requestSignOutButtonFocus(): void {\n window.requestAnimationFrame(() => this._signOutButton.focus());\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IProfileCardAdapter } from './profile-card-adapter';\nimport { PROFILE_CARD_CONSTANTS } from './profile-card-constants';\n\nexport interface IProfileCardFoundation extends ICustomElementFoundation {\n fullName: string;\n email: string;\n signOut: boolean;\n profile: boolean;\n avatarText: string;\n avatarIcon: string;\n avatarImageUrl: string;\n avatarLetterCount: number;\n}\n\nexport class ProfileCardFoundation implements IProfileCardFoundation {\n private _fullName: string;\n private _email: string;\n private _avatarText: string;\n private _avatarIcon: string;\n private _avatarImageUrl: string;\n private _avatarLetterCount: number;\n private _showSignOutButton = PROFILE_CARD_CONSTANTS.defaults.SHOW_SIGN_OUT_BUTTON;\n private _showProfileButton = PROFILE_CARD_CONSTANTS.defaults.SHOW_PROFILE_BUTTON;\n private _signOutButtonText = PROFILE_CARD_CONSTANTS.defaults.SIGN_OUT_BUTTON_TEXT;\n private _profileButtonText = PROFILE_CARD_CONSTANTS.defaults.PROFILE_BUTTON_TEXT;\n private _profileListener: (evt: Event) => void;\n private _signOutListener: (evt: Event) => void;\n\n constructor(private _adapter: IProfileCardAdapter) {\n this._profileListener = evt => this._onProfileButtonClick(evt);\n this._signOutListener = evt => this._onSignOutButtonClick(evt);\n }\n\n public initialize(): void {\n this._adapter.setProfileButtonListener(this._profileListener);\n this._adapter.setSignOutButtonListener(this._signOutListener);\n\n if (this._showSignOutButton || this._showProfileButton) {\n this._requestInitialFocus();\n }\n\n this._setActionVisibility();\n this._adapter.setSignOutButtonText(this._signOutButtonText);\n this._adapter.setProfileButtonText(this._profileButtonText);\n }\n\n private _requestInitialFocus(): void {\n if (this._showSignOutButton) {\n this._adapter.requestSignOutButtonFocus();\n } else if (this._showProfileButton) {\n this._adapter.requestProfileButtonFocus();\n }\n }\n\n private _setActionVisibility(): void {\n const showActionToolbar = this._showSignOutButton || this._showProfileButton;\n this._adapter.setActionToolbarVisibility(showActionToolbar);\n this._adapter.setSignOutButtonVisibility(this._showSignOutButton);\n this._adapter.setProfileButtonVisibility(this._showProfileButton);\n }\n\n private _onProfileButtonClick(evt: Event): void {\n evt.stopPropagation();\n this._adapter.emitHostEvent(PROFILE_CARD_CONSTANTS.events.PROFILE);\n }\n\n private _onSignOutButtonClick(evt: Event): void {\n evt.stopPropagation();\n this._adapter.emitHostEvent(PROFILE_CARD_CONSTANTS.events.SIGN_OUT);\n }\n\n public get fullName(): string {\n return this._fullName;\n }\n public set fullName(value: string) {\n if (this._fullName !== value) {\n this._fullName = value;\n this._adapter.setFullName(this._fullName);\n }\n }\n\n public get email(): string {\n return this._email;\n }\n public set email(value: string) {\n if (this._email !== value) {\n this._email = value;\n this._adapter.setEmail(this._email);\n }\n }\n\n public get avatarText(): string {\n return this._avatarText;\n }\n public set avatarText(value: string) {\n if (this._avatarText !== value) {\n this._avatarText = value;\n this._adapter.setAvatarText(this._avatarText);\n }\n }\n\n public get avatarIcon(): string {\n return this._avatarIcon;\n }\n public set avatarIcon(value: string) {\n if (this._avatarIcon !== value) {\n this._avatarIcon = value;\n this._adapter.setAvatarIcon(this._avatarIcon);\n }\n }\n\n public get avatarImageUrl(): string {\n return this._avatarImageUrl;\n }\n public set avatarImageUrl(value: string) {\n if (this._avatarImageUrl !== value) {\n this._avatarImageUrl = value;\n this._adapter.setAvatarImageUrl(this._avatarImageUrl);\n }\n }\n\n public get avatarLetterCount(): number {\n return this._avatarLetterCount;\n }\n public set avatarLetterCount(value: number) {\n if (this._avatarLetterCount !== value) {\n this._avatarLetterCount = value;\n this._adapter.setAvatarLetterCount(this._avatarLetterCount);\n }\n }\n\n public get signOut(): boolean {\n return this._showSignOutButton;\n }\n public set signOut(value: boolean) {\n if (this._showSignOutButton !== value) {\n this._showSignOutButton = value;\n this._setActionVisibility();\n }\n }\n\n public get profile(): boolean {\n return this._showProfileButton;\n }\n public set profile(value: boolean) {\n if (this._showProfileButton !== value) {\n this._showProfileButton = value;\n this._setActionVisibility();\n }\n }\n\n public get signOutText(): string {\n return this._signOutButtonText;\n }\n public set signOutText(value: string) {\n if (this._signOutButtonText !== value) {\n this._signOutButtonText = value || PROFILE_CARD_CONSTANTS.defaults.SIGN_OUT_BUTTON_TEXT;\n this._adapter.setSignOutButtonText(this._signOutButtonText);\n }\n }\n\n public get profileText(): string {\n return this._profileButtonText;\n }\n public set profileText(value: string) {\n if (this._profileButtonText !== value) {\n this._profileButtonText = value || PROFILE_CARD_CONSTANTS.defaults.PROFILE_BUTTON_TEXT;\n this._adapter.setProfileButtonText(this._profileButtonText);\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceBoolean, coerceNumber, FoundationProperty } from '@tylertech/forge-core';\nimport { ProfileCardAdapter } from './profile-card-adapter';\nimport { ProfileCardFoundation } from './profile-card-foundation';\nimport { PROFILE_CARD_CONSTANTS } from './profile-card-constants';\nimport { ButtonComponent } from '../button';\nimport { AvatarComponent } from '../avatar';\nimport { ToolbarComponent } from '../toolbar';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-profile-card\\\" part=\\\"root\\\"><div class=\\\"forge-profile-card__info\\\" part=\\\"info-container\\\"><div class=\\\"forge-profile-card__info-avatar\\\" part=\\\"avatar-container\\\"><forge-avatar part=\\\"avatar\\\"></forge-avatar></div><div class=\\\"forge-profile-card__info-text\\\" part=\\\"info-text\\\"><div class=\\\"forge-profile-card__full-name\\\" part=\\\"name\\\"></div><div class=\\\"forge-profile-card__email\\\" part=\\\"email\\\"></div></div></div><slot></slot><forge-toolbar inverted id=\\\"action-toolbar\\\" part=\\\"footer\\\"><forge-button variant=\\\"outlined\\\" slot=\\\"end\\\" style=\\\"margin-right: 8px;\\\" part=\\\"profile-button\\\" aria-label=\\\"View profile\\\" id=\\\"profile-button\\\">Profile</forge-button><forge-button slot=\\\"end\\\" part=\\\"sign-out-button\\\" id=\\\"sign-out-button\\\" aria-label=\\\"Sign out\\\">Sign out</forge-button></forge-toolbar></div></template>';\nconst styles = '@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.mdc-ripple-surface::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-profile-card{min-width:360px;border-radius:4px}@media (max-width:399px){.forge-profile-card{width:100vw;min-width:unset;overflow:auto}}.forge-profile-card__info{padding:8px 16px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.forge-profile-card__info-avatar{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:8px;margin-right:16px;--forge-avatar-size:56px}.forge-profile-card__info-text{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start}.forge-profile-card__full-name{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1rem;font-size:var(--forge-typography-subtitle1-secondary-font-size, 1rem);line-height:1.75rem;line-height:var(--forge-typography-subtitle1-secondary-line-height, 1.75rem);font-weight:500;font-weight:var(--forge-typography-subtitle1-secondary-font-weight,500);letter-spacing:.01em;letter-spacing:var(--forge-typography-subtitle1-secondary-letter-spacing, .01em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle1-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle1-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle1-secondary-text-transform,inherit);line-height:1.25rem}.forge-profile-card__email{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-subtitle2-font-size, .875rem);line-height:1.375rem;line-height:var(--mdc-typography-subtitle2-line-height, 1.375rem);font-weight:500;font-weight:var(--mdc-typography-subtitle2-font-weight,500);letter-spacing:.0071428571em;letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, .0071428571em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle2-text-transform,inherit);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}forge-toolbar#action-toolbar::part(root){border-bottom-left-radius:4px;border-bottom-right-radius:4px}:host{display:inline}:host([hidden]){display:none}forge-toolbar{--mdc-theme-surface:var(--forge-theme-elevated-surface)}';\n\nexport interface IProfileCardComponent extends IBaseComponent {\n fullName: string;\n email: string;\n signOut: boolean;\n profile: boolean;\n signOutText: string;\n profileText: string;\n avatarText: string;\n avatarIcon: string;\n avatarImageUrl: string;\n avatarLetterCount: number;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-profile-card': IProfileCardComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-profile-card-sign-out': CustomEvent<void>;\n 'forge-profile-card-profile': CustomEvent<void>;\n }\n}\n\n/**\n * The web component class behind the `<forge-profile-card>` custom element.\n * \n * @tag forge-profile-card\n */\n@CustomElement({\n name: PROFILE_CARD_CONSTANTS.elementName,\n dependencies: [\n ToolbarComponent,\n ButtonComponent,\n AvatarComponent\n ]\n})\nexport class ProfileCardComponent extends BaseComponent implements IProfileCardComponent {\n public static get observedAttributes(): string[] {\n return [\n PROFILE_CARD_CONSTANTS.attributes.FULL_NAME,\n PROFILE_CARD_CONSTANTS.attributes.EMAIL,\n PROFILE_CARD_CONSTANTS.attributes.SIGN_OUT,\n PROFILE_CARD_CONSTANTS.attributes.PROFILE,\n PROFILE_CARD_CONSTANTS.attributes.SIGN_OUT_TEXT,\n PROFILE_CARD_CONSTANTS.attributes.PROFILE_TEXT,\n PROFILE_CARD_CONSTANTS.attributes.AVATAR_TEXT,\n PROFILE_CARD_CONSTANTS.attributes.AVATAR_ICON,\n PROFILE_CARD_CONSTANTS.attributes.AVATAR_IMAGE_URL,\n PROFILE_CARD_CONSTANTS.attributes.AVATAR_LETTER_COUNT\n ];\n }\n\n private _foundation: ProfileCardFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ProfileCardFoundation(new ProfileCardAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case PROFILE_CARD_CONSTANTS.attributes.FULL_NAME:\n this.fullName = newValue;\n break;\n case PROFILE_CARD_CONSTANTS.attributes.EMAIL:\n this.email = newValue;\n break;\n case PROFILE_CARD_CONSTANTS.attributes.SIGN_OUT:\n this.signOut = coerceBoolean(PROFILE_CARD_CONSTANTS.attributes.SIGN_OUT);\n break;\n case PROFILE_CARD_CONSTANTS.attributes.PROFILE:\n this.profile = coerceBoolean(PROFILE_CARD_CONSTANTS.attributes.PROFILE);\n break;\n case PROFILE_CARD_CONSTANTS.attributes.SIGN_OUT_TEXT:\n this.signOutText = PROFILE_CARD_CONSTANTS.attributes.SIGN_OUT_TEXT;\n break;\n case PROFILE_CARD_CONSTANTS.attributes.PROFILE_TEXT:\n this.profileText = PROFILE_CARD_CONSTANTS.attributes.PROFILE_TEXT;\n break;\n case PROFILE_CARD_CONSTANTS.attributes.AVATAR_TEXT:\n this.avatarText = newValue;\n break;\n case PROFILE_CARD_CONSTANTS.attributes.AVATAR_ICON:\n this.avatarIcon = newValue;\n break;\n case PROFILE_CARD_CONSTANTS.attributes.AVATAR_IMAGE_URL:\n this.avatarImageUrl = newValue;\n break;\n case PROFILE_CARD_CONSTANTS.attributes.AVATAR_LETTER_COUNT:\n this.avatarLetterCount = coerceNumber(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public declare fullName: string;\n\n @FoundationProperty()\n public declare email: string;\n\n @FoundationProperty()\n public declare signOut: boolean;\n\n @FoundationProperty()\n public declare profile: boolean;\n\n @FoundationProperty()\n public declare signOutText: string;\n\n @FoundationProperty()\n public declare profileText: string;\n\n @FoundationProperty()\n public declare avatarText: string;\n\n @FoundationProperty()\n public declare avatarIcon: string;\n\n @FoundationProperty()\n public declare avatarImageUrl: string;\n\n @FoundationProperty()\n public declare avatarLetterCount: number;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { ProfileCardComponent } from './profile-card';\n\nexport * from './profile-card-adapter';\nexport * from './profile-card-constants';\nexport * from './profile-card-foundation';\nexport * from './profile-card';\n\nexport function defineProfileCardComponent(): void {\n defineCustomElement(ProfileCardComponent);\n}\n"],
|
|
5
|
-
"mappings": "2dAEA,IAAMA,EAA2C,GAAGC,gBAE9CC,EAAa,CACjB,UAAW,YACX,MAAO,QACP,SAAU,WACV,QAAS,UACT,cAAe,gBACf,aAAc,eACd,YAAa,cACb,YAAa,cACb,iBAAkB,mBAClB,oBAAqB,qBACvB,EAEMC,EAAY,CAChB,UAAW,iCACX,MAAO,6BACP,OAAQ,kDACR,eAAgB,kBAChB,eAAgB,kBAChB,gBAAiB,kBACnB,EAEMC,EAAW,CACf,qBAAsB,GACtB,oBAAqB,GACrB,qBAAsB,WACtB,oBAAqB,SACvB,EAEMC,EAAS,CACb,SAAU,GAAGL,aACb,QAAS,GAAGA,WACd,EAEaM,EAAyB,CACpC,YAAAN,EACA,WAAAE,EACA,UAAAC,EACA,SAAAC,EACA,OAAAC,CACF,ECfO,IAAME,EAAN,cAAiCC,CAAkE,CAQxG,YAAYC,EAAkC,CAC5C,MAAMA,CAAS,EACf,KAAK,iBAAmBC,EAAiBD,EAAWE,EAAuB,UAAU,SAAS,EAC9F,KAAK,cAAgBD,EAAiBD,EAAWE,EAAuB,UAAU,KAAK,EACvF,KAAK,eAAiBD,EAAiBD,EAAWE,EAAuB,UAAU,MAAM,EACzF,KAAK,eAAiBD,EAAiBD,EAAWE,EAAuB,UAAU,cAAc,EACjG,KAAK,eAAiBD,EAAiBD,EAAWE,EAAuB,UAAU,cAAc,EACjG,KAAK,eAAiBD,EAAiBD,EAAWE,EAAuB,UAAU,eAAe,CACpG,CAEO,YAAYC,EAAqB,CACtC,KAAK,WAAW,aAAaD,EAAuB,WAAW,UAAWC,CAAK,EAC/E,KAAK,iBAAiB,YAAcA,CACtC,CAEO,SAASA,EAAqB,CACnC,KAAK,WAAW,aAAaD,EAAuB,WAAW,MAAOC,CAAK,EAC3E,KAAK,cAAc,YAAcA,CACnC,CAEO,cAAcA,EAAqB,CACxC,KAAK,WAAW,aAAaD,EAAuB,WAAW,YAAaC,CAAK,EACjF,KAAK,eAAe,KAAOA,EAC3BC,EAAkB,KAAK,cAAc,CACvC,CAEO,cAAcD,EAAqB,CACxC,GAAIA,EAAO,CACT,IAAME,EAAe,IAAIC,EAAsB,CAAE,MAAO,CAAE,KAAMH,CAAM,CAAC,CAAC,EACxE,KAAK,eAAe,gBAAgBE,EAAa,OAAO,OAExDD,EAAkB,KAAK,cAAc,CAEzC,CAEO,kBAAkBD,EAAqB,CAC5C,KAAK,WAAW,aAAaD,EAAuB,WAAW,iBAAkBC,CAAK,EACtF,KAAK,eAAe,SAAWA,CACjC,CAEO,qBAAqBI,EAAqB,CAC/C,KAAK,WAAW,aAAaL,EAAuB,WAAW,oBAAqB,OAAOK,CAAK,CAAC,EACjG,KAAK,eAAe,YAAcA,CACpC,CAEO,2BAA2BC,EAA0B,CACtDA,EACF,KAAK,eAAe,MAAM,eAAe,SAAS,EAElD,KAAK,eAAe,MAAM,QAAU,MAExC,CAEO,2BAA2BA,EAA0B,CACtDA,EACF,KAAK,eAAe,MAAM,eAAe,SAAS,EAElD,KAAK,eAAe,MAAM,QAAU,MAExC,CAEO,2BAA2BA,EAA0B,CACtDA,EACF,KAAK,eAAe,MAAM,eAAe,SAAS,EAElD,KAAK,eAAe,MAAM,QAAU,MAExC,CAEO,qBAAqBL,EAAqB,CAC/C,KAAK,eAAe,YAAcA,CACpC,CAEO,qBAAqBA,EAAqB,CAC/C,KAAK,eAAe,YAAcA,CACpC,CAEO,yBAAyBM,EAAsC,CACpE,KAAK,eAAe,iBAAiB,QAASA,CAAQ,CACxD,CAEO,yBAAyBA,EAAsC,CACpE,KAAK,eAAe,iBAAiB,QAASA,CAAQ,CACxD,CAEO,4BAA4BA,EAAsC,CACvE,KAAK,eAAe,oBAAoB,QAASA,CAAQ,CAC3D,CAEO,4BAA4BA,EAAsC,CACvE,KAAK,eAAe,oBAAoB,QAASA,CAAQ,CAC3D,CAEO,2BAAkC,CACvC,OAAO,sBAAsB,IAAM,KAAK,eAAe,MAAM,CAAC,CAChE,CAEO,2BAAkC,CACvC,OAAO,sBAAsB,IAAM,KAAK,eAAe,MAAM,CAAC,CAChE,CACF,ECzHO,IAAMC,EAAN,KAA8D,CAcnE,YAAoBC,EAA+B,CAA/B,cAAAA,EAPpB,KAAQ,mBAAqBC,EAAuB,SAAS,qBAC7D,KAAQ,mBAAqBA,EAAuB,SAAS,oBAC7D,KAAQ,mBAAqBA,EAAuB,SAAS,qBAC7D,KAAQ,mBAAqBA,EAAuB,SAAS,oBAK3D,KAAK,iBAAmBC,GAAO,KAAK,sBAAsBA,CAAG,EAC7D,KAAK,iBAAmBA,GAAO,KAAK,sBAAsBA,CAAG,CAC/D,CAEO,YAAmB,CACxB,KAAK,SAAS,yBAAyB,KAAK,gBAAgB,EAC5D,KAAK,SAAS,yBAAyB,KAAK,gBAAgB,GAExD,KAAK,oBAAsB,KAAK,qBAClC,KAAK,qBAAqB,EAG5B,KAAK,qBAAqB,EAC1B,KAAK,SAAS,qBAAqB,KAAK,kBAAkB,EAC1D,KAAK,SAAS,qBAAqB,KAAK,kBAAkB,CAC5D,CAEQ,sBAA6B,CAC/B,KAAK,mBACP,KAAK,SAAS,0BAA0B,EAC/B,KAAK,oBACd,KAAK,SAAS,0BAA0B,CAE5C,CAEQ,sBAA6B,CACnC,IAAMC,EAAoB,KAAK,oBAAsB,KAAK,mBAC1D,KAAK,SAAS,2BAA2BA,CAAiB,EAC1D,KAAK,SAAS,2BAA2B,KAAK,kBAAkB,EAChE,KAAK,SAAS,2BAA2B,KAAK,kBAAkB,CAClE,CAEQ,sBAAsBD,EAAkB,CAC9CA,EAAI,gBAAgB,EACpB,KAAK,SAAS,cAAcD,EAAuB,OAAO,OAAO,CACnE,CAEQ,sBAAsBC,EAAkB,CAC9CA,EAAI,gBAAgB,EACpB,KAAK,SAAS,cAAcD,EAAuB,OAAO,QAAQ,CACpE,CAEA,IAAW,UAAmB,CAC5B,OAAO,KAAK,SACd,CACA,IAAW,SAASG,EAAe,CAC7B,KAAK,YAAcA,IACrB,KAAK,UAAYA,EACjB,KAAK,SAAS,YAAY,KAAK,SAAS,EAE5C,CAEA,IAAW,OAAgB,CACzB,OAAO,KAAK,MACd,CACA,IAAW,MAAMA,EAAe,CAC1B,KAAK,SAAWA,IAClB,KAAK,OAASA,EACd,KAAK,SAAS,SAAS,KAAK,MAAM,EAEtC,CAEA,IAAW,YAAqB,CAC9B,OAAO,KAAK,WACd,CACA,IAAW,WAAWA,EAAe,CAC/B,KAAK,cAAgBA,IACvB,KAAK,YAAcA,EACnB,KAAK,SAAS,cAAc,KAAK,WAAW,EAEhD,CAEA,IAAW,YAAqB,CAC9B,OAAO,KAAK,WACd,CACA,IAAW,WAAWA,EAAe,CAC/B,KAAK,cAAgBA,IACvB,KAAK,YAAcA,EACnB,KAAK,SAAS,cAAc,KAAK,WAAW,EAEhD,CAEA,IAAW,gBAAyB,CAClC,OAAO,KAAK,eACd,CACA,IAAW,eAAeA,EAAe,CACnC,KAAK,kBAAoBA,IAC3B,KAAK,gBAAkBA,EACvB,KAAK,SAAS,kBAAkB,KAAK,eAAe,EAExD,CAEA,IAAW,mBAA4B,CACrC,OAAO,KAAK,kBACd,CACA,IAAW,kBAAkBA,EAAe,CACtC,KAAK,qBAAuBA,IAC9B,KAAK,mBAAqBA,EAC1B,KAAK,SAAS,qBAAqB,KAAK,kBAAkB,EAE9D,CAEA,IAAW,SAAmB,CAC5B,OAAO,KAAK,kBACd,CACA,IAAW,QAAQA,EAAgB,CAC7B,KAAK,qBAAuBA,IAC9B,KAAK,mBAAqBA,EAC1B,KAAK,qBAAqB,EAE9B,CAEA,IAAW,SAAmB,CAC5B,OAAO,KAAK,kBACd,CACA,IAAW,QAAQA,EAAgB,CAC7B,KAAK,qBAAuBA,IAC9B,KAAK,mBAAqBA,EAC1B,KAAK,qBAAqB,EAE9B,CAEA,IAAW,aAAsB,CAC/B,OAAO,KAAK,kBACd,CACA,IAAW,YAAYA,EAAe,CAChC,KAAK,qBAAuBA,IAC9B,KAAK,mBAAqBA,GAASH,EAAuB,SAAS,qBACnE,KAAK,SAAS,qBAAqB,KAAK,kBAAkB,EAE9D,CAEA,IAAW,aAAsB,CAC/B,OAAO,KAAK,kBACd,CACA,IAAW,YAAYG,EAAe,CAChC,KAAK,qBAAuBA,IAC9B,KAAK,mBAAqBA,GAASH,EAAuB,SAAS,oBACnE,KAAK,SAAS,qBAAqB,KAAK,kBAAkB,EAE9D,CACF,ECnKA,IAAMI,EAAW,qyBACXC,EAAS,imQAuCFC,EAAN,cAAmCC,CAA+C,CAkBvF,aAAc,CACZ,MAAM,EACNC,EAAqB,KAAMJ,EAAUC,CAAM,EAC3C,KAAK,YAAc,IAAII,EAAsB,IAAIC,EAAmB,IAAI,CAAC,CAC3E,CArBA,WAAkB,oBAA+B,CAC/C,MAAO,CACLC,EAAuB,WAAW,UAClCA,EAAuB,WAAW,MAClCA,EAAuB,WAAW,SAClCA,EAAuB,WAAW,QAClCA,EAAuB,WAAW,cAClCA,EAAuB,WAAW,aAClCA,EAAuB,WAAW,YAClCA,EAAuB,WAAW,YAClCA,EAAuB,WAAW,iBAClCA,EAAuB,WAAW,mBACpC,CACF,CAUO,mBAA0B,CAC/B,KAAK,YAAY,WAAW,CAC9B,CAEO,yBAAyBC,EAAcC,EAAkBC,EAAwB,CACtF,OAAQF,EAAM,CACZ,KAAKD,EAAuB,WAAW,UACrC,KAAK,SAAWG,EAChB,MACF,KAAKH,EAAuB,WAAW,MACrC,KAAK,MAAQG,EACb,MACF,KAAKH,EAAuB,WAAW,SACrC,KAAK,QAAUI,EAAcJ,EAAuB,WAAW,QAAQ,EACvE,MACF,KAAKA,EAAuB,WAAW,QACrC,KAAK,QAAUI,EAAcJ,EAAuB,WAAW,OAAO,EACtE,MACF,KAAKA,EAAuB,WAAW,cACrC,KAAK,YAAcA,EAAuB,WAAW,cACrD,MACF,KAAKA,EAAuB,WAAW,aACrC,KAAK,YAAcA,EAAuB,WAAW,aACrD,MACF,KAAKA,EAAuB,WAAW,YACrC,KAAK,WAAaG,EAClB,MACF,KAAKH,EAAuB,WAAW,YACrC,KAAK,WAAaG,EAClB,MACF,KAAKH,EAAuB,WAAW,iBACrC,KAAK,eAAiBG,EACtB,MACF,KAAKH,EAAuB,WAAW,oBACrC,KAAK,kBAAoBK,EAAaF,CAAQ,EAC9C,KACJ,CACF,CA+BF,EA5BiBG,EAAA,CADdC,EAAmB,GA/DTZ,EAgEI,wBAGAW,EAAA,CADdC,EAAmB,GAlETZ,EAmEI,qBAGAW,EAAA,CADdC,EAAmB,GArETZ,EAsEI,uBAGAW,EAAA,CADdC,EAAmB,GAxETZ,EAyEI,uBAGAW,EAAA,CADdC,EAAmB,GA3ETZ,EA4EI,2BAGAW,EAAA,CADdC,EAAmB,GA9ETZ,EA+EI,2BAGAW,EAAA,CADdC,EAAmB,GAjFTZ,EAkFI,0BAGAW,EAAA,CADdC,EAAmB,GApFTZ,EAqFI,0BAGAW,EAAA,CADdC,EAAmB,GAvFTZ,EAwFI,8BAGAW,EAAA,CADdC,EAAmB,GA1FTZ,EA2FI,iCA3FJA,EAANW,EAAA,CARNE,EAAc,CACb,KAAMR,EAAuB,YAC7B,aAAc,CACZS,EACAC,EACAC,CACF,CACF,CAAC,GACYhB,GCxCN,SAASiB,IAAmC,CACjDC,EAAoBC,CAAoB,CAC1C",
|
|
6
|
-
"names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "selectors", "defaults", "events", "PROFILE_CARD_CONSTANTS", "ProfileCardAdapter", "BaseAdapter", "component", "getShadowElement", "PROFILE_CARD_CONSTANTS", "value", "removeAllChildren", "iconDelegate", "IconComponentDelegate", "count", "isVisible", "listener", "ProfileCardFoundation", "_adapter", "PROFILE_CARD_CONSTANTS", "evt", "showActionToolbar", "value", "template", "styles", "ProfileCardComponent", "BaseComponent", "attachShadowTemplate", "ProfileCardFoundation", "ProfileCardAdapter", "PROFILE_CARD_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "coerceNumber", "__decorateClass", "FoundationProperty", "CustomElement", "ToolbarComponent", "ButtonComponent", "AvatarComponent", "defineProfileCardComponent", "defineCustomElement", "ProfileCardComponent"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
-
* License: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import{b as I}from"./chunk.OWZREAT6.js";import{b as L}from"./chunk.STB2FEUA.js";import{c as v}from"./chunk.FYWPZFLJ.js";import{h as E,l as A,o as T}from"./chunk.LUIKMPQR.js";import{a as y}from"./chunk.VFKHRAWD.js";import{a as f}from"./chunk.HSI7B43D.js";import{a}from"./chunk.NVUMRW44.js";import{f as c,g as _}from"./chunk.36F2GVWS.js";import{f as h}from"./chunk.JAWV5Y5T.js";import{u as m}from"./chunk.K7FPXAFS.js";import{k as p}from"./chunk.J2M2MXP2.js";import{a as g,d as s}from"./chunk.M3QDAYD2.js";var k={TYPE:"type",DISABLED:"disabled",POPOVER_ICON:"popover-icon",ANCHOR:"anchor",HREF:"href",TARGET:"target",DOWNLOAD:"download",REL:"rel",DENSE:"dense",TABINDEX:"tabindex"},P=g({},k),B={ROOT:"forge-button",POPOVER_ICON:"forge-button__popover-icon"},H={ROOT:"[part=root]",END_SLOT:"slot[name=end]"},i={observedAttributes:k,attributes:P,selectors:H,classes:B};var n=class extends I{constructor(){super();this[c]=this.attachInternals()}connectedCallback(){super.connectedCallback(),this._foundation.initialize()}attributeChangedCallback(t,r,o){switch(t){case i.observedAttributes.TYPE:this.type=o;break;case i.observedAttributes.DISABLED:this.disabled=p(o);break;case i.observedAttributes.POPOVER_ICON:this.popoverIcon=p(o);break;case i.observedAttributes.ANCHOR:this.anchor=p(o);break;case i.observedAttributes.HREF:this.href=o;break;case i.observedAttributes.TARGET:this.target=o;break;case i.observedAttributes.DOWNLOAD:this.download=o;break;case i.observedAttributes.REL:this.rel=o;break;case i.observedAttributes.DENSE:this.dense=p(o);break}super.attributeChangedCallback(t,r,o)}labelClickedCallback(){this._foundation.click({animateStateLayer:!0})}labelChangedCallback(t){this._foundation.proxyLabel(t)}get form(){return this[c].form}get name(){var t;return(t=this.getAttribute("name"))!=null?t:""}set name(t){this.setAttribute("name",t)}get value(){var t;return(t=this.getAttribute("value"))!=null?t:""}set value(t){this.setAttribute("value",t)}click(){this._foundation.click({animateStateLayer:!0})}};c,n.formAssociated=!0,s([a()],n.prototype,"type",2),s([a()],n.prototype,"disabled",2),s([a()],n.prototype,"popoverIcon",2),s([a()],n.prototype,"anchor",2),s([a()],n.prototype,"href",2),s([a()],n.prototype,"target",2),s([a()],n.prototype,"download",2),s([a()],n.prototype,"rel",2),s([a()],n.prototype,"dense",2);var S=class{constructor(e){this._adapter=e;this._type="button";this._disabled=!1;this._popoverIcon=!1;this._anchor=!1;this._href="";this._target="";this._download="";this._rel="";this._dense=!1;this._clickListener=t=>this._onClick(t),this._keydownListener=t=>this._onKeydown(t),this._anchorFocusListener=()=>this._adapter.focusHost(),this._adapter.addHostListener("keydown",this._keydownListener)}initialize(){this._adapter.initialize(),this._anchor?this._adapter.addAnchorEventListener("focus",this._anchorFocusListener):this._adapter.addHostListener("click",this._clickListener)}click({animateStateLayer:e=!1}={}){this._disabled||(this._anchor?this._adapter.clickAnchor():this._adapter.clickHost(),e&&this._adapter.animateStateLayer())}proxyLabel(e){this._adapter.proxyLabel(e)}async _onClick(e){let t=this._type==="submit"||this._type==="reset";!t&&this._adapter.hasPopoverTarget()&&this._adapter.managePopover()||(await new Promise(r=>setTimeout(r)),!(e.defaultPrevented||this._disabled)&&t&&this._adapter.clickFormButton(this._type))}async _onKeydown(e){if(e.key===" "&&!this._anchor){e.preventDefault(),this.click();return}await new Promise(t=>setTimeout(t)),!(e.defaultPrevented||this._disabled)&&e.key==="Enter"&&(this._anchor?this._adapter.clickAnchor():this.click())}_toggleAnchor(){this._anchor?(this._adapter.initializeAnchor(),this._manageAnchorListeners(),this.disabled=!1):(this._adapter.removeAnchor(),this._manageAnchorListeners())}_manageAnchorListeners(){this._anchor?(this._adapter.removeHostListener("click",this._clickListener),this._adapter.addAnchorEventListener("focus",this._anchorFocusListener)):(this._adapter.addHostListener("click",this._clickListener),this._adapter.removeAnchorEventListener("focus",this._anchorFocusListener))}get type(){return this._type}set type(e){this._type!==e&&(this._type=e,this._adapter.setHostAttribute(i.attributes.TYPE,e))}get disabled(){return this._disabled}set disabled(e){this._anchor&&(this._disabled&&this._adapter.syncDisabled(!1),e=!1),e=!!e,this._disabled!==e&&(this._disabled=e,this._adapter.setDisabled(this._disabled),this._adapter.toggleHostAttribute(i.attributes.DISABLED,e))}get popoverIcon(){return this._popoverIcon}set popoverIcon(e){e=!!e,this._popoverIcon!==e&&(this._popoverIcon=e,this._adapter.toggleDefaultPopoverIcon(this._popoverIcon),this._adapter.toggleHostAttribute(i.attributes.POPOVER_ICON,e))}get anchor(){return this._anchor}set anchor(e){e=!!e,this._anchor!==e&&(this._anchor=e,this._toggleAnchor(),this._adapter.toggleHostAttribute(i.attributes.ANCHOR,e))}get href(){return this._href}set href(e){e=(e!=null?e:"").trim(),this._href!==e&&(this._href=e,this.anchor=this._href.length>0,this._anchor&&this._adapter.setAnchorHref(this._href),this._adapter.toggleHostAttribute(i.attributes.HREF,!!this._href,this._href))}get target(){return this._target}set target(e){this._target!==e&&(this._target=e!=null?e:"_self",this._adapter.setAnchorTarget(e),this._adapter.toggleHostAttribute(i.attributes.TARGET,!!this._target,this._target))}get download(){return this._download}set download(e){this._download!==e&&(this._download=e,this._adapter.setAnchorDownload(this._download),this._adapter.toggleHostAttribute(i.attributes.DOWNLOAD,!!this._download,this._download))}get rel(){return this._rel}set rel(e){this._rel!==e&&(this._rel=e,this._adapter.setAnchorRel(this._rel),this._adapter.toggleHostAttribute(i.attributes.REL,!!this._rel,this._rel))}get dense(){return this._dense}set dense(e){e=!!e,this._dense!==e&&(this._dense=e,this._adapter.toggleHostAttribute(i.attributes.DENSE,e))}};var O=class extends f{constructor(t){super(t);this._rootElement=h(this._component,i.selectors.ROOT),this._focusIndicatorElement=h(this._component,L.elementName),this._stateLayerElement=h(this._component,y.elementName),this._endSlotElement=h(this._component,i.selectors.END_SLOT)}initialize(){this._applyHostSemantics()}initializeAnchor(){this._anchorElement=this._createAnchorRootElement(),this._rootElement.insertAdjacentElement("afterend",this._anchorElement),this._applyHostSemantics()}removeAnchor(){var t;(t=this._anchorElement)==null||t.remove(),this._anchorElement=void 0,this._applyHostSemantics()}setAnchorHref(t){this._anchorElement&&(this._anchorElement.href=t)}setAnchorTarget(t){this._anchorElement&&(this._anchorElement.target=t)}setAnchorDownload(t){this._anchorElement&&(this._anchorElement.download=t)}setAnchorRel(t){this._anchorElement&&(this._anchorElement.rel=t)}setDisabled(t){this._anchorElement||this.syncDisabled(t)}syncDisabled(t){t?(this._focusIndicatorElement.remove(),this._stateLayerElement.remove()):this._rootElement.append(this._focusIndicatorElement,this._stateLayerElement),this._component[_]=!t,m(this._component,t,"aria-disabled","true")}clickAnchor(){var t;(t=this._anchorElement)==null||t.click()}clickHost(){HTMLElement.prototype.click.call(this._component)}clickFormButton(t){var r;if(this._component.form)if(t==="submit"){this._component[c].setFormValue(this._component.value);let o=document.createElement("button");o.type=t,T(this._component,o,A),this._component.form.addEventListener("submit",l=>{Object.defineProperty(l,"submitter",{configurable:!0,enumerable:!0,get:()=>this._component})},{capture:!0,once:!0}),this._component.insertAdjacentElement("afterend",o),o.click(),o.remove()}else t==="reset"&&((r=this._component.form)==null||r.reset())}addAnchorEventListener(t,r){this._rootElement.addEventListener(t,r)}removeAnchorEventListener(t,r){this._rootElement.removeEventListener(t,r)}hasPopoverTarget(){return this._component.hasAttribute("popovertarget")||!!this._component.popoverTargetElement}managePopover(){if(this._component.form||!this.hasPopoverTarget()||!E())return!1;let t=this._locatePopoverTargetElement();if(!t)return!1;let r=this._component.getAttribute("popovertargetaction")||"toggle",o=t.matches(":popover-open");switch(r){case"show":return o||t.showPopover(),!0;case"hide":return o&&t.hidePopover(),!1;case"toggle":default:let l=t.togglePopover();if(l&&t.popover!=="manual"){let u=d=>{d.stopPropagation(),t.matches(":popover-open")&&t.hidePopover()};this._component.addEventListener("click",u,{capture:!0,once:!0}),t.addEventListener("beforetoggle",async()=>{await new Promise(d=>setTimeout(d)),this._component.removeEventListener("click",u,{capture:!0})},{once:!0})}return l}}toggleDefaultPopoverIcon(t){if(t){if(!this._endSlotElement.querySelector("forge-icon")){let o=document.createElement("forge-icon");o.classList.add(i.classes.POPOVER_ICON),o.name=v.name,this._endSlotElement.append(o)}}else{let r=this._endSlotElement.querySelector("forge-icon");r==null||r.remove()}}animateStateLayer(){var t;this._stateLayerElement.disabled||(t=this._stateLayerElement)==null||t.playAnimation()}proxyLabel(t){var o;this._labelAwareText=t!=null?t:void 0;let r=this._component.hasAttribute("aria-label")||!!this._labelAwareText;m(this._component,r,"aria-label",(o=this._component.getAttribute("aria-label"))!=null?o:this._labelAwareText)}_locatePopoverTargetElement(){var r;let t=(r=this._component.popoverTargetElement)!=null?r:null;if(!t){let o=this._component.ownerDocument.getRootNode();if(!o)return null;let l=this._component.getAttribute("popovertarget");t=o.querySelector(`#${l}`)}return t}_applyHostSemantics(){let t=this._component.getAttribute("role");(!t||["button","link"].includes(t))&&(this._component.role=this._anchorElement?"link":"button"),this._component[_]=this._anchorElement||!this._component.disabled}_createAnchorRootElement(){let t=document.createElement("a");return t.setAttribute("aria-hidden","true"),t.tabIndex=-1,this._component.href&&(t.href=this._component.href),this._component.target&&(t.target=this._component.target),this._component.download&&(t.download=this._component.download),this._component.rel&&(t.rel=this._component.rel),t}};export{i as a,n as b,S as c,O as d};
|
|
7
|
-
//# sourceMappingURL=chunk.4YFJVHXN.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/button/base/base-button-constants.ts", "../../src/button/base/base-button.ts", "../../src/button/base/base-button-foundation.ts", "../../src/button/base/base-button-adapter.ts"],
|
|
4
|
-
"sourcesContent": ["const observedAttributes = {\n TYPE: 'type',\n DISABLED: 'disabled',\n POPOVER_ICON: 'popover-icon',\n ANCHOR: 'anchor',\n HREF: 'href',\n TARGET: 'target',\n DOWNLOAD: 'download',\n REL: 'rel',\n DENSE: 'dense',\n TABINDEX: 'tabindex'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nconst classes = {\n ROOT: 'forge-button',\n POPOVER_ICON: 'forge-button__popover-icon'\n};\n\nconst selectors = {\n ROOT:'[part=root]',\n END_SLOT: 'slot[name=end]'\n};\n\nexport const BASE_BUTTON_CONSTANTS = {\n observedAttributes,\n attributes,\n selectors,\n classes\n};\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonTarget = '_blank' | '_self' | '_parent' | '_top';\n", "import { coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseFocusableComponent } from '../../core/base/base-focusable-component';\nimport { internals } from '../../constants';\nimport { IBaseComponent } from '../../core/base/base-component';\nimport { IBaseButtonAdapter } from './base-button-adapter';\nimport { BASE_BUTTON_CONSTANTS, ButtonType } from './base-button-constants';\nimport { BaseButtonFoundation } from './base-button-foundation';\nimport { ILabelAware } from '../../label/label-aware';\n\nexport interface IBaseButton extends IBaseComponent {\n type: ButtonType;\n disabled: boolean;\n popoverIcon: boolean;\n name: string;\n value: string;\n dense: boolean;\n anchor: boolean;\n href: string;\n target: string;\n download: string;\n rel: string;\n form: HTMLFormElement | null;\n}\n\nexport abstract class BaseButton<T extends BaseButtonFoundation<IBaseButtonAdapter>> extends BaseFocusableComponent implements IBaseButton, ILabelAware {\n public static readonly formAssociated = true;\n\n public [internals]: ElementInternals;\n\n protected abstract _foundation: T;\n\n constructor() {\n super();\n this[internals] = this.attachInternals();\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._foundation.initialize();\n }\n\n public override attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case BASE_BUTTON_CONSTANTS.observedAttributes.TYPE:\n this.type = newValue as ButtonType;\n break;\n case BASE_BUTTON_CONSTANTS.observedAttributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case BASE_BUTTON_CONSTANTS.observedAttributes.POPOVER_ICON:\n this.popoverIcon = coerceBoolean(newValue);\n break;\n case BASE_BUTTON_CONSTANTS.observedAttributes.ANCHOR:\n this.anchor = coerceBoolean(newValue);\n break;\n case BASE_BUTTON_CONSTANTS.observedAttributes.HREF:\n this.href = newValue;\n break;\n case BASE_BUTTON_CONSTANTS.observedAttributes.TARGET:\n this.target = newValue;\n break;\n case BASE_BUTTON_CONSTANTS.observedAttributes.DOWNLOAD:\n this.download = newValue;\n break;\n case BASE_BUTTON_CONSTANTS.observedAttributes.REL:\n this.rel = newValue;\n break;\n case BASE_BUTTON_CONSTANTS.observedAttributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n public labelClickedCallback(): void {\n this._foundation.click({ animateStateLayer: true });\n }\n\n public labelChangedCallback(value: string | null): void {\n this._foundation.proxyLabel(value);\n }\n\n public get form(): HTMLFormElement | null {\n return this[internals].form;\n }\n\n public get name(): string {\n return this.getAttribute('name') ?? '';\n }\n public set name(name: string) {\n this.setAttribute('name', name);\n }\n\n public get value(): string {\n return this.getAttribute('value') ?? '';\n }\n public set value(value: string) {\n this.setAttribute('value', value);\n }\n\n @FoundationProperty()\n public declare type: ButtonType;\n\n @FoundationProperty()\n public declare disabled: boolean;\n\n @FoundationProperty()\n public declare popoverIcon: boolean;\n\n @FoundationProperty()\n public declare anchor: boolean;\n\n @FoundationProperty()\n public declare href: string;\n\n @FoundationProperty()\n public declare target: string;\n\n @FoundationProperty()\n public declare download: string;\n\n @FoundationProperty()\n public declare rel: string;\n\n @FoundationProperty()\n public declare dense: boolean;\n\n public override click(): void {\n this._foundation.click({ animateStateLayer: true });\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IBaseButtonAdapter } from './base-button-adapter';\nimport { BASE_BUTTON_CONSTANTS, ButtonType } from './base-button-constants';\n\nexport interface IBaseButtonFoundation extends ICustomElementFoundation {\n type: ButtonType;\n disabled: boolean;\n popoverIcon: boolean;\n anchor: boolean;\n href: string;\n target: string;\n download: string;\n rel: string;\n dense: boolean;\n click(options: { animateStateLayer: boolean }): void;\n proxyLabel(label: string | null): void;\n}\n\nexport abstract class BaseButtonFoundation<T extends IBaseButtonAdapter> implements IBaseButtonFoundation {\n private _type: ButtonType = 'button'; // We default our buttons to the \"button\" type instead of \"submit\" as that is more common\n private _disabled = false;\n private _popoverIcon = false;\n private _anchor = false;\n private _href = '';\n private _target = '';\n private _download = '';\n private _rel = '';\n private _dense = false;\n\n private _clickListener: EventListener;\n private _keydownListener: EventListener;\n private _anchorFocusListener: EventListener;\n\n constructor(protected _adapter: T) {\n this._clickListener = (evt: MouseEvent) => this._onClick(evt);\n this._keydownListener = (evt: KeyboardEvent) => this._onKeydown(evt);\n this._anchorFocusListener = () => this._adapter.focusHost(); // Always ensure our host is focused when the anchor is focused\n this._adapter.addHostListener('keydown', this._keydownListener);\n }\n\n public initialize(): void {\n this._adapter.initialize();\n\n if (this._anchor) {\n // When we're in anchor mode, we swap to us an `<a>` internally as the root. Since the `<a>`\n // element is interactive by default, we can remove our click listener since the anchor will\n // take over the default interaction handling\n this._adapter.addAnchorEventListener('focus', this._anchorFocusListener);\n } else {\n // When we're in button mode, we need to handle the click event on the host element\n this._adapter.addHostListener('click', this._clickListener);\n }\n }\n\n /**\n * Handles overriding the the `click()` method on the HTMLElement instance\n */\n public click({ animateStateLayer = false } = {}): void {\n if (this._disabled) {\n return;\n }\n\n if (this._anchor) {\n this._adapter.clickAnchor();\n } else {\n this._adapter.clickHost();\n }\n\n if (animateStateLayer) {\n this._adapter.animateStateLayer();\n }\n }\n\n public proxyLabel(label: string | null): void {\n this._adapter.proxyLabel(label);\n }\n\n protected async _onClick(evt: MouseEvent): Promise<void> {\n const isFormType = this._type === 'submit' || this._type === 'reset';\n\n // Custom elements do not work with the popover* attributes by default so we need to manually\n // manage the popover functionality for now...\n if (!isFormType && this._adapter.hasPopoverTarget()) {\n const isOpen = this._adapter.managePopover();\n\n // If the popover was opened successfully we can stop here since there is no need to\n // handle any other scenarios\n if (isOpen) {\n return;\n }\n }\n\n // Wait a cycle to allow the click event to propagate\n await new Promise<void>(resolve => setTimeout(resolve));\n\n // We allow for our click event to bubble first before we handle it in case the developer\n // wants to prevent the default behavior\n if (evt.defaultPrevented || this._disabled) {\n return;\n }\n\n // For button types of submit or reset, we need to manually submit or reset the form\n // since the click event doesn't do that for us with custom elements\n if (isFormType) {\n this._adapter.clickFormButton(this._type);\n }\n }\n\n /**\n * Handle keydown events on the host element to manually trigger click events.\n */\n private async _onKeydown(evt: KeyboardEvent): Promise<void> {\n // Handle the special case for the space key (when not an anchor) to avoid\n // scrolling when triggered\n if (evt.key === ' ' && !this._anchor) {\n evt.preventDefault();\n this.click();\n return;\n }\n\n // Wait a cycle for the keydown event to propagate\n await new Promise<void>(resolve => setTimeout(resolve));\n\n if (evt.defaultPrevented || this._disabled) {\n return;\n }\n \n if (evt.key === 'Enter') {\n if (this._anchor) {\n this._adapter.clickAnchor();\n } else {\n this.click();\n }\n }\n }\n\n private _toggleAnchor(): void {\n if (this._anchor) {\n this._adapter.initializeAnchor();\n this._manageAnchorListeners();\n this.disabled = false; // Anchor elements are always enabled\n } else {\n this._adapter.removeAnchor();\n this._manageAnchorListeners();\n }\n }\n\n private _manageAnchorListeners(): void {\n if (this._anchor) {\n this._adapter.removeHostListener('click', this._clickListener);\n this._adapter.addAnchorEventListener('focus', this._anchorFocusListener);\n } else {\n this._adapter.addHostListener('click', this._clickListener);\n this._adapter.removeAnchorEventListener('focus', this._anchorFocusListener);\n }\n }\n\n public get type(): ButtonType {\n return this._type;\n }\n public set type(type: ButtonType) {\n if (this._type !== type) {\n this._type = type;\n this._adapter.setHostAttribute(BASE_BUTTON_CONSTANTS.attributes.TYPE, type);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n // If we're in anchor mode, we need to ensure that the anchor is always enabled\n if (this._anchor) {\n if (this._disabled) {\n this._adapter.syncDisabled(false);\n }\n value = false;\n }\n\n value = Boolean(value);\n\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.setDisabled(this._disabled);\n this._adapter.toggleHostAttribute(BASE_BUTTON_CONSTANTS.attributes.DISABLED, value);\n }\n }\n\n public get popoverIcon(): boolean {\n return this._popoverIcon;\n }\n public set popoverIcon(value: boolean) {\n value = Boolean(value);\n if (this._popoverIcon !== value) {\n this._popoverIcon = value;\n this._adapter.toggleDefaultPopoverIcon(this._popoverIcon);\n this._adapter.toggleHostAttribute(BASE_BUTTON_CONSTANTS.attributes.POPOVER_ICON, value);\n }\n }\n\n /**\n * Anchor properties\n */\n\n public get anchor(): boolean {\n return this._anchor;\n }\n public set anchor(value: boolean) {\n value = Boolean(value);\n if (this._anchor !== value) {\n this._anchor = value;\n this._toggleAnchor();\n this._adapter.toggleHostAttribute(BASE_BUTTON_CONSTANTS.attributes.ANCHOR, value);\n }\n }\n\n public get href(): string {\n return this._href;\n }\n public set href(value: string) {\n value = (value ?? '').trim();\n if (this._href !== value) {\n this._href = value;\n this.anchor = this._href.length > 0;\n if (this._anchor) {\n this._adapter.setAnchorHref(this._href);\n }\n this._adapter.toggleHostAttribute(BASE_BUTTON_CONSTANTS.attributes.HREF, !!this._href, this._href);\n }\n }\n\n public get target(): string {\n return this._target;\n }\n public set target(value: string) {\n if (this._target !== value) {\n this._target = value ?? '_self';\n this._adapter.setAnchorTarget(value);\n this._adapter.toggleHostAttribute(BASE_BUTTON_CONSTANTS.attributes.TARGET, !!this._target, this._target);\n }\n }\n\n public get download(): string {\n return this._download;\n }\n public set download(value: string) {\n if (this._download !== value) {\n this._download = value;\n this._adapter.setAnchorDownload(this._download);\n this._adapter.toggleHostAttribute(BASE_BUTTON_CONSTANTS.attributes.DOWNLOAD, !!this._download, this._download);\n }\n }\n\n public get rel(): string {\n return this._rel;\n }\n public set rel(value: string) {\n if (this._rel !== value) {\n this._rel = value;\n this._adapter.setAnchorRel(this._rel);\n this._adapter.toggleHostAttribute(BASE_BUTTON_CONSTANTS.attributes.REL, !!this._rel, this._rel);\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n value = Boolean(value);\n if (this._dense !== value) {\n this._dense = value;\n this._adapter.toggleHostAttribute(BASE_BUTTON_CONSTANTS.attributes.DENSE, value);\n }\n }\n}\n", "import { getShadowElement, toggleAttribute } from '@tylertech/forge-core';\nimport { tylIconArrowDropDown } from '@tylertech/tyler-icons/standard';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { FOCUS_INDICATOR_CONSTANTS, IFocusIndicatorComponent } from '../../focus-indicator';\nimport { IStateLayerComponent, STATE_LAYER_CONSTANTS } from '../../state-layer';\nimport { IBaseButton } from './base-button';\nimport { BASE_BUTTON_CONSTANTS } from './base-button-constants';\nimport { BUTTON_FORM_ATTRIBUTES, cloneAttributes } from '../../core/utils/reflect-utils';\nimport { internals, isFocusable } from '../../constants';\nimport { supportsPopover } from '../../core/utils/feature-detection';\n\n// TODO: remove this augmentation when the TypeScript version is upgraded for latest DOM typings\ntype TempHTMLElementWithPopover = IBaseButton & {\n popoverTargetElement: TempHTMLElementWithPopover | null;\n popover: 'manual' | 'auto';\n showPopover(): void;\n hidePopover(): void;\n togglePopover(): boolean;\n};\n\nexport interface IBaseButtonAdapter extends IBaseAdapter {\n initialize(): void;\n initializeAnchor(): void;\n removeAnchor(): void;\n setAnchorHref(href: string): void;\n setAnchorTarget(target: string): void;\n setAnchorDownload(value: string): void;\n setAnchorRel(value: string): void;\n setDisabled(value: boolean): void;\n syncDisabled(value: boolean): void;\n clickAnchor(): void;\n clickHost(): void;\n clickFormButton(type: string): void;\n addAnchorEventListener(type: string, listener: EventListener): void;\n removeAnchorEventListener(type: string, listener: EventListener): void;\n hasPopoverTarget(): boolean;\n managePopover(): boolean;\n toggleDefaultPopoverIcon(value: boolean): void;\n animateStateLayer(): void;\n proxyLabel(value: string | null): void;\n}\n\nexport abstract class BaseButtonAdapter extends BaseAdapter<IBaseButton> implements IBaseButtonAdapter {\n protected _rootElement: HTMLElement;\n protected _anchorElement: HTMLAnchorElement | undefined;\n protected _focusIndicatorElement: IFocusIndicatorComponent;\n protected _stateLayerElement: IStateLayerComponent;\n protected _endSlotElement: HTMLSlotElement;\n\n private _labelAwareText?: string;\n\n constructor(component: IBaseButton) {\n super(component);\n this._rootElement = getShadowElement(this._component, BASE_BUTTON_CONSTANTS.selectors.ROOT) as HTMLButtonElement;\n this._focusIndicatorElement = getShadowElement(this._component, FOCUS_INDICATOR_CONSTANTS.elementName) as IFocusIndicatorComponent;\n this._stateLayerElement = getShadowElement(this._component, STATE_LAYER_CONSTANTS.elementName) as IStateLayerComponent;\n this._endSlotElement = getShadowElement(this._component, BASE_BUTTON_CONSTANTS.selectors.END_SLOT) as HTMLSlotElement;\n }\n\n public initialize(): void {\n this._applyHostSemantics();\n }\n\n public initializeAnchor(): void {\n this._anchorElement = this._createAnchorRootElement();\n this._rootElement.insertAdjacentElement('afterend', this._anchorElement);\n this._applyHostSemantics();\n }\n\n public removeAnchor(): void {\n this._anchorElement?.remove();\n this._anchorElement = undefined;\n this._applyHostSemantics();\n }\n\n public setAnchorHref(href: string): void {\n if (this._anchorElement) {\n this._anchorElement.href = href;\n }\n }\n\n public setAnchorTarget(target: string): void {\n if (this._anchorElement) {\n this._anchorElement.target = target;\n }\n }\n\n public setAnchorDownload(value: string): void {\n if (this._anchorElement) {\n this._anchorElement.download = value;\n }\n }\n\n public setAnchorRel(value: string): void {\n if (this._anchorElement) {\n this._anchorElement.rel = value;\n }\n }\n\n public setDisabled(value: boolean): void {\n if (this._anchorElement) {\n return; // Cannot disable an anchor element\n }\n this.syncDisabled(value);\n }\n\n public syncDisabled(value: boolean): void {\n if (value) {\n this._focusIndicatorElement.remove();\n this._stateLayerElement.remove();\n } else {\n this._rootElement.append(this._focusIndicatorElement, this._stateLayerElement);\n }\n\n this._component[isFocusable] = !value;\n toggleAttribute(this._component, value, 'aria-disabled', 'true');\n }\n\n public clickAnchor(): void {\n this._anchorElement?.click();\n }\n\n public clickHost(): void {\n // Calling click() on the prototype ensures we don't end up in an infinite\n // recursion since the host overrides the HTMLElement.click() method\n HTMLElement.prototype.click.call(this._component);\n }\n\n public clickFormButton(type: string): void {\n if (!this._component.form) {\n return; // Nothing for us to do if there is no form element associated to us\n }\n\n if (type === 'submit') {\n // We need to set the form value to the button value before submitting the form\n this._component[internals].setFormValue(this._component.value);\n\n // We don't use a real <button> since the host is the semantic button, so for\n // the \"submit\" button type we need to create a temporary button and click it\n // to trigger the form submission\n const tempBtn = document.createElement('button');\n tempBtn.type = type;\n cloneAttributes(this._component, tempBtn, BUTTON_FORM_ATTRIBUTES);\n\n // form.requestSubmit(submitter) does not work with form associated custom\n // elements. This patches the dispatched submit event to add the correct `submitter`.\n // See https://github.com/WICG/webcomponents/issues/814\n this._component.form.addEventListener('submit', evt => {\n Object.defineProperty(evt, 'submitter', {\n configurable: true,\n enumerable: true,\n get: () => this._component\n });\n }, { capture: true, once: true });\n\n this._component.insertAdjacentElement('afterend', tempBtn);\n tempBtn.click();\n tempBtn.remove();\n } else if (type === 'reset') {\n this._component.form?.reset();\n }\n }\n\n public addAnchorEventListener(type: string, listener: EventListener): void {\n this._rootElement.addEventListener(type, listener);\n }\n\n public removeAnchorEventListener(type: string, listener: EventListener): void {\n this._rootElement.removeEventListener(type, listener);\n }\n\n public hasPopoverTarget(): boolean {\n return this._component.hasAttribute('popovertarget') || !!(this._component as TempHTMLElementWithPopover).popoverTargetElement;\n }\n\n /**\n * We are emulating native behavior here since custom elements do not support integrating with the\n * native popover element. This method will attempt to find the popover target element and handle\n * its `popovertargetaction`\n */\n public managePopover(): boolean {\n if (this._component.form || !this.hasPopoverTarget() || !supportsPopover()) {\n return false;\n }\n \n const popoverElement = this._locatePopoverTargetElement();\n if (!popoverElement) {\n return false;\n }\n\n const action = this._component.getAttribute('popovertargetaction') || 'toggle';\n const isPopoverOpen = popoverElement.matches(':popover-open');\n\n switch (action) {\n case 'show':\n if (!isPopoverOpen) {\n popoverElement.showPopover();\n }\n return true;\n case 'hide':\n if (isPopoverOpen) {\n popoverElement.hidePopover();\n }\n return false;\n case 'toggle':\n default:\n const result = popoverElement.togglePopover();\n\n // When the popover is open and is using an \"auto\" popover mode, we need to handle\n // clicking ourselves again to close without re-opening the popover. We do this by\n // adding a click listener to the component that will stop propagation of the event\n // and then remove itself after the first click (or when the popover is closed externally).\n if (result && popoverElement.popover !== 'manual') {\n const listener: EventListener = evt => {\n evt.stopPropagation();\n\n // The popover will already be closed via pointer, but we need to ensure that\n // it closes via keyboard as well so we perform the following check regardless\n if (popoverElement.matches(':popover-open')) {\n popoverElement.hidePopover();\n }\n };\n this._component.addEventListener('click', listener, { capture: true, once: true });\n popoverElement.addEventListener('beforetoggle', async () => {\n await new Promise<void>(resolve => setTimeout(resolve)); // Wait a cycle to allow the click event to propagate first\n this._component.removeEventListener('click', listener, { capture: true });\n }, { once: true });\n }\n\n return result;\n }\n }\n\n public toggleDefaultPopoverIcon(value: boolean): void {\n if (value) {\n // We support a built-in \"popover icon\" for convenience that can be used to indicate that the button will show a popover\n const hasIcon = this._endSlotElement.querySelector('forge-icon');\n if (!hasIcon) {\n const icon = document.createElement('forge-icon');\n icon.classList.add(BASE_BUTTON_CONSTANTS.classes.POPOVER_ICON);\n icon.name = tylIconArrowDropDown.name;\n this._endSlotElement.append(icon);\n }\n } else {\n const icon = this._endSlotElement.querySelector('forge-icon');\n icon?.remove();\n }\n }\n\n public animateStateLayer(): void {\n if (this._stateLayerElement.disabled) {\n return;\n }\n this._stateLayerElement?.playAnimation();\n }\n\n public proxyLabel(value: string | null): void {\n this._labelAwareText = value ?? undefined;\n const hasAriaLabel = this._component.hasAttribute('aria-label') || !!this._labelAwareText;\n toggleAttribute(this._component, hasAriaLabel, 'aria-label', this._component.getAttribute('aria-label') ?? this._labelAwareText);\n }\n\n private _locatePopoverTargetElement(): TempHTMLElementWithPopover | null {\n let popoverElement = (this._component as TempHTMLElementWithPopover).popoverTargetElement ?? null;\n\n if (!popoverElement) {\n const rootNode = this._component.ownerDocument.getRootNode() as Document | ShadowRoot;\n if (!rootNode) {\n return null;\n }\n\n const targetId = this._component.getAttribute('popovertarget');\n popoverElement = rootNode.querySelector(`#${targetId}`);\n }\n\n return popoverElement;\n }\n\n private _applyHostSemantics(): void {\n const role = this._component.getAttribute('role');\n\n // Allow user provided roles to override our default role\n if (!role || ['button', 'link'].includes(role)) {\n // Set default role based on the existence of an anchor element\n this._component.role = this._anchorElement ? 'link' : 'button';\n }\n\n this._component[isFocusable] = this._anchorElement || !this._component.disabled;\n }\n\n /**\n * Our anchor element is the interactive element that will be used to trigger the click event when it is present.\n * \n * We use the <a> element as an overlay on top of all content to ensure that it provides the native functionality,\n * while removing it from the accessibility tree and tab order so that it does not interfere with the host semantics.\n */\n private _createAnchorRootElement(): HTMLAnchorElement {\n const a = document.createElement('a');\n a.setAttribute('aria-hidden', 'true');\n a.tabIndex = -1;\n if (this._component.href) {\n a.href = this._component.href;\n }\n if (this._component.target) {\n a.target = this._component.target;\n }\n if (this._component.download) {\n a.download = this._component.download;\n }\n if (this._component.rel) {\n a.rel = this._component.rel;\n }\n return a;\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["observedAttributes", "attributes", "__spreadValues", "classes", "selectors", "BASE_BUTTON_CONSTANTS", "BaseButton", "BaseFocusableComponent", "internals", "name", "oldValue", "newValue", "BASE_BUTTON_CONSTANTS", "coerceBoolean", "value", "_a", "__decorateClass", "FoundationProperty", "BaseButtonFoundation", "_adapter", "evt", "animateStateLayer", "label", "isFormType", "resolve", "type", "BASE_BUTTON_CONSTANTS", "value", "BaseButtonAdapter", "BaseAdapter", "component", "getShadowElement", "BASE_BUTTON_CONSTANTS", "FOCUS_INDICATOR_CONSTANTS", "STATE_LAYER_CONSTANTS", "_a", "href", "target", "value", "isFocusable", "toggleAttribute", "type", "internals", "tempBtn", "cloneAttributes", "BUTTON_FORM_ATTRIBUTES", "evt", "listener", "supportsPopover", "popoverElement", "action", "isPopoverOpen", "result", "resolve", "icon", "tylIconArrowDropDown", "hasAriaLabel", "rootNode", "targetId", "role", "a"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/button/button-adapter.ts", "../../src/button/button-constants.ts", "../../src/button/button-foundation.ts", "../../src/button/button.ts", "../../src/button/button-component-delegate.ts", "../../src/button/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { BaseButtonAdapter, IBaseButtonAdapter } from './base/base-button-adapter';\nimport { IButtonComponent } from './button';\n\nexport interface IButtonAdapter extends IBaseButtonAdapter {\n toggleStateLayer(value: boolean): void;\n}\n\nexport class ButtonAdapter extends BaseButtonAdapter implements IButtonAdapter {\n constructor(component: IButtonComponent) {\n super(component);\n }\n\n public toggleStateLayer(value: boolean): void {\n this._stateLayerElement.disabled = !value;\n }\n}\n", "import { COMPONENT_NAME_PREFIX, Theme } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}button`;\n\nconst observedAttributes = {\n VARIANT: 'variant',\n PILL: 'pill',\n THEME: 'theme'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nexport const BUTTON_CONSTANTS = {\n elementName,\n observedAttributes,\n attributes\n};\n\nexport type ButtonVariant = 'text' | 'outlined' | 'tonal' | 'filled' | 'raised' | 'link';\nexport type ButtonTheme = Theme;\n", "import { BaseButtonFoundation, IBaseButtonFoundation } from './base/base-button-foundation';\nimport { IButtonAdapter } from './button-adapter';\nimport { ButtonTheme, ButtonVariant, BUTTON_CONSTANTS } from './button-constants';\n\nexport interface IButtonFoundation extends IBaseButtonFoundation {\n variant: ButtonVariant;\n pill: boolean;\n theme: ButtonTheme;\n}\n\nexport class ButtonFoundation extends BaseButtonFoundation<IButtonAdapter> implements IButtonFoundation {\n private _variant: ButtonVariant = 'text';\n private _pill = false;\n private _theme: ButtonTheme = 'primary';\n\n constructor(adapter: IButtonAdapter) {\n super(adapter);\n }\n\n public get variant(): ButtonVariant {\n return this._variant;\n }\n public set variant(value: ButtonVariant) {\n if (this._variant !== value) {\n const previousVariant = this._variant;\n this._variant = value;\n \n if (this._variant === 'link') {\n this._adapter.toggleStateLayer(false);\n } else if (previousVariant === 'link') {\n this._adapter.toggleStateLayer(true);\n }\n\n this._adapter.setHostAttribute(BUTTON_CONSTANTS.attributes.VARIANT, this._variant);\n }\n }\n\n public get pill(): boolean {\n return this._pill;\n }\n public set pill(value: boolean) {\n if (this._pill !== value) {\n this._pill = value;\n this._adapter.toggleHostAttribute(BUTTON_CONSTANTS.attributes.PILL, this._pill);\n }\n }\n\n public get theme(): ButtonTheme {\n return this._theme;\n }\n public set theme(value: ButtonTheme) {\n if (this._theme !== value) {\n this._theme = value;\n this._adapter.setHostAttribute(BUTTON_CONSTANTS.attributes.THEME, this._theme);\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconArrowDropDown } from '@tylertech/tyler-icons/standard';\nimport { FocusIndicatorComponent } from '../focus-indicator';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { StateLayerComponent } from '../state-layer';\nimport { BaseButton, IBaseButton } from './base/base-button';\nimport { BASE_BUTTON_CONSTANTS } from './base/base-button-constants';\nimport { ButtonAdapter } from './button-adapter';\nimport { ButtonTheme, ButtonVariant, BUTTON_CONSTANTS } from './button-constants';\nimport { ButtonFoundation } from './button-foundation';\n\nconst template = '<template><div class=\\\"forge-button\\\" part=\\\"root\\\"><slot name=\\\"start\\\"></slot><slot></slot><slot name=\\\"end\\\"></slot><forge-focus-indicator target=\\\":host\\\" exportparts=\\\"indicator:focus-indicator\\\"></forge-focus-indicator><forge-state-layer target=\\\":host\\\" exportparts=\\\"surface:state-layer\\\"></forge-state-layer></div></template>';\nconst styles = ':host{--_button-display:var(--forge-button-display, inline-flex);--_button-disabled-cursor:var(--forge-button-disabled-cursor, not-allowed)}:host{display:var(--_button-display);position:relative;outline:0;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}.forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-primary, #3f51b5));--_button-text-color:var(--forge-button-text-color, var(--_button-primary-color));--_button-disabled-color:var(--forge-button-disabled, var(--forge-theme-surface-container, #e0e0e0));--_button-padding:var(--forge-button-padding, 8px);--_button-justify:var(--forge-button-justify, center);--_button-shape:var(--forge-button-shape, var(--forge-shape-medium, 4px));--_button-height:var(--forge-button-height, 36px);--_button-min-width:var(--forge-button-min-width, 64px);--_button-spacing:var(--forge-button-spacing, var(--forge-spacing-xsmall, 8px));--_button-border-width:var(--forge-button-border-width, medium);--_button-border-style:var(--forge-button-border-style, none);--_button-border-color:var(--forge-button-border-color, currentColor);--_button-shape-start-start-radius:var(--forge-button-shape-start-start-radius, var(--_button-shape));--_button-shape-start-end-radius:var(--forge-button-shape-start-end-radius, var(--_button-shape));--_button-shape-end-start-radius:var(--forge-button-shape-end-start-radius, var(--_button-shape));--_button-shape-end-end-radius:var(--forge-button-shape-end-end-radius, var(--_button-shape));--_button-padding-block:var(--forge-button-padding-block, var(--_button-padding));--_button-padding-inline:var(--forge-button-padding-inline, var(--_button-padding));--_button-background:var(--forge-button-background, transparent);--_button-hover-background:var(--forge-button-hover-background, var(--_button-background));--_button-active-background:var(--forge-button-active-background, var(--_button-background));--_button-color:var(--forge-button-color, var(--_button-text-color));--_button-icon-size:var(--forge-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));--_button-shadow:var(--forge-button-shadow, none);--_button-hover-shadow:var(--forge-button-hover-shadow, none);--_button-active-shadow:var(--forge-button-active-shadow, none);--_button-cursor:var(--forge-button-cursor, pointer);--_button-transition-duration:var(--forge-button-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-transition-timing:var(--forge-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-outlined-background:var(--forge-button-outlined-background, var(--_button-background));--_button-outlined-color:var(--forge-button-outlined-color, var(--_button-primary-color));--_button-outlined-border-width:var(--forge-button-outlined-border-width, var(--forge-border-thin, 1px));--_button-outlined-border-style:var(--forge-button-outlined-border-style, solid);--_button-outlined-border-color:var(--forge-button-outlined-border-color, var(--_button-primary-color));--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-primary-container, #d1d5ed));--_button-tonal-disabled-background:var(--forge-button-tonal-disabled-background, var(--_button-disabled-color));--_button-tonal-color:var(--forge-button-flat-color, var(--forge-theme-on-primary-container, #0f132b));--_button-tonal-disabled-color:var(--forge-button-tonal-disabled-color, var(--_button-disabled-text-color));--_button-filled-background:var(--forge-button-filled-background, var(--_button-primary-color));--_button-filled-disabled-background:var(--forge-button-filled-disabled-background, var(--_button-disabled-color));--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-primary, #ffffff));--_button-filled-disabled-color:var(--forge-button-filled-disabled-color, var(--_button-disabled-text-color));--_button-raised-shadow:var(--forge-button-raised-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));--_button-raised-hover-shadow:var(--forge-button-raised-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));--_button-raised-active-shadow:var(--forge-button-raised-active-shadow, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12));--_button-raised-disabled-shadow:var(--forge-button-raised-disabled-shadow, none);--_button-link-color:var(--forge-button-link-color, var(--_button-primary-color));--_button-link-text-decoration:var(--forge-button-link-text-decoration, underline);--_button-link-height:var(--forge-button-link-height, auto);--_button-link-padding:var(--forge-button-link-padding, 0);--_button-link-line-height:var(--forge-button-link-line-height, normal);--_button-link-width:var(--forge-button-link-width, auto);--_button-link-hover-text-decoration:var(--forge-button-link-hover-text-decoration, none);--_button-link-active-opacity:var(--forge-button-link-active-opacity, 0.65);--_button-link-transition-duration:var(--forge-button-link-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-link-transition-timing:var(--forge-button-link-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-disabled-text-color:var(--forge-button-disabled-text-color, var(--forge-theme-text-low, rgba(0, 0, 0, 0.38)));--_button-disabled-background:var(--forge-button-disabled-background, transparent);--_button-disabled-border-color:var(--forge-button-disabled-border-color, var(--_button-disabled-color));--_button-disabled-shadow:var(--forge-button-disabled-shadow, none);--_button-dense-height:var(--forge-button-dense-height, 24px);--_button-pill-shape:var(--forge-button-pill-shape, var(--forge-shape-full, 9999px));--_button-pill-padding-inline:var(--forge-button-pill-padding-inline, var(--forge-spacing-small, 12px));--_button-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 4px);--_button-text-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 0px);--_button-link-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 2px);--_button-popover-icon-transition-duration:var(--forge-button-popover-icon-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-popover-icon-transition-timing:var(--forge-button-popover-icon-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-popover-icon-open-rotation:var(--forge-button-popover-icon-open-rotation, 180deg)}.forge-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-button-text-decoration,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);position:relative;display:var(--_button-display);-webkit-box-align:center;align-items:center;-webkit-box-pack:var(--_button-justify);justify-content:var(--_button-justify);gap:var(--_button-spacing);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;min-inline-size:var(--_button-min-width);height:var(--_button-height);inline-size:100%;border-width:var(--_button-border-width);border-style:var(--_button-border-style);border-color:var(--_button-border-color);border-start-start-radius:var(--_button-shape-start-start-radius);border-start-end-radius:var(--_button-shape-start-end-radius);border-end-start-radius:var(--_button-shape-end-start-radius);border-end-end-radius:var(--_button-shape-end-end-radius);padding-block:var(--_button-padding-block);padding-inline:var(--_button-padding-inline);-webkit-box-shadow:var(--_button-shadow);box-shadow:var(--_button-shadow);outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;vertical-align:middle;text-decoration:none;white-space:nowrap;background:var(--_button-background);color:var(--_button-color);cursor:var(--_button-cursor);-webkit-transition-property:background,-webkit-box-shadow;transition-property:background,-webkit-box-shadow;transition-property:box-shadow,background;transition-property:box-shadow,background,-webkit-box-shadow;-webkit-transition-duration:var(--_button-transition-duration);transition-duration:var(--_button-transition-duration);-webkit-transition-timing-function:var(--_button-transition-timing);transition-timing-function:var(--_button-transition-timing)}.forge-button::-moz-focus-inner{padding:0;border:0}.forge-button:hover{--_button-shadow:var(--_button-hover-shadow);background:var(--_button-hover-background)}.forge-button:active{--_button-shadow:var(--_button-active-shadow);background:var(--_button-active-background)}.forge-button ::slotted(:is([slot=start],[slot=end])){font-size:var(--_button-icon-size)}a{position:absolute;inset:0;text-decoration:none}forge-state-layer{--forge-state-layer-color:var(--_button-color)}forge-focus-indicator{--forge-focus-indicator-color:var(--_button-primary-color);--forge-focus-indicator-outward-offset:var(--_button-focus-indicator-offset)}:host([theme=secondary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-secondary-container, #fff0c3));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-secondary-container, #3d2e02))}:host([theme=tertiary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-tertiary, #3d5afe))}:host([theme=tertiary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-tertiary-container, #d0d7ff));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-tertiary-container, #0f163d))}:host([theme=success]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-success, #2e7d32))}:host([theme=success][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-success-container, #cde0ce));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-success-container, #0b1e0c))}:host([theme=error]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-error, #b00020))}:host([theme=error][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-error-container, #ecc2c9));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-error-container, #2a0008))}:host([theme=warning]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-warning, #d14900))}:host([theme=warning][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-warning-container, #f4d3c2));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-warning-container, #321200))}:host([theme=info]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-info, #1565c0))}:host([theme=info][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-info-container, #c7daf0));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-info-container, #05182e))}:host(:is(:not([variant],[variant=text]))) .forge-button{--_button-focus-indicator-offset:var(--_button-text-focus-indicator-offset)}:host(:is([variant=filled],[variant=raised])) .forge-button{--_button-background:var(--_button-filled-background);--_button-color:var(--_button-filled-color)}:host(:is([variant=filled],[variant=raised])) forge-state-layer{--forge-state-layer-color:var(--_button-filled-color)}:host([variant=raised]) .forge-button{--_button-shadow:var(--_button-raised-shadow)}:host([variant=raised]) .forge-button:hover{--_button-shadow:var(--_button-raised-hover-shadow)}:host([variant=raised]) .forge-button:active{--_button-shadow:var(--_button-raised-active-shadow)}:host([variant=tonal]) .forge-button{--_button-background:var(--_button-tonal-background);--_button-color:var(--_button-tonal-color)}:host([variant=tonal]) forge-state-layer{--forge-state-layer-color:var(--_button-tonal-color)}:host([variant=outlined]) .forge-button{--_button-background:var(--_button-outlined-background);--_button-color:var(--_button-outlined-color);--_button-border-width:var(--_button-outlined-border-width);--_button-border-style:var(--_button-outlined-border-style);--_button-border-color:var(--_button-outlined-border-color)}:host([variant=link]) .forge-button{--_button-color:var(--_button-link-color);--_button-height:var(--_button-link-height);--_button-padding:var(--_button-link-padding);--_button-focus-indicator-offset:var(--_button-link-focus-indicator-offset);-webkit-text-decoration:var(--_button-link-text-decoration);text-decoration:var(--_button-link-text-decoration);line-height:var(--_button-link-line-height);-webkit-transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);inline-size:var(--_button-link-width)}:host([variant=link]) .forge-button:hover{-webkit-text-decoration:var(--_button-link-hover-text-decoration);text-decoration:var(--_button-link-hover-text-decoration)}:host([variant=link]) .forge-button:active{opacity:var(--_button-link-active-opacity)}:host([dense]) .forge-button{--_button-height:var(--_button-dense-height)}:host([pill]) .forge-button{--_button-shape:var(--_button-pill-shape);--_button-padding-inline:var(--_button-pill-padding-inline)}:host([pill]) forge-focus-indicator{--forge-focus-indicator-shape:var(--_button-pill-shape)}:host(:not([anchor])[disabled]){cursor:var(--_button-disabled-cursor)}:host(:not([anchor])[disabled]) .forge-button{--_button-background:var(--_button-disabled-background);--_button-color:var(--_button-disabled-text-color);--_button-shadow:var(--_button-disabled-shadow);pointer-events:none}:host(:not([anchor])[variant=outlined][disabled]) .forge-button{--_button-border-color:var(--_button-disabled-border-color)}:host(:not([anchor])[variant=tonal][disabled]) .forge-button{--_button-background:var(--_button-tonal-disabled-background);--_button-color:var(--_button-tonal-disabled-color)}:host(:not([anchor]):is([variant=filled],[variant=raised])[disabled]) .forge-button{--_button-background:var(--_button-filled-disabled-background);--_button-color:var(--_button-filled-disabled-color)}:host(:not([anchor])[variant=raised][disabled]) .forge-button{--_button-shadow:var(--_button-raised-disabled-shadow)}:host([popover-icon]) .forge-button__popover-icon{-webkit-transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing);transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing)}:host([popover-icon][aria-expanded=true]) .forge-button__popover-icon{rotate:var(--_button-popover-icon-open-rotation)}';\n\nexport interface IButtonComponent extends IBaseButton {\n variant: ButtonVariant;\n pill: boolean;\n theme: ButtonTheme;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-button': IButtonComponent;\n }\n}\n\n/**\n * @tag forge-button\n * \n * @summary Buttons represent actions that a user can take.\n * \n * @description\n * Buttons are used when a user needs to take an action, such as submitting a form or opening a dialog.\n * Buttons can be used to trigger an action or to navigate to a new location. Buttons can be styled with\n * a variety of themes and variants.\n * \n * @property {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.\n * @property {ButtonVariant} variant - The variant of the button. Defaults to `text`.\n * @property {boolean} disabled - Whether or not the button is disabled.\n * @property {boolean} popoverIcon - Whether or not the button shows a built-in popover icon.\n * @property {string} name - The name of the button.\n * @property {string} value - The form value of the button.\n * @property {boolean} dense - Whether or not the button is dense.\n * @property {boolean} anchor - Whether or not the button is an `<a>` element.\n * @property {string} href - The href of the anchor.\n * @property {string} target - The target of the anchor.\n * @property {string} download - The download of the anchor.\n * @property {string} rel - The rel of the anchor.\n * @property {HTMLFormElement | null} form - The form reference of the button if within a `<form>` element.\n * @property {boolean} pill - Whether or not the button is pill-shaped.\n * @property {ButtonTheme} theme - The theme of the button. Defaults to `primary`.\n * \n * @attribute {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.\n * @attribute {ButtonVariant} variant - The variant of the button. Defaults to `text`.\n * @attribute {boolean} disabled - Whether or not the button is disabled.\n * @attribute {boolean} popover-icon - Whether or not the button shows a built-in popover icon.\n * @attribute {string} name - The name of the button.\n * @attribute {string} value - The form value of the button.\n * @attribute {boolean} dense - Whether or not the button is dense.\n * @attribute {boolean} anchor - Whether or not the button is an `<a>` element.\n * @attribute {string} href - The href of the anchor.\n * @attribute {string} target - The target of the anchor.\n * @attribute {string} download - The download of the anchor.\n * @attribute {string} rel - The rel of the anchor.\n * @attribute {boolean} pill - Whether or not the button is pill-shaped.\n * @attribute {ButtonTheme} theme - The theme of the button. Defaults to `primary`.\n * \n * @event {Event} click - Fires when the button is clicked. \n * \n * @cssproperty --forge-button-primary-color - The primary color of the button.\n * @cssproperty --forge-button-text-color - The text color of the button. Inherits from primary color.\n * @cssproperty --forge-button-disabled-color - The disabled color of the button.\n * @cssproperty --forge-button-padding - The padding of the button.\n * @cssproperty --forge-button-display - The display of the button.\n * @cssproperty --forge-button-justify - The flex justify of the button.\n * @cssproperty --forge-button-shape - The shape of the button.\n * @cssproperty --forge-button-height - The height of the button.\n * @cssproperty --forge-button-min-width - The min-width of the button.\n * @cssproperty --forge-button-spacing - The spacing of the button.\n * @cssproperty --forge-button-border-width - The border-width of the button.\n * @cssproperty --forge-button-border-style - The border style of the button.\n * @cssproperty --forge-button-border-color - The border color of the button.\n * @cssproperty --forge-button-shape-start-start-radius - The shape start start radius of the button.\n * @cssproperty --forge-button-shape-start-end-radius - The shape start end radius of the button.\n * @cssproperty --forge-button-shape-end-start-radius - The shape end start radius of the button.\n * @cssproperty --forge-button-shape-end-end-radius - The shape end end radius of the button.\n * @cssproperty --forge-button-padding-block - The padding block of the button.\n * @cssproperty --forge-button-padding-inline - The padding inline of the button.\n * @cssproperty --forge-button-background - The background color of the button.\n * @cssproperty --forge-button-hover-background - The background color of the button on hover.\n * @cssproperty --forge-button-active-background - The background color of the button on active state.\n * @cssproperty --forge-button-color - The text color of the button.\n * @cssproperty --forge-button-icon-size - The size of the icon in the button.\n * @cssproperty --forge-button-shadow - The shadow of the button.\n * @cssproperty --forge-button-hover-shadow - The shadow of the button on hover.\n * @cssproperty --forge-button-active-shadow - The shadow of the button on active state.\n * @cssproperty --forge-button-cursor - The cursor type of the button.\n * @cssproperty --forge-button-raised-background - The background color of the raised button.\n * @cssproperty --forge-button-raised-disabled-background - The background color of the disabled raised button.\n * @cssproperty --forge-button-raised-color - The text color of the raised button.\n * @cssproperty --forge-button-raised-disabled-color - The text color of the disabled raised button.\n * @cssproperty --forge-button-raised-shadow - The shadow of the raised button.\n * @cssproperty --forge-button-raised-hover-shadow - The shadow of the raised button on hover.\n * @cssproperty --forge-button-raised-active-shadow - The shadow of the raised button on active state.\n * @cssproperty --forge-button-raised-disabled-shadow - The shadow of the disabled raised button.\n * @cssproperty --forge-button-raised-transition-duration - The transition duration of the raised button.\n * @cssproperty --forge-button-raised-transition-timing - The transition timing of the raised button.\n * @cssproperty --forge-button-flat-background - The background color of the flat button.\n * @cssproperty --forge-button-flat-disabled-background - The background color of the disabled flat button.\n * @cssproperty --forge-button-flat-color - The text color of the flat button.\n * @cssproperty --forge-button-flat-disabled-color - The text color of the disabled flat button.\n * @cssproperty --forge-button-outlined-background - The background color of the outlined button.\n * @cssproperty --forge-button-outlined-color - The text color of the outlined button.\n * @cssproperty --forge-button-outlined-border-width - The border width of the outlined button.\n * @cssproperty --forge-button-outlined-border-style - The border style of the outlined button.\n * @cssproperty --forge-button-outlined-border-color - The border color of the outlined button.\n * @cssproperty --forge-button-link-color - The text color of the link button.\n * @cssproperty --forge-button-link-text-decoration - The text decoration of the link button.\n * @cssproperty --forge-button-link-height - The height of the link button.\n * @cssproperty --forge-button-link-padding - The padding of the link button.\n * @cssproperty --forge-button-link-line-height - The line height of the link button.\n * @cssproperty --forge-button-link-width - The width of the link button.\n * @cssproperty --forge-button-link-hover-text-decoration - The text decoration of the link button on hover.\n * @cssproperty --forge-button-link-active-opacity - The opacity of the link button on active state.\n * @cssproperty --forge-button-link-transition-duration - The transition duration of the link button.\n * @cssproperty --forge-button-link-transition-timing - The transition timing of the link button.\n * @cssproperty --forge-button-disabled-cursor - The cursor type of the disabled button.\n * @cssproperty --forge-button-disabled-text-color - The text color of the disabled button.\n * @cssproperty --forge-button-disabled-background - The background color of the disabled button.\n * @cssproperty --forge-button-disabled-border-color - The border color of the disabled button.\n * @cssproperty --forge-button-disabled-shadow - The shadow of the disabled button.\n * @cssproperty --forge-button-dense-height - The height of the dense button.\n * @cssproperty --forge-button-pill-shape - The shape of the pill button.\n * @cssproperty --forge-button-pill-padding-inline - The inline padding of the pill button.\n * \n * @csspart root - The root container element.\n * @csspart focus-indicator - The focus-indicator indicator element.\n * @csspart state-layer - The state-layer surface element.\n * \n * @slot - This is a default/unnamed slot for the label text.\n * @slot start - Elements to logically render before the label text.\n * @slot end - Elements to logically render after the label text.\n */\n@CustomElement({\n name: BUTTON_CONSTANTS.elementName,\n dependencies: [\n FocusIndicatorComponent,\n StateLayerComponent,\n IconComponent\n ]\n})\nexport class ButtonComponent extends BaseButton<ButtonFoundation> implements IButtonComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(BASE_BUTTON_CONSTANTS.observedAttributes),\n ...Object.values(BUTTON_CONSTANTS.observedAttributes)\n ];\n }\n\n protected readonly _foundation: ButtonFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconArrowDropDown);\n attachShadowTemplate(this, template, styles);\n this._foundation = new ButtonFoundation(new ButtonAdapter(this));\n }\n\n public override attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case BUTTON_CONSTANTS.observedAttributes.VARIANT:\n this.variant = newValue as ButtonVariant;\n return;\n case BUTTON_CONSTANTS.observedAttributes.PILL:\n this.pill = coerceBoolean(newValue);\n return;\n case BUTTON_CONSTANTS.observedAttributes.THEME:\n this.theme = newValue as ButtonTheme;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n @FoundationProperty()\n public declare variant: ButtonVariant;\n\n @FoundationProperty()\n public declare pill: boolean;\n\n @FoundationProperty()\n public declare theme: ButtonTheme;\n}\n", "import { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { ButtonType } from './base/base-button-constants';\nimport { IButtonComponent } from './button';\nimport { ButtonVariant, BUTTON_CONSTANTS } from './button-constants';\n\nexport type ButtonComponentDelegateProps = Partial<IButtonComponent>;\nexport interface IButtonComponentDelegateOptions extends IBaseComponentDelegateOptions {\n variant?: ButtonVariant;\n type?: ButtonType;\n text?: string;\n}\nexport interface IButtonComponentDelegateConfig extends IBaseComponentDelegateConfig<IButtonComponent, IButtonComponentDelegateOptions> {}\n\nexport class ButtonComponentDelegate extends BaseComponentDelegate<IButtonComponent, IButtonComponentDelegateOptions> {\n constructor(config?: IButtonComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IButtonComponent {\n const component = document.createElement(BUTTON_CONSTANTS.elementName);\n if (this._config.options?.variant) {\n component.variant = this._config.options.variant;\n }\n if (this._config.options?.type) {\n component.type = this._config.options.type;\n }\n if (this._config.options?.text) {\n component.textContent = this._config.options.text;\n }\n return component;\n }\n\n public onClick(listener: (evt: MouseEvent) => void): void {\n this._element.addEventListener('click', listener);\n }\n\n public onFocus(listener: (evt: Event) => void): void {\n this._element.addEventListener('focus', evt => listener(evt));\n }\n\n public onBlur(listener: (evt: Event) => void): void {\n this._element.addEventListener('blur', evt => listener(evt));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { ButtonComponent } from './button';\n\nexport * from './button';\nexport * from './button-adapter';\nexport * from './button-component-delegate';\nexport * from './button-constants';\nexport * from './button-foundation';\n\nexport function defineButtonComponent(): void {\n defineCustomElement(ButtonComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["ButtonAdapter", "BaseButtonAdapter", "component", "value", "elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadValues", "BUTTON_CONSTANTS", "ButtonFoundation", "BaseButtonFoundation", "adapter", "value", "previousVariant", "BUTTON_CONSTANTS", "template", "styles", "ButtonComponent", "BaseButton", "IconRegistry", "tylIconArrowDropDown", "attachShadowTemplate", "ButtonFoundation", "ButtonAdapter", "BASE_BUTTON_CONSTANTS", "BUTTON_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "FocusIndicatorComponent", "StateLayerComponent", "IconComponent", "ButtonComponentDelegate", "BaseComponentDelegate", "config", "_a", "_b", "_c", "component", "BUTTON_CONSTANTS", "listener", "evt", "defineButtonComponent", "defineCustomElement", "ButtonComponent"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
-
* License: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import{a as k}from"./chunk.HRRJIFC5.js";import{d as K}from"./chunk.EWK76SPH.js";import{e as V,h as B,j as H}from"./chunk.MKJCHUJH.js";import{c as x}from"./chunk.ZRSDTCSD.js";import{a as N,b as m}from"./chunk.QN5T26HH.js";import{b as A}from"./chunk.YWAUEUAH.js";import{e as F}from"./chunk.5PG6WIIX.js";import{d as P}from"./chunk.FYWPZFLJ.js";import{d as w}from"./chunk.AMZZKEAE.js";import{a as S}from"./chunk.HSI7B43D.js";import{a as p}from"./chunk.NVUMRW44.js";import{a as T,b as D,d as y}from"./chunk.36F2GVWS.js";import{a as L,e as C}from"./chunk.JAWV5Y5T.js";import{m as M}from"./chunk.K7FPXAFS.js";import{a as g,b as O,i as I,k as _}from"./chunk.J2M2MXP2.js";import{a as c,b,d as a}from"./chunk.M3QDAYD2.js";var l=`${D}menu`,U={POPUP:"forge-menu__popup",MENU:"mdc-menu"},G={TOGGLE:`.${l}__toggle,[${l}-toggle],forge-button,button,[type=button],[role=button],a,[tabindex]:not([tabindex^="-"])`,MENU_LIST:"forge-list"},R={OPEN:"open",PLACEMENT:"placement",SELECTED_INDEX:"selected-index",SELECTED_VALUE:"selected-value",DENSE:"dense",ICON_CLASS:"icon-class",PERSIST_SELECTION:"persist-selection",MODE:"mode",SYNC_POPUP_WIDTH:"sync-popup-width",POPUP_CLASSES:"popup-classes",OPTION_LIMIT:"option-limit",OBSERVE_SCROLL:"observe-scroll",OBSERVE_SCROLL_THRESHOLD:"observe-scroll-threshold"},$={SELECT:`${l}-select`,OPEN:`${l}-open`,CLOSE:`${l}-close`,ACTIVE_CHANGE:`${l}-active-change`},z={CHILD_MOUSE_LEAVE_TIMEOUT:300,POPUP_MOUSE_LEAVE_TIMEOUT:500},i={elementName:l,classes:U,selectors:G,attributes:R,events:$,numbers:z};var u=class extends S{constructor(e){super(e);this._childMenus=new Map}getDropdownElement(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.dropdownElement)!=null?t:null}hasTargetElement(){return!!this._targetElement}initializeTarget(){this._targetElement=this._component.querySelector(i.selectors.TOGGLE),this._targetElement||(this._targetElement=this._component.firstElementChild)}initializeAccessibility(e){this._targetElement&&(this._targetElement.setAttribute("aria-atomic","true"),this._targetElement.setAttribute("aria-live","assertive"),this._targetElement.setAttribute("aria-haspopup","true"),this._targetElement.setAttribute("aria-expanded","false"),this._targetElement.hasAttribute("aria-label")||this._targetElement.setAttribute("aria-label",this._targetElement.textContent||""))}addTargetListener(e,t,n=!1){this._targetElement&&this._targetElement.addEventListener(e,t,n)}removeTargetListener(e,t){this._targetElement&&this._targetElement.removeEventListener(e,t)}attachMenu(e){this._listDropdown||!this._targetElement||(this._listDropdown=new B(this._targetElement,e),this._listDropdown.open(),this._targetElement.setAttribute("aria-expanded","true"),this._targetElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`))}setOptions(e){this._listDropdown&&this._listDropdown.setOptions(e)}detachMenu(){this._targetElement&&(this._targetElement.removeAttribute("aria-activedescendant"),this._targetElement.removeAttribute("aria-expanded"),this._targetElement.removeAttribute("aria-controls")),this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0)}setActiveOption(e){var t;(t=this._listDropdown)==null||t.activateOption(e)}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}setCascadeTargetInactive(){let e=this._targetElement;e!=null&&e.active&&(e.active=!1)}getActiveOptionIndex(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?t:-1}focusTarget(){this._targetElement&&this._targetElement.focus()}isTargetFocused(){return document.activeElement===this._targetElement}updateActiveDescendant(e){this._targetElement&&(e?this._targetElement.setAttribute("aria-activedescendant",e):this._targetElement.removeAttribute("aria-activedescendant"))}addDropdownListener(e,t){!this._listDropdown||!this._listDropdown.dropdownElement||this._listDropdown.dropdownElement.addEventListener(e,t)}isOwnElement(e){return!this._targetElement||!this._listDropdown||!this._listDropdown.dropdownElement?!1:this._targetElement.contains(e)||!!this._listDropdown.dropdownElement.contains(e)}propagateKey(e){var t;(t=this._listDropdown)==null||t.handleKey(e)}proxyKeyboardEventToChild(e,t){if(!this.getDropdownElement())return;let n=this._getOpenChildMenu(t);n&&n.propagateKeyEvent(e)}toggleChildMenu(e,t){let r=this._getListItems()[e].parentElement;r&&r.tagName.toLowerCase()===i.elementName&&(t===void 0?r.open=!r.open:r.open=t,r.activateFirstOption())}createChildMenu(e,t,n,o,r){let d=document.createElement("forge-menu");return d.style.display="block",d.addEventListener(i.events.OPEN,()=>{this._childMenus.set(e,d),n(e)}),d.addEventListener(i.events.CLOSE,()=>{this._childMenus.delete(e),o(e)}),d.addEventListener(i.events.SELECT,f=>{f.stopPropagation(),r(b(c({},f.detail),{parentValue:t}))}),d}closeOtherChildMenus(e){let t=[];this._childMenus.forEach((n,o)=>{o!==e&&(n.open=!1,t.push(o))}),t.forEach(n=>this._childMenus.delete(n))}setSelectedValues(e){var t;(t=this._listDropdown)==null||t.setSelectedValues(e)}_getOpenChildMenu(e){if(!this.getDropdownElement())return null;let t=this._getOwnList(e);return t?t.querySelector(`${i.elementName}[${i.attributes.OPEN}]`):null}_getOwnList(e){let t=this.getDropdownElement();return t?t.querySelector(`${m.elementName}[id="list-dropdown-list-${e}"]`):null}_getListItems(){let e=this.getDropdownElement();if(!e)return[];let t=e.querySelector(m.elementName);return t?Array.from(t.querySelectorAll(N.elementName)):[]}};var h=class extends H{constructor(e){super({popupTimeout:i.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,targetTimeout:i.numbers.CHILD_MOUSE_LEAVE_TIMEOUT});this._adapter=e;this._placement="bottom-start";this._fallbackPlacements=[];this._dense=!1;this._iconClass=y;this._persistSelection=!1;this._mode="click";this._identifier=g(),this._clickListener=t=>this._onTargetClick(t),this._blurListener=t=>this._onTargetBlur(t),this._selectListener=t=>this._handleSelectEvent(t),this._keydownListener=t=>this.onKeydown(t),this._activeChangeListener=t=>this._onActiveOptionChanged(t)}initialize(){this._adapter.initializeTarget(),this._adapter.initializeAccessibility(this._identifier),this._initializeInteractionListeners()}disconnect(){this._open&&this._closeDropdown(),this._destroyInteractionListeners()}activateFirstOption(){this._adapter.activateFirstOption()}_applyMode(){this._adapter.hasTargetElement()&&(this._mode!=="cascade"?this._adapter.addTargetListener("click",this._clickListener):this._attachCascadingListeners())}_initializeInteractionListeners(){this._adapter.hasTargetElement()&&(this._applyMode(),this._adapter.addTargetListener("keydown",this._keydownListener,!0),this._adapter.addTargetListener("focusout",this._blurListener))}_destroyInteractionListeners(){this._adapter.hasTargetElement()&&(this._adapter.removeTargetListener("keydown",this._clickListener),this._adapter.removeTargetListener("focusout",this._blurListener),this._adapter.removeTargetListener("click",this._clickListener),this._detachCascadingListeners())}_attachCascadingListeners(){this._adapter.addTargetListener("mouseenter",this._targetMouseEnterListener),this._adapter.addTargetListener("mouseleave",this._targetMouseLeaveListener),this._adapter.addDocumentListener("mousemove",this._documentMouseMoveListener)}_detachCascadingListeners(){this._adapter.removeTargetListener("mouseenter",this._targetMouseEnterListener),this._adapter.removeTargetListener("mouseleave",this._targetMouseLeaveListener),this._adapter.removeDocumentListener("mousemove",this._documentMouseMoveListener)}get _nonDividerOptions(){return this._flatOptions.filter(e=>!e.divider)}get _flatOptions(){return V(this._options,1)?this._options.reduce((e,t)=>e.concat(t.options),[]):this._options}_onTargetClick(e){if(this._open){this._closeDropdown();return}this.open=!this._open,this._open&&this._adapter.focusTarget()}_onTargetBlur(e){this._open&&this._closeDropdown()}_onActiveOptionChanged(e){let t={id:e},n=this._adapter.emitHostEvent(i.events.ACTIVE_CHANGE,t,!0,!0);this._mode!=="cascade"&&n&&this._adapter.updateActiveDescendant(e)}onKeydown(e){if(this._childOpen){this._adapter.proxyKeyboardEventToChild(e,this._identifier);return}switch(e.code){case"Tab":this._open&&this._selectActiveOption();break;case"Escape":this._open&&(e.preventDefault(),e.stopPropagation(),this._closeDropdown());break;case"Space":e.preventDefault(),this._open?this._closeDropdown():this._openDropdown({fromKeyboard:!0});break;case"Home":case"End":this._open&&(e.preventDefault(),this._adapter.propagateKey(e.code));break;case"Enter":if(e.preventDefault(),!this._open){e.preventDefault(),this._openDropdown({fromKeyboard:!0});return}e.stopImmediatePropagation(),this._adapter.propagateKey(e.code);let t=this._adapter.getActiveOptionIndex(),n=this._nonDividerOptions[t];n&&n.options&&n.options.length&&this._adapter.toggleChildMenu(t);break;case"ArrowUp":case"ArrowDown":if(this._open&&e.stopImmediatePropagation(),e.preventDefault(),!this._open&&e.code==="ArrowDown"){this._openDropdown({fromKeyboard:!0}),this._adapter.activateFirstOption();return}this._adapter.propagateKey(e.code);break;case"ArrowLeft":this._open&&e.stopImmediatePropagation(),this._mode==="cascade"&&this._open&&this._closeDropdown();break;case"ArrowRight":if(this._open&&e.stopImmediatePropagation(),!this._open)return;let o=this._adapter.getActiveOptionIndex(),r=this._nonDividerOptions[o];if(r&&r.options){this._adapter.toggleChildMenu(o,e.code==="ArrowRight");return}break}}async _openMenu({fromKeyboard:e}={}){this._open=!0;let t=[];if(typeof this._optionsFactory=="function")this._loadOptionsAsync(),this._options=[];else{if(!this._options||!this._options.length)return;t=this._options}this._persistSelection||t.forEach(r=>r.selected=!1),this._mapIconToLeadingIcon();let n=this._persistSelection?this._getSelectedValues():[],o={id:this._identifier,type:"menu",options:this._options,selectedValues:n,iconClass:this._iconClass,dense:this._dense,multiple:!1,popupStatic:!0,allowBusy:!0,asyncStyle:"spinner",optionBuilder:this._optionBuilder,optionLimit:this._optionLimit,headerBuilder:this._popupHeaderBuilder,footerBuilder:this._popupFooterBuilder,observeScroll:this._observeScroll,observeScrollThreshold:this._observeScrollThreshold,popupPlacement:this._placement,popupFallbackPlacements:this._fallbackPlacements,activeStartIndex:e?0:void 0,popupClasses:[i.classes.POPUP,i.classes.MENU,...this._popupClasses],syncWidth:this._syncPopupWidth,activeChangeCallback:this._activeChangeListener,selectCallback:this._selectListener,popupOffset:this._popupOffset,cascadingElementFactory:r=>this._createCascadingElement(r)};this._adapter.setHostAttribute(i.attributes.OPEN,""),this._adapter.attachMenu(o),this._mode==="cascade"&&(this._adapter.addDropdownListener("mouseenter",this._childPopupMouseEnterListener),this._adapter.addDropdownListener("mouseleave",this._childPopupMouseLeaveListener)),this._adapter.addDropdownListener(i.events.ACTIVE_CHANGE,r=>{this._onActiveOptionChanged(r.detail.id)}),this._adapter.emitHostEvent(i.events.OPEN)}_closeMenu(){this._open=!1,this._childOpen=!1,this._adapter.detachMenu(),this._activeMouseLeaveTimeout!==void 0&&window.clearTimeout(this._activeMouseLeaveTimeout),this._adapter.removeHostAttribute(i.attributes.OPEN),this._adapter.emitHostEvent(i.events.CLOSE)}_loadOptionsAsync(){return this._optionsFactory?Promise.resolve(this._optionsFactory()).then(e=>{if(this._persistSelection||e.forEach(t=>t.selected=!1),this._open)if(e&&I(e)&&e.length){this._options=e,this._adapter.setOptions(e);let t=this._getSelectedValues();t.length&&this._adapter.setSelectedValues(t)}else this._open&&this._closeDropdown()}).catch(e=>{console.error("An unexpected error ocurred while opening the menu:",e),this._open&&this._closeDropdown()}):(this._open&&this._closeMenu(),Promise.resolve())}_handleSelectEvent(e){let t=this._nonDividerOptions.findIndex(n=>n.value===e);t<0||this._selectOptionByIndex(t)}_selectActiveOption(){let e=this._adapter.getActiveOptionIndex();e>=0&&this._nonDividerOptions[e]&&this._selectOptionByIndex(e)}_selectOptionByIndex(e){let{options:t,value:n}=this._nonDividerOptions[e];if(t){this._adapter.setActiveOption(e);return}this._closeDropdown();let o={index:e,value:n};!this._adapter.emitHostEvent(i.events.SELECT,o,!0,!0)||(this._selectedValue=this._persistSelection?n:void 0)}_getSelectedValues(){let e=this._flatOptions.filter(t=>t.selected).map(t=>t.value);return this._selectedValue!==void 0&&e.push(this._selectedValue),e}_onCascadingOptionSelected(e){this._persistSelection&&(this._selectedValue=e.value),this._adapter.emitHostEvent(i.events.SELECT,e),this._closeDropdown()}_onCascadingChildOpen(e){super._clearMouseLeaveTimeout(),this._adapter.closeOtherChildMenus(e),this._childOpen=!0,this._adapter.setActiveOption(e)}_onCascadingChildClose(e){this._childOpen=!1}_closeDropdown(){this._closeMenu()}_openDropdown({fromKeyboard:e}={}){this._openMenu({fromKeyboard:e})}_setCascadeTargetInactive(){this._adapter.setCascadeTargetInactive()}_isOwnElement(e){return this._adapter.isOwnElement(e)}_createCascadingElement({index:e,options:t,parentValue:n}){let o=this._adapter.createChildMenu(e,n,this._onCascadingChildOpen.bind(this),this._onCascadingChildClose.bind(this),this._onCascadingOptionSelected.bind(this));return o.mode="cascade",o.popupOffset={x:0,y:-8},o.dense=this._dense,o.placement="right-start",o.fallbackPlacements=["left-start","right-start"],o.persistSelection=this._persistSelection,this._persistSelection&&(o.selectedValue=this._selectedValue),o.options=t,o.optionBuilder=this._optionBuilder,o.iconClass=this._iconClass,o}_mapIconToLeadingIcon(){this._flatOptions.filter(e=>e.icon).forEach(e=>e.leadingIcon=e.icon)}get open(){return this._open}set open(e){e=!!e,this._open!==e&&(this._open=e,e?this._openDropdown():this._closeDropdown())}set options(e){if(typeof e=="function")this.optionsFactory=e;else if(this.optionsFactory=void 0,this._options=e.map(t=>c({},t)),this._open&&(this._mapIconToLeadingIcon(),this._adapter.setOptions(this._options),this._persistSelection)){let t=this._getSelectedValues();t.length&&this._adapter.setSelectedValues(t)}}get options(){return this._options?this._flatOptions.map(e=>c({},e)):[]}set optionsFactory(e){this._optionsFactory=e}set selectedIndex(e){let t=this._nonDividerOptions[e];t&&t.value!==this._selectedValue&&(this.selectedValue=t.value)}get selectedIndex(){return this._selectedValue!==void 0?this._nonDividerOptions.findIndex(e=>e.value===this._selectedValue):-1}set selectedValue(e){this._selectedValue!==e&&(this._selectedValue=e,this._adapter.setSelectedValues(this._selectedValue))}get selectedValue(){return this._selectedValue}get placement(){return this._placement}set placement(e){this._placement!==e&&(this._placement=e||"bottom-start",this._adapter.setHostAttribute(i.attributes.PLACEMENT,this._placement))}get fallbackPlacements(){return this._fallbackPlacements}set fallbackPlacements(e){this._fallbackPlacements=Array.isArray(e)?e:[]}get dense(){return this._dense}set dense(e){this._dense=e}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass=e}get persistSelection(){return this._persistSelection}set persistSelection(e){this._persistSelection!==e&&(this._persistSelection=e,this._adapter.toggleHostAttribute(i.attributes.PERSIST_SELECTION,this._persistSelection),this._persistSelection||(this._flatOptions.forEach(t=>t.selected=!1),this._selectedValue=void 0))}get mode(){return this._mode}set mode(e){this._mode!==e&&(this._mode=e,this._destroyInteractionListeners(),this._applyMode(),this._adapter.setHostAttribute(i.attributes.MODE,this._mode))}get popupOffset(){return this._popupOffset}set popupOffset(e){this._popupOffset=e}get optionBuilder(){return this._optionBuilder}set optionBuilder(e){this._optionBuilder=e}get popupElement(){return this._adapter.getDropdownElement()}};var q="<template><slot></slot></template>",W=":host{display:-webkit-inline-box;display:inline-flex}:host([hidden]){display:none}",s=class extends k{constructor(){super();w.define(P),this._foundation=new h(new u(this)),C(this,q,W)}static get observedAttributes(){return[i.attributes.OPEN,i.attributes.PLACEMENT,i.attributes.SELECTED_INDEX,i.attributes.SELECTED_VALUE,i.attributes.DENSE,i.attributes.ICON_CLASS,i.attributes.PERSIST_SELECTION,i.attributes.MODE,i.attributes.SYNC_POPUP_WIDTH,i.attributes.POPUP_CLASSES,i.attributes.OPTION_LIMIT,i.attributes.OBSERVE_SCROLL,i.attributes.OBSERVE_SCROLL_THRESHOLD]}connectedCallback(){this.querySelector(i.selectors.TOGGLE)?this._foundation.initialize():M(this,i.selectors.TOGGLE).then(()=>this._foundation.initialize())}attributeChangedCallback(e,t,n){switch(super.attributeChangedCallback(e,t,n),e){case i.attributes.OPEN:this._foundation.open=O(n);break;case i.attributes.PLACEMENT:this._foundation.placement=n;break;case i.attributes.SELECTED_INDEX:this._foundation.selectedIndex=Number(n);break;case i.attributes.SELECTED_VALUE:this._foundation.selectedValue=n;break;case i.attributes.DENSE:this._foundation.dense=_(n);break;case i.attributes.ICON_CLASS:this._foundation.iconClass=n;break;case i.attributes.PERSIST_SELECTION:this.persistSelection=_(n);break;case i.attributes.MODE:this.mode=n;break}}disconnectedCallback(){this._foundation.disconnect()}propagateKeyEvent(e){this._foundation.onKeydown(e)}activateFirstOption(){this._foundation.activateFirstOption()}};a([p()],s.prototype,"open",2),a([p()],s.prototype,"options",2),a([p()],s.prototype,"selectedIndex",2),a([p()],s.prototype,"selectedValue",2),a([p()],s.prototype,"placement",2),a([p()],s.prototype,"fallbackPlacements",2),a([p()],s.prototype,"dense",2),a([p()],s.prototype,"iconClass",2),a([p()],s.prototype,"persistSelection",2),a([p()],s.prototype,"mode",2),a([p()],s.prototype,"popupOffset",2),a([p()],s.prototype,"optionBuilder",2),a([p({set:!1})],s.prototype,"popupElement",2),s=a([T({name:i.elementName,dependencies:[F,x,K,A]})],s);function Qe(){L(s)}export{i as a,u as b,h as c,s as d,Qe as e};
|
|
7
|
-
//# sourceMappingURL=chunk.5CSXPRL3.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/menu/menu-constants.ts", "../../src/menu/menu-adapter.ts", "../../src/menu/menu-foundation.ts", "../../src/menu/menu.ts", "../../src/menu/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { IListDropdownOption, IListDropdownOptionGroup } from '../list-dropdown';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}menu`;\n\nconst classes = {\n POPUP: 'forge-menu__popup',\n MENU: 'mdc-menu'\n};\n\nconst selectors = {\n TOGGLE: `.${elementName}__toggle,[${elementName}-toggle],forge-button,button,[type=button],[role=button],a,[tabindex]:not([tabindex^=\"-\"])`,\n MENU_LIST: 'forge-list'\n};\n\nconst attributes = {\n OPEN: 'open',\n PLACEMENT: 'placement',\n SELECTED_INDEX: 'selected-index',\n SELECTED_VALUE: 'selected-value',\n DENSE: 'dense',\n ICON_CLASS: 'icon-class',\n PERSIST_SELECTION: 'persist-selection',\n MODE: 'mode',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold'\n};\n\nconst events = {\n SELECT: `${elementName}-select`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n ACTIVE_CHANGE: `${elementName}-active-change`\n};\n\nconst numbers = {\n CHILD_MOUSE_LEAVE_TIMEOUT: 300,\n POPUP_MOUSE_LEAVE_TIMEOUT: 500\n};\n\nexport const MENU_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IMenuSelectEventData<T = any, K = any> {\n index: number;\n value?: T;\n parentValue?: K;\n}\n\nexport interface IMenuActiveChangeEventData {\n id: string;\n}\n\nexport interface IMenuOption<T = any> extends IListDropdownOption<T> {\n icon?: string;\n selected?: boolean;\n}\n\nexport interface IMenuOptionGroup extends IListDropdownOptionGroup {}\n\nexport type MenuOptionBuilder = (option: IMenuOption, parentElement: HTMLElement) => HTMLElement | string | void;\nexport type MenuOptionFactory = (() => IMenuOption[]) | (() => Promise<IMenuOption[]>);\nexport type MenuMode = 'click' | 'cascade';\n", "import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IMenuOption } from './index';\nimport { IMenuComponent } from './menu';\nimport { MENU_CONSTANTS, IMenuSelectEventData } from './menu-constants';\nimport { IListDropdownConfig, IListDropdown, ListDropdown } from '../list-dropdown';\nimport { IListComponent, IListItemComponent, LIST_CONSTANTS, LIST_ITEM_CONSTANTS } from '../list';\n\nexport interface IMenuAdapter extends IBaseAdapter {\n getDropdownElement(): HTMLElement | null;\n initializeTarget(): void;\n initializeAccessibility(id: string): void;\n hasTargetElement(): boolean;\n addTargetListener(event: string, callback: (event: Event) => void, bubbles?: boolean): void;\n removeTargetListener(event: string, callback: (event: Event) => void): void;\n attachMenu(config: IListDropdownConfig): void;\n detachMenu(): void;\n setOptions(options: IMenuOption[]): void;\n getActiveOptionIndex(): number;\n setActiveOption(index: number): void;\n activateFirstOption(): void;\n setCascadeTargetInactive(): void;\n propagateKey(key: string): void;\n proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void;\n toggleChildMenu(index: number, open?: boolean): void;\n focusTarget(): void;\n isTargetFocused(): boolean;\n updateActiveDescendant(id: string): void;\n isOwnElement(element: Element): boolean;\n addDropdownListener(type: string, listener: (evt: any) => void): void;\n createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent;\n closeOtherChildMenus(excludeIndex?: number): void;\n setSelectedValues(values: any[]): void;\n}\n\nexport class MenuAdapter extends BaseAdapter<IMenuComponent> implements IMenuAdapter {\n private _targetElement: HTMLElement | null;\n private _listDropdown?: IListDropdown;\n private _childMenus = new Map<number, IMenuComponent>();\n\n constructor(component: IMenuComponent) {\n super(component);\n }\n\n public getDropdownElement(): HTMLElement | null {\n return this._listDropdown?.dropdownElement ?? null;\n }\n\n public hasTargetElement(): boolean {\n return !!this._targetElement;\n }\n\n public initializeTarget(): void {\n this._targetElement = this._component.querySelector(MENU_CONSTANTS.selectors.TOGGLE);\n if (!this._targetElement) {\n this._targetElement = this._component.firstElementChild as HTMLElement;\n }\n }\n\n public initializeAccessibility(id: string): void {\n if (!this._targetElement) {\n return;\n }\n\n this._targetElement.setAttribute('aria-atomic', 'true');\n this._targetElement.setAttribute('aria-live', 'assertive');\n this._targetElement.setAttribute('aria-haspopup', 'true');\n this._targetElement.setAttribute('aria-expanded', 'false');\n\n if (!this._targetElement.hasAttribute('aria-label')) {\n this._targetElement.setAttribute('aria-label', this._targetElement.textContent || '');\n }\n }\n\n public addTargetListener(event: string, callback: (event: Event) => void, bubbles = false): void {\n if (this._targetElement) {\n this._targetElement.addEventListener(event, callback, bubbles);\n }\n }\n\n public removeTargetListener(event: string, callback: (event: Event) => void): void {\n if (this._targetElement) {\n this._targetElement.removeEventListener(event, callback);\n }\n }\n\n public attachMenu(config: IListDropdownConfig): void {\n if (this._listDropdown || !this._targetElement) {\n return;\n }\n this._listDropdown = new ListDropdown(this._targetElement as HTMLElement, config);\n this._listDropdown.open();\n this._targetElement.setAttribute('aria-expanded', 'true');\n this._targetElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n }\n\n public setOptions(options: IMenuOption[]): void {\n if (this._listDropdown) {\n this._listDropdown.setOptions(options);\n }\n }\n\n public detachMenu(): void {\n if (this._targetElement) {\n this._targetElement.removeAttribute('aria-activedescendant');\n this._targetElement.removeAttribute('aria-expanded');\n this._targetElement.removeAttribute('aria-controls');\n }\n\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n }\n\n public setActiveOption(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public setCascadeTargetInactive(): void {\n const listItem = this._targetElement as IListItemComponent;\n if (listItem?.active) {\n listItem.active = false;\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._listDropdown?.getActiveOptionIndex() ?? -1;\n }\n\n public focusTarget(): void {\n if (this._targetElement) {\n this._targetElement.focus();\n }\n }\n\n public isTargetFocused(): boolean {\n return document.activeElement === this._targetElement;\n }\n\n public updateActiveDescendant(id: string): void {\n if (!this._targetElement) {\n return;\n }\n if (id) {\n this._targetElement.setAttribute('aria-activedescendant', id);\n } else {\n this._targetElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public addDropdownListener(type: string, listener: (evt: any) => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n this._listDropdown.dropdownElement.addEventListener(type, listener);\n }\n\n public isOwnElement(el: Element): boolean {\n if (!this._targetElement || !this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._targetElement.contains(el) || !!this._listDropdown.dropdownElement.contains(el);\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void {\n if (!this.getDropdownElement()) {\n return;\n }\n const openMenu = this._getOpenChildMenu(id);\n if (openMenu) {\n openMenu.propagateKeyEvent(evt);\n }\n }\n\n public toggleChildMenu(index: number, open?: boolean): void {\n const listItems = this._getListItems();\n const listItem = listItems[index];\n const childMenu = listItem.parentElement as IMenuComponent;\n if (childMenu && childMenu.tagName.toLowerCase() === MENU_CONSTANTS.elementName) {\n if (open === undefined) {\n childMenu.open = !childMenu.open;\n } else {\n childMenu.open = open;\n }\n childMenu.activateFirstOption();\n }\n }\n\n public createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent {\n const menu = document.createElement('forge-menu');\n menu.style.display = 'block';\n\n // Set listeners to notify the parent menu when anything important happens within a child menu that needs to be propagated to the root menu\n menu.addEventListener(MENU_CONSTANTS.events.OPEN, () => {\n this._childMenus.set(index, menu);\n openCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.CLOSE, () => {\n this._childMenus.delete(index);\n closeCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.SELECT, (evt: CustomEvent<IMenuSelectEventData>) => {\n evt.stopPropagation();\n selectCb({ ...evt.detail, parentValue });\n });\n\n return menu;\n }\n\n public closeOtherChildMenus(excludeIndex?: number): void {\n const menusToRemove: number[] = [];\n this._childMenus.forEach((menu, index) => {\n if (index !== excludeIndex) {\n menu.open = false;\n menusToRemove.push(index);\n }\n });\n menusToRemove.forEach(index => this._childMenus.delete(index));\n }\n\n public setSelectedValues(values: any[]): void {\n this._listDropdown?.setSelectedValues(values);\n }\n\n private _getOpenChildMenu(id: string): IMenuComponent | null {\n if (!this.getDropdownElement()) {\n return null;\n }\n const list = this._getOwnList(id);\n return list ? list.querySelector(`${MENU_CONSTANTS.elementName}[${MENU_CONSTANTS.attributes.OPEN}]`) : null;\n }\n\n private _getOwnList(id: string): IListComponent | null {\n const popup = this.getDropdownElement();\n if (!popup) {\n return null;\n }\n return popup.querySelector(`${LIST_CONSTANTS.elementName}[id=\"list-dropdown-list-${id}\"]`);\n }\n\n private _getListItems(): IListItemComponent[] {\n const popup = this.getDropdownElement();\n if (!popup) {\n return [];\n }\n const listElement = popup.querySelector(LIST_CONSTANTS.elementName);\n if (listElement) {\n return Array.from(listElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[];\n }\n return [];\n }\n}\n", "import { ICustomElementFoundation, isArray, randomChars } from '@tylertech/forge-core';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { CascadingListDropdownAwareFoundation, IListDropdownCascadingElementFactoryConfig, IListDropdownConfig, ListDropdownAsyncStyle, ListDropdownType } from '../list-dropdown';\nimport { isListDropdownOptionType, ListDropdownOptionType } from '../list-dropdown/list-dropdown-utils';\nimport { IPopupPosition, PopupPlacement } from '../popup';\nimport { IMenuOption } from './index';\nimport { IMenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\n\nexport interface IMenuFoundation extends ICustomElementFoundation {\n initialize(): void;\n disconnect(): void;\n onKeydown(evt: KeyboardEvent): void;\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup>;\n optionsFactory: MenuOptionFactory | undefined;\n selectedIndex: number;\n selectedValue: any;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n activateFirstOption(): void;\n}\n\nexport class MenuFoundation extends CascadingListDropdownAwareFoundation<IMenuOption | IMenuOptionGroup> implements IMenuFoundation {\n private _optionsFactory: MenuOptionFactory | undefined;\n private _placement: PopupPlacement = 'bottom-start';\n private _fallbackPlacements: PopupPlacement[] = [];\n private _dense = false;\n private _selectedValue: any;\n private _iconClass = ICON_CLASS_NAME;\n private _persistSelection = false;\n private _mode: MenuMode = 'click';\n private _popupOffset: IPopupPosition;\n private _optionBuilder: MenuOptionBuilder | undefined;\n private _identifier: string;\n private _clickListener: (evt: MouseEvent) => void;\n private _blurListener: (evt: MouseEvent) => void;\n private _selectListener: (value: any) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _activeChangeListener: (id: string) => void;\n \n constructor(private _adapter: IMenuAdapter) {\n super({\n popupTimeout: MENU_CONSTANTS.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,\n targetTimeout: MENU_CONSTANTS.numbers.CHILD_MOUSE_LEAVE_TIMEOUT\n });\n this._identifier = randomChars();\n this._clickListener = evt => this._onTargetClick(evt);\n this._blurListener = evt => this._onTargetBlur(evt);\n this._selectListener = value => this._handleSelectEvent(value);\n this._keydownListener = evt => this.onKeydown(evt);\n this._activeChangeListener = id => this._onActiveOptionChanged(id);\n }\n\n public initialize(): void {\n this._adapter.initializeTarget();\n this._adapter.initializeAccessibility(this._identifier);\n this._initializeInteractionListeners();\n }\n\n public disconnect(): void {\n if (this._open) {\n this._closeDropdown();\n }\n this._destroyInteractionListeners();\n }\n\n public activateFirstOption(): void {\n this._adapter.activateFirstOption();\n }\n\n private _applyMode(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n\n if (this._mode !== 'cascade') {\n this._adapter.addTargetListener('click', this._clickListener);\n } else {\n this._attachCascadingListeners();\n }\n }\n\n private _initializeInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._applyMode();\n this._adapter.addTargetListener('keydown', this._keydownListener, true);\n this._adapter.addTargetListener('focusout', this._blurListener);\n }\n\n private _destroyInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._adapter.removeTargetListener('keydown', this._clickListener);\n this._adapter.removeTargetListener('focusout', this._blurListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._detachCascadingListeners();\n }\n\n protected _attachCascadingListeners(): void {\n this._adapter.addTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.addTargetListener('mouseleave', this._targetMouseLeaveListener);\n\n // We listen for document mousemove events only to track mouse coords for use when determining\n // if popups should open/close after specific delays\n this._adapter.addDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n protected _detachCascadingListeners(): void {\n this._adapter.removeTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.removeTargetListener('mouseleave', this._targetMouseLeaveListener);\n this._adapter.removeDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n private get _nonDividerOptions(): IMenuOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n\n private get _flatOptions(): IMenuOption[] {\n if (isListDropdownOptionType(this._options, ListDropdownOptionType.Group)) {\n return (this._options as IMenuOptionGroup[]).reduce((previousValue, currentValue) => previousValue.concat(currentValue.options), [] as IMenuOption[]) as IMenuOption[];\n }\n return this._options as IMenuOption[];\n }\n\n private _onTargetClick(evt: MouseEvent): void {\n if (this._open) {\n this._closeDropdown();\n return;\n }\n this.open = !this._open;\n if (this._open) {\n this._adapter.focusTarget();\n }\n }\n\n private _onTargetBlur(evt: Event): void {\n if (this._open) {\n this._closeDropdown();\n }\n }\n\n private _onActiveOptionChanged(id: string): void {\n // We need to dispatch an event when the active descendant changes to propagate that to the proper target element\n const data: IMenuActiveChangeEventData = { id };\n const canSetActiveDescendant = this._adapter.emitHostEvent(MENU_CONSTANTS.events.ACTIVE_CHANGE, data, true, true);\n if (this._mode !== 'cascade' && canSetActiveDescendant) {\n this._adapter.updateActiveDescendant(id);\n }\n }\n\n public onKeydown(evt: KeyboardEvent): void {\n // If we have any child menus open, we need to proxy the keyboard events to those and exit\n if (this._childOpen) {\n this._adapter.proxyKeyboardEventToChild(evt, this._identifier);\n return;\n }\n\n switch (evt.code) {\n case 'Tab':\n if (this._open) {\n this._selectActiveOption();\n }\n break;\n case 'Escape':\n if (this._open) {\n evt.preventDefault();\n evt.stopPropagation();\n this._closeDropdown();\n }\n break;\n case 'Space':\n evt.preventDefault();\n\n if (this._open) {\n this._closeDropdown();\n } else {\n this._openDropdown({ fromKeyboard: true });\n }\n break;\n case 'Home':\n case 'End':\n if (this._open) {\n evt.preventDefault();\n this._adapter.propagateKey(evt.code);\n }\n break;\n case 'Enter':\n evt.preventDefault();\n\n if (!this._open) {\n evt.preventDefault();\n this._openDropdown({ fromKeyboard: true });\n return;\n }\n\n evt.stopImmediatePropagation();\n\n this._adapter.propagateKey(evt.code);\n\n // Check if we need to toggle the child menu open state\n const activeIndex = this._adapter.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeIndex];\n if (activeOption && activeOption.options && activeOption.options.length) {\n this._adapter.toggleChildMenu(activeIndex);\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n\n evt.preventDefault();\n\n if (!this._open && evt.code === 'ArrowDown') {\n this._openDropdown({ fromKeyboard: true });\n this._adapter.activateFirstOption();\n return;\n }\n\n this._adapter.propagateKey(evt.code);\n break;\n case 'ArrowLeft':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (this._mode === 'cascade' && this._open) {\n this._closeDropdown();\n }\n break;\n case 'ArrowRight':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (!this._open) {\n return;\n }\n const hoveredIndex = this._adapter.getActiveOptionIndex();\n const hoveredOption = this._nonDividerOptions[hoveredIndex];\n if (hoveredOption && hoveredOption.options) {\n this._adapter.toggleChildMenu(hoveredIndex, evt.code === 'ArrowRight');\n return;\n }\n break;\n }\n }\n\n private async _openMenu({ fromKeyboard }: { fromKeyboard?: boolean } = {}): Promise<void> {\n this._open = true;\n let options: IMenuOption[] = [];\n\n if (typeof this._optionsFactory === 'function') {\n this._loadOptionsAsync();\n this._options = [];\n } else {\n if (!this._options || !this._options.length) {\n return;\n }\n options = this._options as IMenuOption[];\n }\n\n if (!this._persistSelection) {\n options.forEach(o => o.selected = false);\n }\n\n this._mapIconToLeadingIcon();\n\n const selectedValues = this._persistSelection ? this._getSelectedValues() : [];\n\n const config: IListDropdownConfig = {\n id: this._identifier,\n type: ListDropdownType.Menu,\n options: this._options,\n selectedValues,\n iconClass: this._iconClass,\n dense: this._dense,\n multiple: false,\n popupStatic: true,\n allowBusy: true,\n asyncStyle: ListDropdownAsyncStyle.Spinner,\n optionBuilder: this._optionBuilder,\n optionLimit: this._optionLimit,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n popupPlacement: this._placement,\n popupFallbackPlacements: this._fallbackPlacements,\n activeStartIndex: fromKeyboard ? 0 : undefined,\n popupClasses: [\n MENU_CONSTANTS.classes.POPUP,\n MENU_CONSTANTS.classes.MENU,\n ...this._popupClasses as string[]\n ],\n syncWidth: this._syncPopupWidth,\n activeChangeCallback: this._activeChangeListener,\n selectCallback: this._selectListener,\n popupOffset: this._popupOffset,\n cascadingElementFactory: params => this._createCascadingElement(params)\n };\n\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.OPEN, '');\n this._adapter.attachMenu(config);\n\n // If this menu is in a hover mode, we need to listen for mouse enter/leave events to know when the user is hovering over the popup\n if (this._mode === 'cascade') {\n this._adapter.addDropdownListener('mouseenter', this._childPopupMouseEnterListener);\n this._adapter.addDropdownListener('mouseleave', this._childPopupMouseLeaveListener);\n }\n \n this._adapter.addDropdownListener(MENU_CONSTANTS.events.ACTIVE_CHANGE, (evt: CustomEvent<IMenuActiveChangeEventData>) => {\n this._onActiveOptionChanged(evt.detail.id);\n });\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.OPEN);\n }\n\n private _closeMenu(): void {\n this._open = false;\n this._childOpen = false;\n this._adapter.detachMenu();\n\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n\n this._adapter.removeHostAttribute(MENU_CONSTANTS.attributes.OPEN);\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.CLOSE);\n }\n\n private _loadOptionsAsync(): Promise<void> {\n if (!this._optionsFactory) {\n if (this._open) {\n this._closeMenu();\n }\n return Promise.resolve();\n }\n\n return Promise.resolve(this._optionsFactory())\n .then(results => {\n if (!this._persistSelection) {\n results.forEach(o => o.selected = false);\n }\n\n if (this._open) {\n if (results && isArray(results) && results.length) {\n this._options = results;\n this._adapter.setOptions(results);\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n } else if (this._open) {\n this._closeDropdown();\n }\n }\n })\n .catch(e => {\n console.error('An unexpected error ocurred while opening the menu:', e);\n if (this._open) {\n this._closeDropdown();\n }\n });\n }\n\n private _handleSelectEvent(value: any): void {\n const index = this._nonDividerOptions.findIndex(o => o.value === value);\n if (index < 0) {\n return;\n }\n this._selectOptionByIndex(index);\n }\n\n private _selectActiveOption(): void {\n const index = this._adapter.getActiveOptionIndex();\n if (index >= 0 && this._nonDividerOptions[index]) {\n this._selectOptionByIndex(index);\n }\n }\n\n private _selectOptionByIndex(index: number): void {\n const { options, value } = this._nonDividerOptions[index];\n\n // We ignore selections if the option has child options\n if (options) {\n this._adapter.setActiveOption(index);\n return;\n }\n\n this._closeDropdown();\n \n const data: IMenuSelectEventData = { index, value };\n const isCancelled = !this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data, true, true);\n if (!isCancelled) {\n this._selectedValue = this._persistSelection ? value : undefined;\n }\n }\n\n private _getSelectedValues(): any[] {\n const values = this._flatOptions.filter(o => o.selected).map(o => o.value);\n if (this._selectedValue !== undefined) {\n values.push(this._selectedValue);\n }\n return values;\n }\n\n /** Called when a child menu option is selected. */\n protected _onCascadingOptionSelected(data: IMenuSelectEventData): void {\n if (this._persistSelection) {\n this._selectedValue = data.value;\n }\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data);\n this._closeDropdown();\n }\n\n /** Called when a child menu is opened off of one of our menu options. */\n protected _onCascadingChildOpen(index: number): void {\n super._clearMouseLeaveTimeout();\n this._adapter.closeOtherChildMenus(index);\n this._childOpen = true;\n this._adapter.setActiveOption(index);\n }\n\n /** Called when a child menu is closed off of one of our menu options. */\n protected _onCascadingChildClose(index: number): void {\n this._childOpen = false;\n }\n\n protected _closeDropdown(): void {\n this._closeMenu();\n }\n\n protected _openDropdown({ fromKeyboard }: { fromKeyboard?: boolean } = {}): void {\n this._openMenu({ fromKeyboard });\n }\n\n protected _setCascadeTargetInactive(): void {\n this._adapter.setCascadeTargetInactive();\n }\n\n protected _isOwnElement(element: Element): boolean {\n return this._adapter.isOwnElement(element);\n }\n\n private _createCascadingElement({ index, options, parentValue }: IListDropdownCascadingElementFactoryConfig): HTMLElement {\n const menu = this._adapter.createChildMenu(\n index,\n parentValue,\n this._onCascadingChildOpen.bind(this),\n this._onCascadingChildClose.bind(this),\n this._onCascadingOptionSelected.bind(this)\n );\n menu.mode = 'cascade';\n menu.popupOffset = { x: 0, y: -8 };\n menu.dense = this._dense;\n menu.placement = 'right-start';\n menu.fallbackPlacements = ['left-start', 'right-start']; // Cascading menus should only fallback to left or right placement if needed\n menu.persistSelection = this._persistSelection;\n if (this._persistSelection) {\n menu.selectedValue = this._selectedValue;\n }\n menu.options = options;\n menu.optionBuilder = this._optionBuilder;\n menu.iconClass = this._iconClass;\n\n return menu;\n }\n\n private _mapIconToLeadingIcon(): void {\n // For backwards compatibility with old API, map the old \"icon\" property to the new \"leadingIcon\" property (if exists)\n this._flatOptions.filter(o => o.icon).forEach(o => o.leadingIcon = o.icon);\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n value = Boolean(value);\n if (this._open !== value) {\n this._open = value;\n if (value) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n\n public set options(options: IMenuOption[]) {\n if (typeof options === 'function') {\n this.optionsFactory = options;\n } else {\n this.optionsFactory = undefined;\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n this._options = options.map(o => ({ ...o }));\n \n if (this._open) {\n this._mapIconToLeadingIcon();\n this._adapter.setOptions(this._options as IMenuOption[]);\n if (this._persistSelection) {\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n }\n }\n }\n }\n public get options(): IMenuOption[] {\n if (!this._options) {\n return [];\n }\n\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n return this._flatOptions.map(o => ({ ...o }));\n }\n\n public set optionsFactory(factory: MenuOptionFactory | undefined) {\n this._optionsFactory = factory;\n }\n\n public set selectedIndex(value: number) {\n const option = this._nonDividerOptions[value];\n if (option && option.value !== this._selectedValue) {\n this.selectedValue = option.value;\n }\n }\n public get selectedIndex(): number {\n return this._selectedValue !== undefined ? this._nonDividerOptions.findIndex(o => o.value === this._selectedValue) : -1;\n }\n\n public set selectedValue(value: any) {\n if (this._selectedValue !== value) {\n this._selectedValue = value;\n this._adapter.setSelectedValues(this._selectedValue);\n }\n }\n public get selectedValue(): any {\n return this._selectedValue;\n }\n\n public get placement(): PopupPlacement {\n return this._placement;\n }\n public set placement(value: PopupPlacement) {\n if (this._placement !== value) {\n this._placement = value || 'bottom-start';\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.PLACEMENT, this._placement);\n }\n }\n\n public get fallbackPlacements(): PopupPlacement[] {\n return this._fallbackPlacements;\n }\n public set fallbackPlacements(value: PopupPlacement[]) {\n this._fallbackPlacements = Array.isArray(value) ? value : [];\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n this._dense = value;\n }\n\n public get iconClass(): string {\n return this._iconClass;\n }\n public set iconClass(value: string) {\n this._iconClass = value;\n }\n\n public get persistSelection(): boolean {\n return this._persistSelection;\n }\n public set persistSelection(value: boolean) {\n if (this._persistSelection === value) {\n return;\n }\n\n this._persistSelection = value;\n this._adapter.toggleHostAttribute(MENU_CONSTANTS.attributes.PERSIST_SELECTION, this._persistSelection);\n\n if (!this._persistSelection) {\n this._flatOptions.forEach(o => o.selected = false);\n this._selectedValue = undefined;\n }\n }\n\n public get mode(): MenuMode {\n return this._mode;\n }\n public set mode(value: MenuMode) {\n if (this._mode !== value) {\n this._mode = value;\n this._destroyInteractionListeners();\n this._applyMode();\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.MODE, this._mode);\n }\n }\n\n public get popupOffset(): IPopupPosition {\n return this._popupOffset;\n }\n public set popupOffset(value: IPopupPosition) {\n this._popupOffset = value;\n }\n\n public get optionBuilder(): MenuOptionBuilder | undefined {\n return this._optionBuilder;\n }\n public set optionBuilder(cb: MenuOptionBuilder | undefined) {\n this._optionBuilder = cb;\n }\n\n public get popupElement(): HTMLElement | null {\n return this._adapter.getDropdownElement();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, ensureChild, FoundationProperty, isDefined } from '@tylertech/forge-core';\nimport { tylIconArrowRight } from '@tylertech/tyler-icons/standard';\nimport { CircularProgressComponent } from '../circular-progress';\nimport { IconRegistry } from '../icon';\nimport { LinearProgressComponent } from '../linear-progress';\nimport { ListComponent } from '../list';\nimport { IListDropdownAware, ListDropdownAware } from '../list-dropdown/list-dropdown-aware';\nimport { IPopupPosition, PopupComponent, PopupPlacement } from '../popup';\nimport { MenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOption, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\nimport { MenuFoundation } from './menu-foundation';\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:-webkit-inline-box;display:inline-flex}:host([hidden]){display:none}';\n\nexport interface IMenuComponent extends IListDropdownAware {\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n selectedIndex: number;\n selectedValue: number;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n popupElement: HTMLElement | undefined;\n propagateKeyEvent(evt: KeyboardEvent): void;\n activateFirstOption(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-menu': IMenuComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-menu-select': CustomEvent<IMenuSelectEventData>;\n 'forge-menu-open': CustomEvent<void>;\n 'forge-menu-close': CustomEvent<void>;\n 'forge-menu-active-change': CustomEvent<IMenuActiveChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-menu>` custom element.\n * \n * @tag forge-menu\n */\n@CustomElement({\n name: MENU_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n ListComponent,\n CircularProgressComponent,\n LinearProgressComponent\n ]\n})\nexport class MenuComponent extends ListDropdownAware implements IMenuComponent {\n public static get observedAttributes(): string[] {\n return [\n MENU_CONSTANTS.attributes.OPEN,\n MENU_CONSTANTS.attributes.PLACEMENT,\n MENU_CONSTANTS.attributes.SELECTED_INDEX,\n MENU_CONSTANTS.attributes.SELECTED_VALUE,\n MENU_CONSTANTS.attributes.DENSE,\n MENU_CONSTANTS.attributes.ICON_CLASS,\n MENU_CONSTANTS.attributes.PERSIST_SELECTION,\n MENU_CONSTANTS.attributes.MODE,\n MENU_CONSTANTS.attributes.SYNC_POPUP_WIDTH,\n MENU_CONSTANTS.attributes.POPUP_CLASSES,\n MENU_CONSTANTS.attributes.OPTION_LIMIT,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD\n ];\n }\n\n private _foundation: MenuFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconArrowRight);\n this._foundation = new MenuFoundation(new MenuAdapter(this));\n attachShadowTemplate(this, template, styles);\n }\n\n public connectedCallback(): void {\n if (this.querySelector(MENU_CONSTANTS.selectors.TOGGLE)) {\n this._foundation.initialize();\n } else {\n ensureChild(this, MENU_CONSTANTS.selectors.TOGGLE).then(() => this._foundation.initialize());\n }\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case MENU_CONSTANTS.attributes.OPEN:\n this._foundation.open = isDefined(newValue);\n break;\n case MENU_CONSTANTS.attributes.PLACEMENT:\n this._foundation.placement = newValue as PopupPlacement;\n break;\n case MENU_CONSTANTS.attributes.SELECTED_INDEX:\n this._foundation.selectedIndex = Number(newValue);\n break;\n case MENU_CONSTANTS.attributes.SELECTED_VALUE:\n this._foundation.selectedValue = newValue;\n break;\n case MENU_CONSTANTS.attributes.DENSE:\n this._foundation.dense = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.ICON_CLASS:\n this._foundation.iconClass = newValue;\n break;\n case MENU_CONSTANTS.attributes.PERSIST_SELECTION:\n this.persistSelection = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.MODE:\n this.mode = newValue as MenuMode;\n break;\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n /** Gets/sets the open state. */\n @FoundationProperty()\n public declare open: boolean;\n\n /** Gets/sets the array of options to display in the menu. */\n @FoundationProperty()\n public declare options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n\n /** Gets/sets the selected option to the index. Does not support cascading menus. */\n @FoundationProperty()\n public declare selectedIndex: number;\n\n /** Gets/sets the value of the option to select. */\n @FoundationProperty()\n public declare selectedValue: any;\n\n /** Gets/sets the menu placement (default is bottom-left). */\n @FoundationProperty()\n public declare placement: `${PopupPlacement}`;\n\n /** Gets/sets the fallback menu placement for overriding the default of any side. */\n @FoundationProperty()\n public declare fallbackPlacements: `${PopupPlacement}`[];\n\n /** Gets/sets dense state of the list options used in the menu popup. */\n @FoundationProperty()\n public declare dense: boolean;\n\n /** Gets/sets the class name to use for option icons. */\n @FoundationProperty()\n public declare iconClass: string;\n\n /**\n * Gets/sets whether selection of menu items is persisted.\n * @deprecated Please use `<forge-select-dropdown>` for handling selection states.\n */\n @FoundationProperty()\n public declare persistSelection: boolean;\n\n /** Gets/sets the mode that this menu is using. */\n @FoundationProperty()\n public declare mode: MenuMode;\n\n /** Sets the position adjustment on the internal popup element. */\n @FoundationProperty()\n public declare popupOffset: IPopupPosition;\n\n /** Sets the callback that will be executed for each option in the dropdown for producing custom option templates. */\n @FoundationProperty()\n public declare optionBuilder: MenuOptionBuilder;\n\n /** Gets the currently active popup element when the dropdown is open. */\n @FoundationProperty({ set: false })\n public declare popupElement: HTMLElement | undefined;\n\n /** Force propagates the key event from another element this component. */\n public propagateKeyEvent(evt: KeyboardEvent): void {\n this._foundation.onKeydown(evt);\n }\n\n public activateFirstOption(): void {\n this._foundation.activateFirstOption();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { MenuComponent } from './menu';\n\nexport * from './menu-adapter';\nexport * from './menu-constants';\nexport * from './menu-foundation';\nexport * from './menu';\n\nexport function defineMenuComponent(): void {\n defineCustomElement(MenuComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "selectors", "attributes", "events", "numbers", "MENU_CONSTANTS", "MenuAdapter", "BaseAdapter", "component", "_a", "_b", "MENU_CONSTANTS", "id", "event", "callback", "bubbles", "config", "ListDropdown", "options", "index", "listItem", "type", "listener", "el", "key", "evt", "openMenu", "open", "childMenu", "parentValue", "openCb", "closeCb", "selectCb", "menu", "__spreadProps", "__spreadValues", "excludeIndex", "menusToRemove", "values", "list", "popup", "LIST_CONSTANTS", "listElement", "LIST_ITEM_CONSTANTS", "MenuFoundation", "CascadingListDropdownAwareFoundation", "_adapter", "MENU_CONSTANTS", "ICON_CLASS_NAME", "randomChars", "evt", "value", "id", "o", "isListDropdownOptionType", "previousValue", "currentValue", "data", "canSetActiveDescendant", "activeIndex", "activeOption", "hoveredIndex", "hoveredOption", "fromKeyboard", "options", "selectedValues", "config", "params", "results", "isArray", "index", "values", "element", "parentValue", "menu", "__spreadValues", "factory", "option", "cb", "template", "styles", "MenuComponent", "ListDropdownAware", "IconRegistry", "tylIconArrowRight", "MenuFoundation", "MenuAdapter", "attachShadowTemplate", "MENU_CONSTANTS", "ensureChild", "name", "oldValue", "newValue", "isDefined", "coerceBoolean", "evt", "__decorateClass", "FoundationProperty", "CustomElement", "PopupComponent", "ListComponent", "CircularProgressComponent", "LinearProgressComponent", "defineMenuComponent", "defineCustomElement", "MenuComponent"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
-
* License: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import{a as h,d as b}from"./chunk.5CSXPRL3.js";import{d as C}from"./chunk.FXIWCHLW.js";import{b as M}from"./chunk.FAXYCG55.js";import{o as B}from"./chunk.FYWPZFLJ.js";import{d as _,l as A}from"./chunk.AMZZKEAE.js";import{a as f}from"./chunk.HSI7B43D.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as u,b as I}from"./chunk.36F2GVWS.js";import{a,d as s,g as l,k as c}from"./chunk.JAWV5Y5T.js";import{a as m,d as p}from"./chunk.M3QDAYD2.js";var n=class extends f{constructor(o){super(o)}initialize(){this._menuElement=l(this._component,h.elementName)}setMenuOptions(o){this._menuElement.options=o}};var i=class{constructor(e){this._adapter=e;this._options=[];this._isInitialized=!1}initialize(){this._adapter.initialize(),this._adapter.setMenuOptions(this._options),this._isInitialized=!0}disconnect(){this._isInitialized=!1}get options(){return this._options}set options(e){this._options=e.map(o=>m({},o)),this._isInitialized&&this._adapter.setMenuOptions(e)}};var g=`${I}app-bar-help-button`,O={elementName:g};var x='<template><forge-menu placement="bottom-end"><forge-icon-button aria-label="Open help menu"><forge-icon name="help"></forge-icon></forge-icon-button><forge-tooltip delay="500" position="bottom">Help</forge-tooltip></forge-menu></template>',t=class extends c{constructor(){super();_.define(B),this._foundation=new i(new n(this))}initializedCallback(){s(this,x)}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}};p([d()],t.prototype,"options",2),t=p([u({name:O.elementName,dependencies:[b,M,C,A]})],t);function Z(){a(t)}export{n as a,i as b,O as c,t as d,Z as e};
|
|
7
|
-
//# sourceMappingURL=chunk.5LVZVQXB.js.map
|