@tylertech/forge 3.0.0-next.10 → 3.0.0-next.12
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 +36487 -28544
- package/dist/esm/accordion/index.js +1 -1
- package/dist/esm/app-bar/help-button/index.js +1 -1
- package/dist/esm/app-bar/index.js +1 -1
- package/dist/esm/app-bar/menu-button/index.js +1 -1
- package/dist/esm/app-bar/notification-button/index.js +1 -1
- package/dist/esm/app-bar/profile-button/index.js +1 -1
- package/dist/esm/app-bar/search/index.js +1 -1
- package/dist/esm/autocomplete/index.js +1 -1
- package/dist/esm/avatar/index.js +1 -1
- package/dist/esm/backdrop/index.js +1 -1
- package/dist/esm/badge/index.js +1 -1
- package/dist/esm/banner/index.js +1 -1
- package/dist/esm/bottom-sheet/index.js +1 -1
- package/dist/esm/busy-indicator/index.js +1 -1
- package/dist/esm/button/index.js +1 -1
- package/dist/esm/button-area/index.js +7 -0
- package/dist/esm/button-area/index.js.map +7 -0
- package/dist/esm/button-toggle/button-toggle/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/dist/esm/button-toggle/index.js +1 -1
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
- package/dist/esm/calendar/calendar-menu/index.js +1 -1
- package/dist/esm/calendar/index.js +1 -1
- package/dist/esm/card/index.js +1 -1
- package/dist/esm/checkbox/index.js +1 -1
- package/dist/esm/chip-field/index.js +1 -1
- package/dist/esm/chips/chip/index.js +1 -1
- package/dist/esm/chips/chip-set/index.js +1 -1
- package/dist/esm/chips/index.js +1 -1
- package/dist/esm/chunks/chunk.2LIWNFQK.js +7 -0
- package/dist/esm/chunks/{chunk.U4GYQOPY.js → chunk.2WSXSOYB.js} +2 -2
- package/dist/esm/chunks/{chunk.TT2VTZJ6.js → chunk.37JFBP4X.js} +2 -2
- package/dist/esm/chunks/{chunk.TT2VTZJ6.js.map → chunk.37JFBP4X.js.map} +2 -2
- package/dist/esm/chunks/{chunk.VNOJO2PF.js → chunk.3X4N4ZPY.js} +2 -2
- package/dist/esm/chunks/{chunk.N7PQ2MUQ.js → chunk.436MTO6R.js} +2 -2
- package/dist/esm/chunks/{chunk.7TGGJGTG.js → chunk.4CXLGEJO.js} +2 -2
- package/dist/esm/chunks/{chunk.7TGGJGTG.js.map → chunk.4CXLGEJO.js.map} +1 -1
- package/dist/esm/chunks/{chunk.7ZQMJLHE.js → chunk.4JF54GDJ.js} +2 -2
- package/dist/esm/chunks/{chunk.UCM6CGFM.js → chunk.4USQ2AP6.js} +2 -2
- package/dist/esm/chunks/{chunk.6MPXRRMB.js → chunk.4XJYS5WH.js} +2 -2
- package/dist/esm/chunks/{chunk.46VQ2S2Z.js → chunk.5ASOX23Q.js} +2 -2
- package/dist/esm/chunks/{chunk.46VQ2S2Z.js.map → chunk.5ASOX23Q.js.map} +1 -1
- package/dist/esm/chunks/{chunk.YQXX5KSW.js → chunk.66X366TV.js} +2 -2
- package/dist/esm/chunks/chunk.6VSFLBZF.js +7 -0
- package/dist/esm/chunks/chunk.6VSFLBZF.js.map +7 -0
- package/dist/esm/chunks/chunk.7L66GZDN.js +7 -0
- package/dist/esm/chunks/{chunk.WBYXVMYI.js → chunk.7M4HRJYP.js} +2 -2
- package/dist/esm/chunks/{chunk.Z4J4D5FD.js → chunk.7PPBXNAD.js} +2 -2
- package/dist/esm/chunks/{chunk.IDD54B5P.js → chunk.7UJAI6P2.js} +2 -2
- package/dist/esm/chunks/{chunk.UKFJHDO7.js → chunk.A3ZDCBLA.js} +2 -2
- package/dist/esm/chunks/{chunk.WH6C36MO.js → chunk.AHAARGYM.js} +2 -2
- package/dist/esm/chunks/chunk.AQ7ROWO4.js +7 -0
- package/dist/esm/chunks/chunk.AQ7ROWO4.js.map +7 -0
- package/dist/esm/chunks/{chunk.E6KWYFZG.js → chunk.AY43NTAK.js} +2 -2
- package/dist/esm/chunks/chunk.C2MQN7MI.js +7 -0
- package/dist/esm/chunks/chunk.C2MQN7MI.js.map +7 -0
- package/dist/esm/chunks/{chunk.PHBOQRF6.js → chunk.C5ZUGOOC.js} +2 -2
- package/dist/esm/chunks/{chunk.7DHFTAWI.js → chunk.C7VEJINB.js} +2 -2
- package/dist/esm/chunks/{chunk.Y5UJ23LB.js → chunk.CBIHNCT5.js} +2 -2
- package/dist/esm/chunks/chunk.CLD75EBJ.js +7 -0
- package/dist/esm/chunks/chunk.CLD75EBJ.js.map +7 -0
- package/dist/esm/chunks/chunk.CMRVP4EA.js +7 -0
- package/dist/esm/chunks/chunk.CMRVP4EA.js.map +7 -0
- package/dist/esm/chunks/{chunk.5IQGVS6U.js → chunk.CQQSOTZ5.js} +2 -2
- package/dist/esm/chunks/chunk.CZEF72BG.js +12 -0
- package/dist/esm/chunks/chunk.CZEF72BG.js.map +7 -0
- package/dist/esm/chunks/chunk.D5ZHKPCL.js +7 -0
- package/dist/esm/chunks/chunk.D5ZHKPCL.js.map +7 -0
- package/dist/esm/chunks/{chunk.MF36FG2X.js → chunk.DABGA7I6.js} +2 -2
- package/dist/esm/chunks/{chunk.TL6WVBGT.js → chunk.DH76CMUT.js} +2 -2
- package/dist/esm/chunks/{chunk.KSCUIS5C.js → chunk.DLQSINSS.js} +2 -2
- package/dist/esm/chunks/{chunk.T5X6UNH7.js → chunk.DQVYB55P.js} +2 -2
- package/dist/esm/chunks/chunk.E4TAHUQO.js +177 -0
- package/dist/esm/chunks/chunk.E4TAHUQO.js.map +7 -0
- package/dist/esm/chunks/chunk.EY37FYZ4.js +7 -0
- package/dist/esm/chunks/chunk.EY37FYZ4.js.map +7 -0
- package/dist/esm/chunks/chunk.FK6NNHXH.js +7 -0
- package/dist/esm/chunks/chunk.FK6NNHXH.js.map +7 -0
- package/dist/esm/chunks/chunk.G6JWSERI.js +7 -0
- package/dist/esm/chunks/{chunk.2O6IZ7XZ.js.map → chunk.G6JWSERI.js.map} +4 -4
- package/dist/esm/chunks/chunk.GHR7T6U2.js +7 -0
- package/dist/esm/chunks/chunk.GHR7T6U2.js.map +7 -0
- package/dist/esm/chunks/{chunk.NF4J3Q5X.js → chunk.GWIXDVIA.js} +2 -2
- package/dist/esm/chunks/{chunk.AHHNJSZK.js → chunk.HBCDD25D.js} +2 -2
- package/dist/esm/chunks/{chunk.5M6Y2RU6.js → chunk.HDO3WRH7.js} +2 -2
- package/dist/esm/chunks/{chunk.DTZFWZPB.js → chunk.HGH6SSHZ.js} +2 -2
- package/dist/esm/chunks/chunk.HJ23XQDJ.js +7 -0
- package/dist/esm/chunks/chunk.HJ23XQDJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.2QSDH3PC.js → chunk.HKSXC5VK.js} +2 -2
- package/dist/esm/chunks/chunk.I5SFCLDD.js +7 -0
- package/dist/esm/chunks/{chunk.NK7H3MMM.js.map → chunk.I5SFCLDD.js.map} +3 -3
- package/dist/esm/chunks/{chunk.X3YNJSDT.js → chunk.IJ2I25V3.js} +2 -2
- package/dist/esm/chunks/{chunk.ZAJB7G4V.js → chunk.IURDWGLD.js} +2 -2
- package/dist/esm/chunks/chunk.IXGXASHQ.js +7 -0
- package/dist/esm/chunks/{chunk.EDEYCLDU.js.map → chunk.IXGXASHQ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.44UCSD46.js → chunk.JCO4M4PF.js} +2 -2
- package/dist/esm/chunks/{chunk.44UCSD46.js.map → chunk.JCO4M4PF.js.map} +2 -2
- package/dist/esm/chunks/{chunk.CFDK4RCW.js → chunk.K7FPXAFS.js} +2 -2
- package/dist/esm/chunks/{chunk.CFDK4RCW.js.map → chunk.K7FPXAFS.js.map} +3 -3
- package/dist/esm/chunks/{chunk.G4IN6Y46.js → chunk.KVCDAZ6B.js} +2 -2
- package/dist/esm/chunks/chunk.LNLO36U6.js +7 -0
- package/dist/esm/chunks/chunk.LNLO36U6.js.map +7 -0
- package/dist/esm/chunks/chunk.LV7XF22P.js +7 -0
- package/dist/esm/chunks/chunk.LV7XF22P.js.map +7 -0
- package/dist/esm/chunks/{chunk.2ZTERGYF.js → chunk.MHU452GM.js} +2 -2
- package/dist/esm/chunks/chunk.MLTEGJH6.js +7 -0
- package/dist/esm/chunks/{chunk.BBKRPL6R.js → chunk.MWWY5TX5.js} +2 -2
- package/dist/esm/chunks/chunk.NDJZYFRT.js +7 -0
- package/dist/esm/chunks/chunk.NDJZYFRT.js.map +7 -0
- package/dist/esm/chunks/chunk.O5GE3FFV.js +7 -0
- package/dist/esm/chunks/{chunk.QI3GKORL.js.map → chunk.O5GE3FFV.js.map} +2 -2
- package/dist/esm/chunks/chunk.OQ75YGB6.js +7 -0
- package/dist/esm/chunks/{chunk.JTIPXKV6.js.map → chunk.OQ75YGB6.js.map} +2 -2
- package/dist/esm/chunks/chunk.OQAD6MFL.js +7 -0
- package/dist/esm/chunks/chunk.OQAD6MFL.js.map +7 -0
- package/dist/esm/chunks/{chunk.QL45FKVJ.js → chunk.OXGOCF4L.js} +2 -2
- package/dist/esm/chunks/{chunk.RFLASSCI.js → chunk.PADPL4L3.js} +2 -2
- package/dist/esm/chunks/chunk.PCOOIP2H.js +7 -0
- package/dist/esm/chunks/chunk.PCOOIP2H.js.map +7 -0
- package/dist/esm/chunks/chunk.PDICDA2V.js +7 -0
- package/dist/esm/chunks/{chunk.CRWP7H46.js.map → chunk.PDICDA2V.js.map} +2 -2
- package/dist/esm/chunks/{chunk.WO7KEM5K.js → chunk.PDSOXEMY.js} +2 -2
- package/dist/esm/chunks/{chunk.PHTOULRR.js → chunk.PLNLLKP2.js} +2 -2
- package/dist/esm/chunks/{chunk.XOM2FYQ2.js → chunk.Q7BWJCT5.js} +2 -2
- package/dist/esm/chunks/chunk.QNVVUUNQ.js +7 -0
- package/dist/esm/chunks/chunk.QNVVUUNQ.js.map +7 -0
- package/dist/esm/chunks/chunk.R2KOYHIZ.js +7 -0
- package/dist/esm/chunks/chunk.R2KOYHIZ.js.map +7 -0
- package/dist/esm/chunks/chunk.R6NA7SV2.js +7 -0
- package/dist/esm/chunks/chunk.R6NA7SV2.js.map +7 -0
- package/dist/esm/chunks/{chunk.57IVD67K.js → chunk.RBFGJH3C.js} +2 -2
- package/dist/esm/chunks/{chunk.RGPNNISQ.js → chunk.RNUGVHZF.js} +2 -2
- package/dist/esm/chunks/{chunk.2TQONIPK.js → chunk.RWUJGZ3R.js} +2 -2
- package/dist/esm/chunks/{chunk.ZDAXNM2P.js → chunk.RXLORASN.js} +2 -2
- package/dist/esm/chunks/chunk.SEWAMWO6.js +7 -0
- package/dist/esm/chunks/chunk.SEWAMWO6.js.map +7 -0
- package/dist/esm/chunks/chunk.TCFKFKZW.js +7 -0
- package/dist/esm/chunks/chunk.TCFKFKZW.js.map +7 -0
- package/dist/esm/chunks/{chunk.J3UFSHDY.js → chunk.TGVLYX5F.js} +2 -2
- package/dist/esm/chunks/{chunk.MGWY7YIL.js → chunk.TSH7BTC3.js} +2 -2
- package/dist/esm/chunks/chunk.U5XNDTSZ.js +7 -0
- package/dist/esm/chunks/{chunk.SN5LPTHH.js.map → chunk.U5XNDTSZ.js.map} +3 -3
- package/dist/esm/chunks/chunk.UAKQY7QB.js +7 -0
- package/dist/esm/chunks/chunk.UAKQY7QB.js.map +7 -0
- package/dist/esm/chunks/{chunk.XRESQBNE.js → chunk.UAVC4YLD.js} +2 -2
- package/dist/esm/chunks/chunk.URFSXQKR.js +7 -0
- package/dist/esm/chunks/chunk.URFSXQKR.js.map +7 -0
- package/dist/esm/chunks/{chunk.XATLSSAW.js → chunk.UVJFHSMF.js} +2 -2
- package/dist/esm/chunks/chunk.UZPZ6KUN.js +7 -0
- package/dist/esm/chunks/chunk.UZPZ6KUN.js.map +7 -0
- package/dist/esm/chunks/chunk.V6443MP3.js +7 -0
- package/dist/esm/chunks/chunk.V6443MP3.js.map +7 -0
- package/dist/esm/chunks/chunk.VAAID3SH.js +7 -0
- package/dist/esm/chunks/chunk.VAAID3SH.js.map +7 -0
- package/dist/esm/chunks/chunk.VDGJ4UDL.js +7 -0
- package/dist/esm/chunks/chunk.VDGJ4UDL.js.map +7 -0
- package/dist/esm/chunks/chunk.VPNDAKM3.js +7 -0
- package/dist/esm/chunks/chunk.VPNDAKM3.js.map +7 -0
- package/dist/esm/chunks/{chunk.QZK3WEH6.js → chunk.W7H2ZYNR.js} +2 -2
- package/dist/esm/chunks/chunk.WCTSXMGU.js +7 -0
- package/dist/esm/chunks/chunk.WCTSXMGU.js.map +7 -0
- package/dist/esm/chunks/chunk.WJXDDQUK.js +7 -0
- package/dist/esm/chunks/chunk.WJXDDQUK.js.map +7 -0
- package/dist/esm/chunks/{chunk.6VDF54LZ.js → chunk.WK2L7BPJ.js} +2 -2
- package/dist/esm/chunks/{chunk.L3M6DPQB.js → chunk.WOMYKBUG.js} +3 -3
- package/dist/esm/chunks/chunk.WOMYKBUG.js.map +7 -0
- package/dist/esm/chunks/chunk.WVGIT7F7.js +7 -0
- package/dist/esm/chunks/chunk.WVGIT7F7.js.map +7 -0
- package/dist/esm/chunks/{chunk.5CMQ7DNL.js → chunk.WWTQAN4G.js} +2 -2
- package/dist/esm/chunks/chunk.YA3RDJCV.js +7 -0
- package/dist/esm/chunks/chunk.YA3RDJCV.js.map +7 -0
- package/dist/esm/chunks/{chunk.OTD2SFQJ.js → chunk.YIFI5D2X.js} +2 -2
- package/dist/esm/chunks/{chunk.OTD2SFQJ.js.map → chunk.YIFI5D2X.js.map} +2 -2
- package/dist/esm/chunks/chunk.YOXZOPAC.js +7 -0
- package/dist/esm/chunks/chunk.YOXZOPAC.js.map +7 -0
- package/dist/esm/chunks/{chunk.SEP3L4QL.js → chunk.YP2NHWIW.js} +2 -2
- package/dist/esm/chunks/chunk.YPA27RX7.js +7 -0
- package/dist/esm/chunks/chunk.YXXKPT6P.js +7 -0
- package/dist/esm/chunks/{chunk.BNFJRFLW.js.map → chunk.YXXKPT6P.js.map} +2 -2
- package/dist/esm/chunks/{chunk.4WB3FGEL.js → chunk.Z6AFASMO.js} +2 -2
- package/dist/esm/chunks/{chunk.BIFQ4VOJ.js → chunk.ZMUDT5UK.js} +2 -2
- package/dist/esm/chunks/{chunk.BIFQ4VOJ.js.map → chunk.ZMUDT5UK.js.map} +2 -2
- package/dist/esm/chunks/{chunk.P5QIB6OY.js → chunk.ZREXLSAJ.js} +2 -2
- package/dist/esm/chunks/chunk.ZYVXIP42.js +7 -0
- package/dist/esm/chunks/{chunk.MJSLXZBM.js.map → chunk.ZYVXIP42.js.map} +2 -2
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +1 -1
- package/dist/esm/core/base/index.js +1 -1
- package/dist/esm/core/delegates/index.js +1 -1
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/core/utils/index.js +1 -1
- package/dist/esm/date-picker/index.js +1 -1
- package/dist/esm/date-range-picker/index.js +1 -1
- package/dist/esm/dialog/index.js +1 -1
- package/dist/esm/divider/index.js +1 -1
- package/dist/esm/drawer/base/index.js +1 -1
- package/dist/esm/drawer/drawer/index.js +1 -1
- package/dist/esm/drawer/index.js +1 -1
- package/dist/esm/drawer/mini-drawer/index.js +1 -1
- package/dist/esm/drawer/modal-drawer/index.js +1 -1
- package/dist/esm/expansion-panel/index.js +1 -1
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/index.js +1 -1
- package/dist/esm/floating-label/index.js +1 -1
- package/dist/esm/focus-indicator/index.js +1 -1
- package/dist/esm/icon/index.js +1 -1
- package/dist/esm/icon-button/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inline-message/index.js +1 -1
- package/dist/esm/keyboard-shortcut/index.js +1 -1
- package/dist/esm/label-value/index.js +1 -1
- package/dist/esm/linear-progress/index.js +1 -1
- package/dist/esm/list/index.js +1 -1
- package/dist/esm/list/list/index.js +1 -1
- package/dist/esm/list/list-item/index.js +1 -1
- package/dist/esm/list-dropdown/index.js +1 -1
- package/dist/esm/menu/index.js +1 -1
- package/dist/esm/open-icon/index.js +1 -1
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +1 -1
- package/dist/esm/popup/index.js +1 -1
- package/dist/esm/product-icon/index.js +1 -1
- package/dist/esm/profile-card/index.js +1 -1
- package/dist/esm/quantity-field/index.js +1 -1
- package/dist/esm/radio/index.js +1 -1
- package/dist/esm/ripple/index.js +1 -1
- package/dist/esm/scaffold/index.js +1 -1
- package/dist/esm/select/core/index.js +1 -1
- package/dist/esm/select/index.js +1 -1
- package/dist/esm/select/option/index.js +1 -1
- package/dist/esm/select/option-group/index.js +1 -1
- package/dist/esm/select/select/index.js +1 -1
- package/dist/esm/select/select-dropdown/index.js +1 -1
- package/dist/esm/skeleton/index.js +1 -1
- package/dist/esm/slider/index.js +1 -1
- package/dist/esm/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view-panel/index.js +1 -1
- package/dist/esm/stack/index.js +1 -1
- package/dist/esm/state-layer/index.js +1 -1
- package/dist/esm/stepper/index.js +1 -1
- package/dist/esm/stepper/step/index.js +1 -1
- package/dist/esm/stepper/stepper/index.js +1 -1
- package/dist/esm/switch/index.js +1 -1
- package/dist/esm/table/index.js +1 -1
- package/dist/esm/tabs/index.js +1 -1
- package/dist/esm/tabs/tab/index.js +1 -1
- package/dist/esm/tabs/tab-bar/index.js +1 -1
- package/dist/esm/text-field/index.js +1 -1
- package/dist/esm/time-picker/index.js +1 -1
- package/dist/esm/toast/index.js +1 -1
- package/dist/esm/toolbar/index.js +1 -1
- package/dist/esm/tooltip/index.js +1 -1
- package/dist/esm/view-switcher/index.js +1 -1
- package/dist/esm/view-switcher/view/index.js +1 -1
- package/dist/forge-dark.css +1 -1
- package/dist/forge.css +1 -1
- package/dist/table/forge-table.css +1 -1
- package/dist/theme/forge-theme.css +1 -1
- package/dist/typography/forge-typography-legacy.css +6 -0
- package/dist/typography/forge-typography.css +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +1 -1
- package/esm/autocomplete/autocomplete-adapter.js +1 -1
- package/esm/autocomplete/autocomplete-constants.d.ts +3 -0
- package/esm/autocomplete/autocomplete-foundation.d.ts +3 -1
- package/esm/autocomplete/autocomplete-foundation.js +14 -0
- package/esm/autocomplete/autocomplete.d.ts +7 -1
- package/esm/autocomplete/autocomplete.js +7 -0
- package/esm/banner/banner.js +1 -1
- package/esm/busy-indicator/busy-indicator-adapter.js +1 -1
- package/esm/button-area/button-area-adapter.d.ts +48 -0
- package/esm/button-area/button-area-adapter.js +121 -0
- package/esm/button-area/button-area-constants.d.ts +24 -0
- package/esm/button-area/button-area-constants.js +30 -0
- package/esm/button-area/button-area-foundation.d.ts +29 -0
- package/esm/button-area/button-area-foundation.js +94 -0
- package/esm/button-area/button-area.d.ts +29 -0
- package/esm/button-area/button-area.js +55 -0
- package/esm/button-area/index.d.ts +10 -0
- package/esm/button-area/index.js +14 -0
- package/esm/calendar/calendar-dropdown/calendar-dropdown.d.ts +3 -0
- package/esm/calendar/calendar-dropdown/calendar-dropdown.js +9 -0
- package/esm/calendar/calendar-foundation.js +6 -0
- package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
- package/esm/chip-field/chip-field-adapter.js +1 -1
- package/esm/chip-field/chip-field-foundation.js +1 -1
- package/esm/chip-field/chip-field.js +2 -2
- package/esm/chips/chip/chip-adapter.js +2 -2
- package/esm/chips/chip/chip.js +1 -1
- package/esm/circular-progress/circular-progress.js +1 -1
- package/esm/color-picker/color-picker-foundation.d.ts +0 -1
- package/esm/color-picker/color-picker-foundation.js +2 -5
- package/esm/core/base/base-adapter.d.ts +5 -2
- package/esm/core/base/base-adapter.js +13 -2
- package/esm/core/base/base-component.d.ts +37 -0
- package/esm/core/base/base-component.js +3 -0
- package/esm/core/keyboard/key-manager.d.ts +18 -0
- package/esm/core/keyboard/key-manager.js +47 -0
- package/esm/core/utils/a11y-utils.d.ts +32 -0
- package/esm/core/utils/a11y-utils.js +111 -0
- package/esm/core/utils/index.d.ts +1 -0
- package/esm/core/utils/index.js +1 -0
- package/esm/core/utils/utils.d.ts +8 -0
- package/esm/core/utils/utils.js +15 -0
- package/esm/date-picker/base/base-date-picker-adapter.d.ts +2 -0
- package/esm/date-picker/base/base-date-picker-adapter.js +6 -0
- package/esm/date-picker/base/base-date-picker-constants.d.ts +1 -0
- package/esm/date-picker/base/base-date-picker-constants.js +2 -1
- package/esm/date-picker/base/base-date-picker-foundation.d.ts +4 -0
- package/esm/date-picker/base/base-date-picker-foundation.js +14 -2
- package/esm/date-picker/base/base-date-picker.d.ts +3 -0
- package/esm/date-picker/base/base-date-picker.js +6 -0
- package/esm/date-picker/date-picker-adapter.js +1 -1
- package/esm/date-range-picker/date-range-picker-adapter.js +1 -1
- package/esm/date-range-picker/date-range-picker-foundation.js +2 -2
- package/esm/dialog/dialog-adapter.js +1 -1
- package/esm/drawer/drawer/drawer.js +1 -1
- package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
- package/esm/expansion-panel/expansion-panel-adapter.d.ts +1 -0
- package/esm/expansion-panel/expansion-panel-adapter.js +7 -2
- package/esm/expansion-panel/expansion-panel.js +1 -1
- package/esm/field/field-adapter.js +1 -1
- package/esm/field/field-foundation.d.ts +1 -0
- package/esm/field/field-foundation.js +22 -7
- package/esm/floating-label/floating-label-foundation.d.ts +4 -1
- package/esm/floating-label/floating-label-foundation.js +9 -6
- package/esm/floating-label/floating-label.d.ts +6 -2
- package/esm/floating-label/floating-label.js +2 -2
- package/esm/focus-indicator/focus-indicator-foundation.js +1 -1
- package/esm/focus-indicator/focus-indicator.js +1 -1
- package/esm/icon/icon-adapter.d.ts +0 -2
- package/esm/icon/icon-adapter.js +4 -5
- package/esm/icon/icon-foundation.js +0 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +4 -1
- package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -0
- package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +6 -0
- package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +9 -0
- package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -0
- package/esm/keyboard-shortcut/keyboard-shortcut.js +3 -0
- package/esm/linear-progress/linear-progress.js +1 -1
- package/esm/list/list/list-adapter.d.ts +17 -41
- package/esm/list/list/list-adapter.js +43 -60
- package/esm/list/list/list-constants.d.ts +13 -5
- package/esm/list/list/list-constants.js +15 -7
- package/esm/list/list/list-foundation.d.ts +24 -16
- package/esm/list/list/list-foundation.js +84 -75
- package/esm/list/list/list.d.ts +47 -8
- package/esm/list/list/list.js +83 -11
- package/esm/list/list-item/list-item-adapter.d.ts +31 -90
- package/esm/list/list-item/list-item-adapter.js +124 -135
- package/esm/list/list-item/list-item-constants.d.ts +27 -27
- package/esm/list/list-item/list-item-constants.js +17 -32
- package/esm/list/list-item/list-item-foundation.d.ts +32 -56
- package/esm/list/list-item/list-item-foundation.js +111 -206
- package/esm/list/list-item/list-item.d.ts +109 -37
- package/esm/list/list-item/list-item.js +152 -88
- package/esm/list-dropdown/list-dropdown-adapter.js +1 -6
- package/esm/list-dropdown/list-dropdown-constants.d.ts +4 -0
- package/esm/list-dropdown/list-dropdown-utils.js +23 -24
- package/esm/paginator/paginator-adapter.d.ts +28 -24
- package/esm/paginator/paginator-adapter.js +55 -0
- package/esm/paginator/paginator-foundation.d.ts +33 -80
- package/esm/paginator/paginator-foundation.js +218 -255
- package/esm/paginator/paginator.d.ts +0 -2
- package/esm/paginator/paginator.js +0 -2
- package/esm/popup/popup-adapter.d.ts +3 -1
- package/esm/popup/popup-adapter.js +5 -2
- package/esm/popup/popup-foundation.js +5 -3
- package/esm/popup/popup.d.ts +4 -1
- package/esm/popup/popup.js +1 -1
- package/esm/radio/radio-adapter.js +2 -1
- package/esm/select/core/base-select-adapter.js +3 -0
- package/esm/select/option/option-constants.d.ts +1 -0
- package/esm/select/option/option-constants.js +1 -0
- package/esm/select/option/option-foundation.d.ts +13 -0
- package/esm/select/option/option-foundation.js +28 -0
- package/esm/select/option/option.d.ts +7 -0
- package/esm/select/option/option.js +13 -0
- package/esm/slider/slider.d.ts +2 -1
- package/esm/slider/slider.js +4 -3
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/state-layer/state-layer.js +1 -1
- package/esm/stepper/core/stepper-utils.js +2 -1
- package/esm/stepper/stepper/stepper-adapter.js +1 -1
- package/esm/stepper/stepper/stepper-foundation.js +1 -0
- package/esm/switch/switch-adapter.d.ts +38 -0
- package/esm/switch/switch-adapter.js +69 -0
- package/esm/switch/switch-component-delegate.d.ts +2 -1
- package/esm/switch/switch-component-delegate.js +8 -8
- package/esm/switch/switch-constants.d.ts +14 -7
- package/esm/switch/switch-constants.js +17 -9
- package/esm/switch/switch-foundation.d.ts +46 -0
- package/esm/switch/switch-foundation.js +110 -0
- package/esm/switch/switch.d.ts +150 -33
- package/esm/switch/switch.js +226 -142
- package/esm/tabs/tab/tab.js +2 -2
- package/esm/tabs/tab-bar/tab-bar.js +1 -1
- package/esm/text-field/text-field-adapter.js +2 -1
- package/esm/time-picker/time-picker-adapter.js +2 -1
- package/esm/time-picker/time-picker-foundation.js +3 -3
- package/package.json +2 -7
- package/styles/button-area/_mixins.scss +47 -0
- package/styles/button-area/button-area.scss +16 -0
- package/styles/calendar/calendar-menu/_mixins.scss +48 -2
- package/styles/chip-field/_base.scss +1 -0
- package/styles/chip-field/_selector.scss +2 -2
- package/styles/chips/chip/_mixins.scss +1 -0
- package/styles/circular-progress/{_animations.scss → _animation.scss} +6 -0
- package/styles/circular-progress/_configuration.scss +0 -7
- package/styles/circular-progress/_core.scss +8 -8
- package/styles/circular-progress/circular-progress.scss +2 -2
- package/styles/circular-progress/index.scss +1 -1
- package/styles/core/styles/_utils.scss +137 -0
- package/styles/core/styles/animation/index.scss +16 -0
- package/styles/core/styles/border/index.scss +38 -0
- package/styles/core/styles/elevation/index.scss +10 -10
- package/styles/core/styles/scrollbar/index.scss +45 -0
- package/styles/core/styles/shape/index.scss +31 -0
- package/styles/core/styles/spacing/index.scss +30 -0
- package/styles/core/styles/theme/_color-utils.scss +63 -0
- package/styles/core/styles/theme/_utils.scss +82 -0
- package/styles/core/styles/theme/index.scss +51 -21
- package/styles/core/styles/tokens/animation/_tokens.scss +38 -0
- package/styles/core/styles/tokens/border/_tokens.scss +17 -0
- package/styles/core/styles/tokens/circular-progress/_tokens.scss +2 -2
- package/styles/core/styles/tokens/color-palette/_extended-color-palette.scss +88 -0
- package/styles/core/styles/tokens/color-palette/index.scss +7 -0
- package/styles/core/styles/tokens/focus-indicator/_tokens.scss +10 -6
- package/styles/core/styles/tokens/linear-progress/_tokens.scss +6 -4
- package/styles/core/styles/tokens/list/list/_tokens.scss +16 -0
- package/styles/core/styles/tokens/list/list-item/_tokens.scss +77 -0
- package/styles/core/styles/tokens/scrollbar/_tokens.scss +26 -0
- package/styles/core/styles/tokens/shape/_tokens.scss +42 -0
- package/styles/core/styles/tokens/slider/_tokens.scss +16 -16
- package/styles/core/styles/tokens/spacing/_tokens.scss +23 -0
- package/styles/core/styles/tokens/state-layer/_tokens.scss +6 -6
- package/styles/core/styles/tokens/switch/_tokens.scss +108 -0
- package/styles/core/styles/tokens/tabs/tab/_tokens.scss +4 -2
- package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +2 -2
- package/styles/core/styles/tokens/theme/_color-emphasis.scss +38 -0
- package/styles/core/styles/tokens/theme/_token-utils.scss +46 -0
- package/styles/core/styles/tokens/theme/_tokens.core.scss +45 -0
- package/styles/core/styles/tokens/theme/_tokens.scss +62 -117
- package/styles/core/styles/tokens/theme/_tokens.status.scss +49 -0
- package/styles/core/styles/tokens/theme/_tokens.surface.scss +65 -0
- package/styles/core/styles/tokens/theme/_tokens.text.scss +38 -0
- package/styles/core/styles/tokens/theme/_tokens.utilities.scss +30 -0
- package/styles/core/styles/tokens/typography/_scale.scss +39 -0
- package/styles/core/styles/tokens/typography/_tokens.body.scss +41 -0
- package/styles/core/styles/tokens/typography/_tokens.core.scss +31 -0
- package/styles/core/styles/tokens/typography/_tokens.display.scss +67 -0
- package/styles/core/styles/tokens/typography/_tokens.heading.scss +70 -0
- package/styles/core/styles/tokens/typography/_tokens.label.scss +37 -0
- package/styles/core/styles/tokens/typography/_tokens.scss +33 -65
- package/styles/core/styles/tokens/typography/_tokens.subheading.scss +66 -0
- package/styles/core/styles/tokens/typography/_type-utils.scss +37 -0
- package/styles/core/styles/tokens/typography/_weight.scss +20 -0
- package/styles/core/styles/typography/index.scss +144 -0
- package/styles/focus-indicator/_core.scss +1 -1
- package/styles/linear-progress/_core.scss +1 -1
- package/styles/list/list/_configuration.scss +12 -0
- package/styles/list/list/_core.scss +21 -0
- package/styles/list/list/index.scss +7 -0
- package/styles/list/list/list.scss +19 -4
- package/styles/list/list-item/_configuration.scss +72 -0
- package/styles/list/list-item/_core.scss +200 -0
- package/styles/list/list-item/index.scss +7 -0
- package/styles/list/list-item/list-item.scss +193 -13
- package/styles/slider/_configuration.scss +2 -1
- package/styles/slider/_core.scss +8 -13
- package/styles/slider/slider.scss +2 -2
- package/styles/state-layer/_core.scss +1 -1
- package/styles/switch/_configuration.scss +95 -0
- package/styles/switch/_core.scss +255 -0
- package/styles/switch/index.scss +7 -0
- package/styles/switch/switch.scss +136 -50
- package/styles/table/_mixins.scss +2 -2
- package/styles/tabs/tab/_configuration.scss +5 -0
- package/styles/tabs/tab/_core.scss +10 -9
- package/styles/tabs/tab/tab.scss +17 -2
- package/styles/tabs/tab-bar/_core.scss +1 -1
- package/styles/theme/_theme-dark.scss +0 -2
- package/styles/theme/_theme.scss +3 -45
- package/styles/theme/forge-theme.scss +21 -3
- package/styles/typography/_mixins.scss +0 -20
- package/styles/{core/styles/tokens/theme/_shape.scss → typography/forge-typography-legacy.scss} +2 -7
- package/styles/typography/forge-typography.scss +11 -3
- package/styles/utils/_mixins-core.scss +1 -1
- package/dist/esm/chunks/chunk.2O6IZ7XZ.js +0 -7
- package/dist/esm/chunks/chunk.2VP57RZO.js +0 -7
- package/dist/esm/chunks/chunk.2VP57RZO.js.map +0 -7
- package/dist/esm/chunks/chunk.33EJTOVA.js +0 -7
- package/dist/esm/chunks/chunk.33EJTOVA.js.map +0 -7
- package/dist/esm/chunks/chunk.3JDFBEF7.js +0 -7
- package/dist/esm/chunks/chunk.4WVHON6T.js +0 -129
- package/dist/esm/chunks/chunk.4WVHON6T.js.map +0 -7
- package/dist/esm/chunks/chunk.5V5ABSHI.js +0 -7
- package/dist/esm/chunks/chunk.5V5ABSHI.js.map +0 -7
- package/dist/esm/chunks/chunk.74DEHKGT.js +0 -12
- package/dist/esm/chunks/chunk.74DEHKGT.js.map +0 -7
- package/dist/esm/chunks/chunk.7G72CBOJ.js +0 -7
- package/dist/esm/chunks/chunk.7G72CBOJ.js.map +0 -7
- package/dist/esm/chunks/chunk.7WVTJIVR.js +0 -7
- package/dist/esm/chunks/chunk.7WVTJIVR.js.map +0 -7
- package/dist/esm/chunks/chunk.BNFJRFLW.js +0 -7
- package/dist/esm/chunks/chunk.CRWP7H46.js +0 -7
- package/dist/esm/chunks/chunk.D2Y2CRRY.js +0 -7
- package/dist/esm/chunks/chunk.D2Y2CRRY.js.map +0 -7
- package/dist/esm/chunks/chunk.DMCBAYQX.js +0 -7
- package/dist/esm/chunks/chunk.DMCBAYQX.js.map +0 -7
- package/dist/esm/chunks/chunk.DXZ5LVFJ.js +0 -7
- package/dist/esm/chunks/chunk.DXZ5LVFJ.js.map +0 -7
- package/dist/esm/chunks/chunk.E7Z3IRWV.js +0 -7
- package/dist/esm/chunks/chunk.E7Z3IRWV.js.map +0 -7
- package/dist/esm/chunks/chunk.ECRL6O3V.js +0 -7
- package/dist/esm/chunks/chunk.ECRL6O3V.js.map +0 -7
- package/dist/esm/chunks/chunk.EDEYCLDU.js +0 -7
- package/dist/esm/chunks/chunk.EYZ25QUP.js +0 -7
- package/dist/esm/chunks/chunk.EYZ25QUP.js.map +0 -7
- package/dist/esm/chunks/chunk.F776DWXU.js +0 -7
- package/dist/esm/chunks/chunk.F776DWXU.js.map +0 -7
- package/dist/esm/chunks/chunk.FIBGOPNP.js +0 -7
- package/dist/esm/chunks/chunk.FIBGOPNP.js.map +0 -7
- package/dist/esm/chunks/chunk.FUPNTFG7.js +0 -7
- package/dist/esm/chunks/chunk.FUPNTFG7.js.map +0 -7
- package/dist/esm/chunks/chunk.GT3XBPZY.js +0 -7
- package/dist/esm/chunks/chunk.GT3XBPZY.js.map +0 -7
- package/dist/esm/chunks/chunk.H5D54EHO.js +0 -7
- package/dist/esm/chunks/chunk.H5D54EHO.js.map +0 -7
- package/dist/esm/chunks/chunk.HXJCTE47.js +0 -7
- package/dist/esm/chunks/chunk.ISC7SZSP.js +0 -7
- package/dist/esm/chunks/chunk.ISC7SZSP.js.map +0 -7
- package/dist/esm/chunks/chunk.IWA3CYIB.js +0 -7
- package/dist/esm/chunks/chunk.IWA3CYIB.js.map +0 -7
- package/dist/esm/chunks/chunk.JL4XB4RI.js +0 -7
- package/dist/esm/chunks/chunk.JL4XB4RI.js.map +0 -7
- package/dist/esm/chunks/chunk.JTIPXKV6.js +0 -7
- package/dist/esm/chunks/chunk.L3M6DPQB.js.map +0 -7
- package/dist/esm/chunks/chunk.LHBF47UY.js +0 -7
- package/dist/esm/chunks/chunk.LHBF47UY.js.map +0 -7
- package/dist/esm/chunks/chunk.LM57DOG3.js +0 -7
- package/dist/esm/chunks/chunk.LYYWQGS6.js +0 -7
- package/dist/esm/chunks/chunk.LYYWQGS6.js.map +0 -7
- package/dist/esm/chunks/chunk.M2M47T4L.js +0 -7
- package/dist/esm/chunks/chunk.M2M47T4L.js.map +0 -7
- package/dist/esm/chunks/chunk.MJSLXZBM.js +0 -7
- package/dist/esm/chunks/chunk.NK7H3MMM.js +0 -7
- package/dist/esm/chunks/chunk.OAHA3QOH.js +0 -7
- package/dist/esm/chunks/chunk.OAHA3QOH.js.map +0 -7
- package/dist/esm/chunks/chunk.QI3GKORL.js +0 -7
- package/dist/esm/chunks/chunk.QLJBPFP5.js +0 -7
- package/dist/esm/chunks/chunk.QLJBPFP5.js.map +0 -7
- package/dist/esm/chunks/chunk.SAXRW6GB.js +0 -7
- package/dist/esm/chunks/chunk.SAXRW6GB.js.map +0 -7
- package/dist/esm/chunks/chunk.SN5LPTHH.js +0 -7
- package/dist/esm/chunks/chunk.SQVBT7HU.js +0 -7
- package/dist/esm/chunks/chunk.SQVBT7HU.js.map +0 -7
- package/dist/esm/chunks/chunk.SZIM4KFZ.js +0 -7
- package/dist/esm/chunks/chunk.SZIM4KFZ.js.map +0 -7
- package/dist/esm/chunks/chunk.WYP2M5FR.js +0 -7
- package/dist/esm/chunks/chunk.WYP2M5FR.js.map +0 -7
- package/dist/esm/chunks/chunk.YDY2IGBF.js +0 -7
- package/dist/esm/chunks/chunk.YDY2IGBF.js.map +0 -7
- package/dist/esm/chunks/chunk.YWCLKUK7.js +0 -7
- package/dist/esm/chunks/chunk.YWCLKUK7.js.map +0 -7
- package/dist/esm/chunks/chunk.YZLASVCK.js +0 -177
- package/dist/esm/chunks/chunk.YZLASVCK.js.map +0 -7
- package/dist/esm/chunks/chunk.ZMRDW25U.js +0 -7
- package/dist/typography/forge-form.css +0 -6
- package/styles/core/styles/tokens/_utils.scss +0 -43
- package/styles/list/list/_mixins.scss +0 -45
- package/styles/list/list-item/_mixins.scss +0 -403
- package/styles/list/list-item/_variables.scss +0 -34
- package/styles/switch/_switch-mixins.scss +0 -301
- package/styles/switch/_switch-theme.scss +0 -701
- package/styles/typography/forge-form.scss +0 -67
- /package/dist/esm/chunks/{chunk.LM57DOG3.js.map → chunk.2LIWNFQK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.U4GYQOPY.js.map → chunk.2WSXSOYB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VNOJO2PF.js.map → chunk.3X4N4ZPY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.N7PQ2MUQ.js.map → chunk.436MTO6R.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7ZQMJLHE.js.map → chunk.4JF54GDJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UCM6CGFM.js.map → chunk.4USQ2AP6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6MPXRRMB.js.map → chunk.4XJYS5WH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YQXX5KSW.js.map → chunk.66X366TV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HXJCTE47.js.map → chunk.7L66GZDN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WBYXVMYI.js.map → chunk.7M4HRJYP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Z4J4D5FD.js.map → chunk.7PPBXNAD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IDD54B5P.js.map → chunk.7UJAI6P2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UKFJHDO7.js.map → chunk.A3ZDCBLA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WH6C36MO.js.map → chunk.AHAARGYM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.E6KWYFZG.js.map → chunk.AY43NTAK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PHBOQRF6.js.map → chunk.C5ZUGOOC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7DHFTAWI.js.map → chunk.C7VEJINB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Y5UJ23LB.js.map → chunk.CBIHNCT5.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5IQGVS6U.js.map → chunk.CQQSOTZ5.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MF36FG2X.js.map → chunk.DABGA7I6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TL6WVBGT.js.map → chunk.DH76CMUT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KSCUIS5C.js.map → chunk.DLQSINSS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.T5X6UNH7.js.map → chunk.DQVYB55P.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NF4J3Q5X.js.map → chunk.GWIXDVIA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AHHNJSZK.js.map → chunk.HBCDD25D.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5M6Y2RU6.js.map → chunk.HDO3WRH7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DTZFWZPB.js.map → chunk.HGH6SSHZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2QSDH3PC.js.map → chunk.HKSXC5VK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.X3YNJSDT.js.map → chunk.IJ2I25V3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZAJB7G4V.js.map → chunk.IURDWGLD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.G4IN6Y46.js.map → chunk.KVCDAZ6B.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2ZTERGYF.js.map → chunk.MHU452GM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3JDFBEF7.js.map → chunk.MLTEGJH6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BBKRPL6R.js.map → chunk.MWWY5TX5.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QL45FKVJ.js.map → chunk.OXGOCF4L.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RFLASSCI.js.map → chunk.PADPL4L3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WO7KEM5K.js.map → chunk.PDSOXEMY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PHTOULRR.js.map → chunk.PLNLLKP2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XOM2FYQ2.js.map → chunk.Q7BWJCT5.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.57IVD67K.js.map → chunk.RBFGJH3C.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RGPNNISQ.js.map → chunk.RNUGVHZF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2TQONIPK.js.map → chunk.RWUJGZ3R.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZDAXNM2P.js.map → chunk.RXLORASN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.J3UFSHDY.js.map → chunk.TGVLYX5F.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MGWY7YIL.js.map → chunk.TSH7BTC3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XRESQBNE.js.map → chunk.UAVC4YLD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XATLSSAW.js.map → chunk.UVJFHSMF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QZK3WEH6.js.map → chunk.W7H2ZYNR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6VDF54LZ.js.map → chunk.WK2L7BPJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5CMQ7DNL.js.map → chunk.WWTQAN4G.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SEP3L4QL.js.map → chunk.YP2NHWIW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZMRDW25U.js.map → chunk.YPA27RX7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4WB3FGEL.js.map → chunk.Z6AFASMO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.P5QIB6OY.js.map → chunk.ZREXLSAJ.js.map} +0 -0
- /package/styles/core/styles/tokens/{_color-palette.scss → color-palette/_material-color-palette.scss} +0 -0
- /package/styles/core/styles/tokens/{theme/_elevation.scss → elevation/_tokens.scss} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../node_modules/@tylertech/forge-core/esm/utils/dom-utils.js"],
|
|
4
|
-
"sourcesContent": ["import { isArray } from './utils';\n/**\n * Holds regular expressions\n */\n/* tslint:disable-next-line:require-private-underscore */\nconst REGULAR_EXPRESSIONS = {\n placement: {\n auto: /\\s?auto?\\s?/i,\n primary: /^(top|bottom|left|right)$/,\n secondary: /^(top|bottom|left|right|center)$/,\n topBottom: /^(top|bottom)$/\n },\n overflow: /(auto|scroll)/\n};\n/**\n * Holds the browser scrollbar width.\n */\n/* tslint:disable-next-line:require-private-underscore */\nlet SCROLLBAR_WIDTH;\n/**\n * Gets the ownerDocument for an element, if null, than returns the document element.\n * @param {Element} element The element to get the ownerDocument for\n * @returns {Document}\n */\nfunction _ownerDocument(element) {\n return element.ownerDocument || document;\n}\n/**\n * Retrieves an element based on the provided root and selector.\n * @param {Element} root The root element to search within.\n * @param {string} selector The selector for the child element.\n * @param {boolean} [allowNull=false] Should the method allow the element to be not found? Default is false.\n * @returns {HTMLElement}\n */\nexport function getElement(root, selector, allowNull = false) {\n const element = root.querySelector(selector);\n if (!element && !allowNull) {\n throw new Error(`Element not found with selector: ${selector}`);\n }\n return element;\n}\n/**\n * Checks if an element is a valid element.\n * @param {Element} element The node to test\n * @returns {boolean}\n */\nexport function isElement(element) {\n return element && element.nodeType === 1;\n}\n/**\n * Checks if an element is statically positioned.\n * @param {Element} element The node to test.\n * @returns {boolean}\n */\nexport function isPositionStatic(element) {\n return (window.getComputedStyle(element).position || 'static') === 'static';\n}\n/**\n * Parses a style string to a numeric value (removes 'px').\n * @param {string} value The style string to parse.\n * @returns {number}\n */\nexport function parseStyle(value) {\n if (!value || !value.length) {\n return 0;\n }\n const parsedValue = parseFloat(value);\n return isFinite(parsedValue) ? parsedValue : 0;\n}\n/**\n * Gets the index of an element in the parent element children.\n * @param {Element} element The element to get the index on.\n * @returns {number}\n */\nexport function elementIndex(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - elementIndex: invalid element argument');\n }\n if (!element.parentElement) {\n return -1;\n }\n return Array.from(element.parentElement.children).indexOf(element);\n}\n/**\n * Gets an array of parent elements up to the body element.\n * @param {Element} element The element to get the parents of.\n * @param {Element=} untilElement Optional element where traversal should stop.\n * @returns {Array}\n */\nexport function elementParents(element, untilElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - elementParents: invalid element argument');\n }\n const parentElements = [];\n while (element.parentElement) {\n parentElements.push(element.parentElement);\n if (element.parentElement === untilElement || element.parentElement === _ownerDocument(element).body) {\n break;\n }\n // pierce shadow DOM\n if (element.parentElement && element.parentElement.parentNode && element.parentElement.parentNode.nodeType === 11) {\n element = element.parentElement.parentNode.host;\n }\n else {\n element = element.parentElement;\n }\n }\n return parentElements;\n}\n/**\n * Gets the non-statically positioned parent of an element.\n * @param element The element to get the offset parent of.\n * @returns {Element}\n */\nexport function offsetParent(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offsetParent: invalid element argument');\n }\n let offsetParentElem = element.offsetParent;\n while (offsetParentElem && isPositionStatic(offsetParentElem)) {\n offsetParentElem = offsetParentElem.offsetParent;\n }\n return offsetParentElem || _ownerDocument(element).documentElement;\n}\n/**\n * Gets the browser scrollbar width.\n * @returns {number}\n */\nexport function scrollbarWidth() {\n if (SCROLLBAR_WIDTH === undefined) {\n const elem = document.createElement('div');\n elem.style.position = 'absolute';\n elem.style.top = '-100px';\n elem.style.left = '-100px';\n elem.style.width = '50px';\n elem.style.height = '50px';\n elem.style.overflow = 'scroll';\n document.body.appendChild(elem);\n const width = elem.offsetWidth - elem.clientWidth;\n removeElement(elem);\n SCROLLBAR_WIDTH = isFinite(width) ? width : 0;\n }\n return SCROLLBAR_WIDTH;\n}\n/**\n * Checks if an element is scrollable.\n * @param {Element} element The element to test for scrollability\n * @returns {boolean}\n */\nexport function isScrollable(element) {\n const elemStyle = window.getComputedStyle(element);\n return REGULAR_EXPRESSIONS.overflow.test('' + elemStyle.overflow + elemStyle.overflowY + elemStyle.overflowX);\n}\n/**\n * Gets the scroll parent of an element.\n * @param {Element} element The element to get the scroll parent of.\n * @param {boolean} [includeSelf=false] Should the element be checked for scrollability.\n * @returns {Element}\n */\nexport function scrollParent(element, includeSelf = false) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - scrollParent: invalid element argument');\n }\n const docElem = _ownerDocument(element).documentElement;\n const elemStyle = window.getComputedStyle(element);\n if (includeSelf && REGULAR_EXPRESSIONS.overflow.test('' + elemStyle.overflow + elemStyle.overflowY + elemStyle.overflowX)) {\n return element;\n }\n let excludeStatic = elemStyle.position === 'absolute';\n let scrollParentElem = element.parentElement || docElem;\n if (scrollParentElem === docElem || elemStyle.position === 'fixed') {\n return scrollParentElem;\n }\n while (scrollParentElem && scrollParentElem !== docElem) {\n const scrollParentStyle = window.getComputedStyle(scrollParentElem);\n if (excludeStatic && scrollParentStyle.position !== 'static') {\n excludeStatic = false;\n }\n if (!excludeStatic && REGULAR_EXPRESSIONS.overflow.test('' + scrollParentStyle.overflow + scrollParentStyle.overflowY + scrollParentStyle.overflowX)) {\n break;\n }\n scrollParentElem = scrollParentElem.scrollParent;\n }\n return scrollParentElem || docElem;\n}\n/**\n * Checks if the elements scroll parent scrollbars are visible.\n * @param {Element} element The element to check the scroll parent of.\n * @returns {IScrollbarVisibility}\n */\nexport function isScrollbarVisible(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - isDocumentScrolled: invalid element argument');\n }\n const scrollParentElem = scrollParent(element);\n return {\n x: scrollParentElem.scrollWidth > scrollParentElem.clientWidth,\n y: scrollParentElem.scrollHeight > scrollParentElem.clientHeight\n };\n}\n/**\n * Gets the offset from the element to the parent element edges.\n * If no parentElement is supplied, the documentElement will be used.\n * @param {Element} element The element to compute the offset for.\n * @param {Element=} parentElement Optional parent element to measure from.\n * @returns {DOMRect}\n */\nexport function offset(element, parentElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offset: invalid element argument');\n }\n const elemBCR = element.getBoundingClientRect();\n const win = _ownerDocument(element).defaultView;\n const docElem = parentElement || win.document.documentElement;\n const offsetValues = { width: elemBCR.width, height: elemBCR.width, top: 0, left: 0, bottom: 0, right: 0 };\n if (!parentElement || docElem === win.document.documentElement || docElem === win.document.body) {\n offsetValues.top = win.scrollY + elemBCR.top;\n offsetValues.bottom = docElem.clientHeight - win.scrollY - elemBCR.bottom;\n offsetValues.left = win.scrollX + elemBCR.left;\n offsetValues.right = docElem.clientWidth - win.scrollX - elemBCR.right;\n }\n else {\n if (!isElement(parentElement)) {\n throw new Error('DOMUtils - offset: invalid parentElement argument');\n }\n const parentBCR = parentElement.getBoundingClientRect();\n offsetValues.top = elemBCR.top - parentBCR.top;\n offsetValues.bottom = parentBCR.bottom - elemBCR.bottom;\n offsetValues.left = elemBCR.left - parentBCR.left;\n offsetValues.right = parentBCR.right - elemBCR.right;\n }\n return {\n width: Math.round(elemBCR.width),\n height: Math.round(elemBCR.height),\n top: Math.round(offsetValues.top),\n bottom: Math.round(offsetValues.bottom),\n left: Math.round(offsetValues.left),\n right: Math.round(offsetValues.right)\n };\n}\n/**\n * Gets the offset from the element to the parent element viewable edges.\n * If no parentElement is supplied, the documentElement will be used.\n * @param {Element} element The element to measure\n * @param {Element=} parentElement The parent element to measure to.\n * @returns {DOMRect}\n */\nexport function viewportOffset(element, parentElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offset: invalid element argument');\n }\n const win = _ownerDocument(element).defaultView;\n parentElement = parentElement || win.document.documentElement;\n const parentElementOffset = offset(element, parentElement);\n const offsetValues = {\n top: parentElementOffset.top,\n bottom: 0,\n left: parentElementOffset.left,\n right: 0\n };\n if (parentElement === win.document.documentElement) {\n offsetValues.top -= win.scrollY;\n offsetValues.left -= win.scrollX;\n }\n else {\n const parentStyle = window.getComputedStyle(parentElement);\n offsetValues.top -= parseStyle('' + parentStyle.borderTopWidth);\n offsetValues.left -= parseStyle('' + parentStyle.borderLeftWidth);\n }\n offsetValues.bottom = parentElement.clientHeight - offsetValues.top - element.offsetHeight;\n offsetValues.right = parentElement.clientWidth - offsetValues.left - element.offsetWidth;\n return {\n width: parentElementOffset.width,\n height: parentElementOffset.height,\n top: Math.round(offsetValues.top),\n bottom: Math.round(offsetValues.bottom),\n left: Math.round(offsetValues.left),\n right: Math.round(offsetValues.right)\n };\n}\n/**\n * Checks if any part of an element is visible in the viewport.\n * @param {Element} element The element to check.\n * @returns {boolean}\n */\nexport function isElementInViewport(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - isElementInViewport: invalid element argument');\n }\n const document = _ownerDocument(element);\n const scrollParentElem = scrollParent(element);\n const elemBCR = element.getBoundingClientRect();\n if (scrollParentElem !== document.documentElement && scrollParentElem !== document.body) {\n const scrollParentOffset = offset(element, scrollParentElem);\n if (scrollParentOffset.top + elemBCR.height < 0 ||\n scrollParentOffset.left + elemBCR.width < 0 ||\n scrollParentOffset.bottom + elemBCR.height - this.scrollbarWidth < 0 ||\n scrollParentOffset.right + elemBCR.width - this.scrollbarWidth < 0) {\n return false;\n }\n }\n if (elemBCR.top + elemBCR.height < 0 ||\n elemBCR.left + elemBCR.width < 0 ||\n elemBCR.bottom + elemBCR.height > document.documentElement.clientHeight ||\n elemBCR.right + elemBCR.width > document.documentElement.clientWidth) {\n return false;\n }\n return true;\n}\n/**\n * Adds an event listener to the document that will call the provided callback function\n * when an element and it's children no longer have focus. The blur and touchstart events are used\n * to evaluate the active element to determine if the callback should be called.\n *\n * @param {Element} element The element to add the event listener to.\n * @param {Function} callback The function to call when the element and children don't have focus.\n * @param {boolean} [delay=false] Should a RAF cycle occur before the callback is called.\n * @returns {Function} The function to call to remove the document events.\n */\nexport function notChildEventListener(element, callback, delay) {\n const evtHandler = (event) => {\n const handle = () => {\n event.stopPropagation();\n if (event.cancelable) {\n event.preventDefault();\n }\n const activeElement = (event.type === 'touchstart' ? event.target : _ownerDocument(element).activeElement);\n if (!element.contains(activeElement)) {\n callback(activeElement);\n }\n };\n if (delay) {\n window.requestAnimationFrame(() => handle());\n }\n else {\n handle();\n }\n };\n const docElem = _ownerDocument(element);\n docElem.addEventListener('blur', evtHandler, true);\n docElem.addEventListener('touchstart', evtHandler, true);\n return () => {\n docElem.removeEventListener('blur', evtHandler, true);\n docElem.removeEventListener('touchstart', evtHandler, true);\n };\n}\n/**\n * Removes all children from a DOM node.\n * @param node The DOM node to remove children from.\n */\nexport function removeAllChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n/**\n * Replaces one child node of the specified node with another.\n * @param newChild The new node to replace `oldChild`.\n * @param oldChild The existing node to be replaced.\n * @returns {Node} The replaced node. Same node as `oldChild`.\n */\nexport function replaceElement(newChild, oldChild) {\n return oldChild.parentNode.replaceChild(newChild, oldChild);\n}\n/**\n * Adds a class or array of classes to an element.\n *\n * @param {string | string[]} name The class(es) to add to the element\n * @param {Element} element The element to add class(es) to.\n */\nexport function addClass(name, element) {\n if (isArray(name)) {\n name.forEach(n => element.classList.add(n));\n }\n else {\n element.classList.add(name);\n }\n}\n/**\n * Removes a class or array of classes to an element.\n *\n * @param {string | string[]} name The class(es) to remove from the element\n * @param {Element} element The element to remove class(es) from.\n */\nexport function removeClass(name, element) {\n if (isArray(name)) {\n name.forEach(n => element.classList.remove(n));\n }\n else {\n element.classList.remove(name);\n }\n}\n/** Determines which type of animation event is supported. */\nexport function getAnimationEvent() {\n const el = document.createElement('fakeelement');\n // tslint:disable:object-literal-key-quotes\n const animations = {\n 'animation': 'animationend',\n 'OAnimation': 'oAnimationEnd',\n 'MozAnimation': 'animationend',\n 'WebkitAnimation': 'webkitAnimationEnd'\n };\n for (const t in animations) {\n if (el.style[t] !== undefined) {\n return animations[t];\n }\n }\n}\n/**\n * A helper method to trigger a keyframe animation via adding a class, and removing the class when the animation completes.\n * @param {HTMLElement} element The element to play the animation on.\n * @param {string} className The class to add that triggers the animation.\n */\nexport async function playKeyframeAnimation(element, className, remove = true) {\n element.classList.add(className);\n return new Promise(resolve => {\n const animationEvent = getAnimationEvent();\n const animationCompletedListener = () => {\n if (remove) {\n element.classList.remove(className);\n }\n element.removeEventListener(animationEvent, animationCompletedListener);\n resolve();\n };\n element.addEventListener(animationEvent, animationCompletedListener);\n });\n}\n/**\n * Removes an element from the DOM using the available remove method for that platform.\n * @param {HTMLElement} element The element to remove.\n */\nexport function removeElement(element) {\n if (element.removeNode) {\n element.removeNode(true);\n }\n else if (element.remove) {\n element.remove();\n }\n else {\n element.parentNode.removeChild(element);\n }\n}\n/**\n * Returns a width string that is safe for css based on the provided input.\n * @param {string | number} width\n * @returns {string | undefined} A width safe for using in CSS.\n */\nexport function safeCssWidth(width) {\n if (typeof width === 'string') {\n if (width[width.length - 1] === '%') {\n return width;\n }\n else if (width.slice(-2) === 'px') {\n return width;\n }\n else if (Number(width) >= 0) {\n return `${width}px`;\n }\n }\n else if (typeof width === 'number') {\n if (width >= 0) {\n return `${width}px`;\n }\n }\n return undefined;\n}\n/**\n * Calculates the size of an element that is not attached to the DOM.\n * @param {HTMLElement} element The element to calc the size of.\n * @returns {width, height} The size of the element.\n */\nexport function calcSizeUnattached(element) {\n let container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.top = '-99999px';\n container.style.left = '-99999px';\n container.style.visibility = 'hidden';\n container.appendChild(element.cloneNode(true));\n document.body.appendChild(container);\n const size = {\n width: container.scrollWidth,\n height: container.scrollHeight\n };\n removeElement(container);\n container = undefined;\n return size;\n}\n/**\n * Resolves a promise when the provided element has children.\n * @param {Element} element An element that does or will contain children.\n */\nexport function ensureChildren(element) {\n if (element.children.length) {\n return Promise.resolve();\n }\n return new Promise(resolve => {\n const observer = new MutationObserver(changes => {\n if (element.children.length) {\n observer.disconnect();\n resolve();\n }\n });\n observer.observe(element, { childList: true });\n });\n}\n/**\n * Resolves a promise when the provided element has a child that matches a given selector.\n * @param {Element} element An element that does or will contain children.\n * @param {string} selector A CSS selector to use for finding an element.\n */\nexport function ensureChild(element, selector) {\n const initialElements = deepQuerySelectorAll(element, selector);\n if (initialElements.length) {\n return Promise.resolve(initialElements[0]);\n }\n return new Promise(resolve => {\n const observer = new MutationObserver(changes => {\n const hasAddedNodes = changes.reduce((prev, curr) => prev + curr.addedNodes.length, 0) > 0;\n if (hasAddedNodes) {\n const foundElements = deepQuerySelectorAll(element, selector);\n if (foundElements.length) {\n observer.disconnect();\n resolve(foundElements[0]);\n }\n }\n });\n observer.observe(element, { childList: true, subtree: true });\n });\n}\n/**\n * Resolves a promise when the provided host element has an `<input>` element child\n * @param {HTMLElement} host An element that does or will contain children.\n */\nexport function ensureInputElement(host) {\n return new Promise(resolve => {\n const element = host.querySelector('input');\n if (element) {\n resolve(element);\n }\n const observer = new MutationObserver(changes => {\n const hasAddedNodes = changes.reduce((prev, curr) => prev + curr.addedNodes.length, 0) > 0;\n if (hasAddedNodes) {\n const foundElement = host.querySelector('input');\n if (foundElement) {\n observer.disconnect();\n resolve(foundElement);\n }\n }\n });\n observer.observe(host, { childList: true, subtree: true });\n });\n}\n/**\n * Walks up the tree starting a specific node and stops when the provided matcher function returns true.\n * @param {Node} node The node to start searching from.\n * @returns {Node | null} The closest matching ancestor node, or null if not found.\n */\nexport function walkUpUntil(node, matcher) {\n let parent = node && node.parentNode;\n while (parent) {\n if (matcher(parent)) {\n return parent;\n }\n parent = parent.parentNode;\n }\n return null;\n}\n/**\n * Calculates the width of a string given the provided font information.\n */\nexport function calculateFontWidth(value, info) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const fontSize = info ? info.fontSize : 16;\n const fontFamily = info ? info.fontFamily : 'Roboto';\n ctx.font = `${fontSize}px ${fontFamily}`;\n return ctx.measureText(value).width;\n}\n/**\n * Generates a CSS text-shadow style value based on the number of iterations and color provided.\n * @param {number} iterations The number of iterations for how long the shadow should be.\n * @param {string} color The color of the text shadow. Can be any CSS-safe color format. Ex. hex, rgb, rgba, hsl... etc.\n */\nexport function generateTextShadow(iterations, color) {\n const shadows = [];\n for (let i = 1; i <= iterations; i++) {\n shadows.push(`${i}px ${i}px ${color}`);\n }\n return shadows.join(', ');\n}\n/**\n * Checks if an element matches any of the provided selectors.\n * @param {Element} el The element to match.\n * @param {string[]} selectors The selectors to check the element against.\n */\nexport function matchesSelectors(el, selectors) {\n if (el.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n if (typeof selectors === 'string') {\n selectors = selectors.replace(/\\s+/, '').split(',');\n }\n const matchesFn = Element.prototype.matches;\n return selectors.some(selector => matchesFn.call(el, selector));\n}\n/**\n * Walks the DOM tree starting at a root element and checks if any of its children\n * match the provided selectors. Similar to the native `querySelectorAll` except\n * that it will traverse the shadow DOM as well as slotted nodes.\n * @param {Element} rootElement The element to start querying from.\n * @param {string[]} selectors An array of CSS selectors.\n * @param {boolean} [checkRootElement] True if the provided root element is to be matched against the selectors.\n */\nexport function deepQuerySelectorAll(rootElement, selectors, checkRootElement = false) {\n let nodes = [];\n if (!rootElement) {\n return nodes;\n }\n if (typeof selectors === 'string') {\n selectors = selectors.replace(/\\s+/, '').split(',');\n }\n if (checkRootElement && matchesSelectors(rootElement, selectors) && nodes.indexOf(rootElement) === -1) {\n nodes.push(rootElement);\n }\n if (rootElement.tagName === 'SLOT') {\n const slotNodes = rootElement.assignedNodes();\n slotNodes.forEach(slottedNode => nodes = nodes.concat(deepQuerySelectorAll(slottedNode, selectors, true)));\n }\n else {\n let node = rootElement.shadowRoot ? rootElement.shadowRoot.firstElementChild : rootElement.firstElementChild;\n while (node) {\n nodes = nodes.concat(deepQuerySelectorAll(node, selectors, true));\n node = node.nextElementSibling;\n }\n }\n return nodes;\n}\n/**\n * Gets the currently focused element within the document by also traversing shadow roots.\n * @returns {Element}\n */\nexport function getActiveElement() {\n const activeElement = document.activeElement;\n if (!activeElement || activeElement === document.body) {\n return activeElement;\n }\n return getActiveShadowElement(activeElement);\n}\n/**\n * Gets the active element within the provided elements shadow root. If the element\n * does not have a shadow root, the provided element is returned.\n * @param {Element} element The active element.\n */\nexport function getActiveShadowElement(element) {\n if (element.shadowRoot && element.shadowRoot.activeElement) {\n element = getActiveShadowElement(element.shadowRoot.activeElement);\n }\n return element;\n}\n/** Toggles a CSS class (or classes) on an element based on a boolean. */\nexport function toggleClass(el, hasClass, className) {\n if (hasClass) {\n addClass(className, el);\n }\n else {\n removeClass(className, el);\n }\n}\n/** Toggles a value-less attribute on an element. */\nexport function toggleAttribute(el, hasAttribute, name, value = '') {\n if (hasAttribute) {\n el.setAttribute(name, value);\n }\n else {\n el.removeAttribute(name);\n }\n}\n/** Toggles part of an attribute on an element. */\nexport function toggleOnAttribute(el, attribute, value, force) {\n const oldValue = el.getAttribute(attribute);\n if ((force === undefined || force === true) && (!oldValue || !oldValue.includes(value))) {\n appendToAttribute(el, attribute, value);\n }\n else if (!force) {\n removeFromAttribute(el, attribute, value);\n }\n}\n/** Appends a value to an attribute on an element, first setting it if it doesn't exist. */\nexport function appendToAttribute(el, attribute, value) {\n const oldValue = el.getAttribute(attribute);\n if (!oldValue || !oldValue.length) {\n el.setAttribute(attribute, value);\n }\n else {\n el.setAttribute(attribute, `${oldValue} ${value}`);\n }\n}\n/** Removes a value from an attribute on an element, removing the attribute if empty. */\nexport function removeFromAttribute(el, attribute, value) {\n if (!el.hasAttribute(attribute)) {\n return;\n }\n const oldValue = el.getAttribute(attribute);\n if (oldValue) {\n let newValue = oldValue === null || oldValue === void 0 ? void 0 : oldValue.replace(value, '');\n newValue = newValue.replace(/\\s+/g, ' ').trim();\n if (newValue.length) {\n el.setAttribute(attribute, newValue);\n }\n else {\n el.removeAttribute(attribute);\n }\n }\n}\n/**\n * Attempts to scroll a target element into view within a scrollable parent element, unless already visible within the container.\n * @param scrollElement The scrollable parent element.\n * @param targetElement The element to scroll into view.\n * @param behavior The scroll behavior. Defaults to 'auto'.\n * @param block The block position to anchor the target element to within the scroll element.\n */\nexport function tryScrollIntoView(scrollElement, targetElement, behavior = 'auto', block = 'nearest') {\n if (!scrollElement) {\n return;\n }\n const canScroll = scrollElement.scrollHeight > scrollElement.clientHeight || scrollElement.scrollWidth > scrollElement.clientWidth;\n if (canScroll) {\n const offsetRect = offset(targetElement, scrollElement);\n const isClippedTop = offsetRect.top <= targetElement.clientHeight;\n const isClippedBottom = offsetRect.bottom <= targetElement.clientHeight;\n if (isClippedTop || isClippedBottom) {\n const top = calcBlockScroll(block, isClippedTop, targetElement.offsetTop, targetElement.clientHeight, scrollElement.offsetTop, scrollElement.offsetHeight);\n scrollElement.scrollTo({ top, behavior });\n return;\n }\n const isClippedLeft = offsetRect.left <= targetElement.clientWidth;\n const isClippedRight = offsetRect.right <= targetElement.clientWidth;\n if (isClippedLeft || isClippedRight) {\n const left = calcBlockScroll(block, isClippedLeft, targetElement.offsetLeft, targetElement.clientWidth, scrollElement.offsetLeft, scrollElement.offsetWidth);\n scrollElement.scrollTo({ left, behavior });\n }\n }\n}\n/** Calculates the block anchor position for a target element within a scrollable parent element. */\nexport function calcBlockScroll(block, isClippedStart, targetOffset, targetSize, scrollOffset, scrollSize) {\n if (block === 'nearest') {\n if (isClippedStart) {\n return (targetOffset - scrollOffset) - targetSize;\n }\n return (targetOffset - scrollSize) + targetSize * 2;\n }\n return targetOffset - scrollOffset - scrollSize / 2 + targetSize / 2;\n}\n/**\n * Creates an element from an HTML string.\n */\nexport function elementFromHTML(html) {\n const template = document.createElement('template');\n html = html.trim();\n template.innerHTML = html;\n return template.content.firstElementChild;\n}\n/**\n * Observes changes to the provided attributes on a target element and executes a provided callback when changed.\n * @param element The element to observe.\n * @param listener The callback to execute when an attribute changes on the element.\n * @param attributeFilter The attributes to observe.\n * @returns A `MutationObserver` instasnce.\n */\nexport function createElementAttributeObserver(element, listener, attributeFilter) {\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName) {\n listener(mutation.attributeName, element.getAttribute(mutation.attributeName));\n }\n }\n });\n observer.observe(element, { attributes: true, attributeFilter });\n return observer;\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["_ownerDocument", "element", "isElement", "element", "elementParents", "element", "untilElement", "isElement", "parentElements", "_ownerDocument", "offset", "element", "parentElement", "isElement", "elemBCR", "win", "_ownerDocument", "docElem", "offsetValues", "parentBCR", "notChildEventListener", "element", "callback", "delay", "evtHandler", "event", "handle", "activeElement", "_ownerDocument", "docElem", "removeAllChildren", "node", "replaceElement", "newChild", "oldChild", "addClass", "name", "isArray", "n", "removeClass", "getAnimationEvent", "el", "animations", "t", "playKeyframeAnimation", "className", "remove", "resolve", "animationEvent", "animationCompletedListener", "removeElement", "safeCssWidth", "width", "calcSizeUnattached", "container", "size", "ensureChildren", "observer", "changes", "ensureChild", "selector", "initialElements", "deepQuerySelectorAll", "prev", "curr", "foundElements", "walkUpUntil", "node", "matcher", "parent", "calculateFontWidth", "value", "info", "ctx", "fontSize", "fontFamily", "generateTextShadow", "iterations", "color", "shadows", "i", "matchesSelectors", "el", "selectors", "matchesFn", "selector", "deepQuerySelectorAll", "rootElement", "checkRootElement", "nodes", "slottedNode", "getActiveElement", "activeElement", "getActiveShadowElement", "element", "toggleClass", "hasClass", "className", "addClass", "removeClass", "toggleAttribute", "hasAttribute", "name", "toggleOnAttribute", "attribute", "force", "oldValue", "appendToAttribute", "removeFromAttribute", "newValue", "tryScrollIntoView", "scrollElement", "targetElement", "behavior", "block", "offsetRect", "offset", "isClippedTop", "isClippedBottom", "top", "calcBlockScroll", "isClippedLeft", "isClippedRight", "left", "isClippedStart", "targetOffset", "targetSize", "scrollOffset", "scrollSize", "elementFromHTML", "html", "template", "createElementAttributeObserver", "listener", "attributeFilter", "observer", "mutations", "mutation"]
|
|
4
|
+
"sourcesContent": ["import { isArray } from './utils';\n/**\n * Holds regular expressions\n */\n/* tslint:disable-next-line:require-private-underscore */\nconst REGULAR_EXPRESSIONS = {\n placement: {\n auto: /\\s?auto?\\s?/i,\n primary: /^(top|bottom|left|right)$/,\n secondary: /^(top|bottom|left|right|center)$/,\n topBottom: /^(top|bottom)$/\n },\n overflow: /(auto|scroll)/\n};\n/**\n * Holds the browser scrollbar width.\n */\n/* tslint:disable-next-line:require-private-underscore */\nlet SCROLLBAR_WIDTH;\n/**\n * Gets the ownerDocument for an element, if null, than returns the document element.\n * @param {Element} element The element to get the ownerDocument for\n * @returns {Document}\n */\nfunction _ownerDocument(element) {\n return element.ownerDocument || document;\n}\n/**\n * Retrieves an element based on the provided root and selector.\n * @param {Element} root The root element to search within.\n * @param {string} selector The selector for the child element.\n * @param {boolean} [allowNull=false] Should the method allow the element to be not found? Default is false.\n * @returns {HTMLElement}\n */\nexport function getElement(root, selector, allowNull = false) {\n const element = root.querySelector(selector);\n if (!element && !allowNull) {\n throw new Error(`Element not found with selector: ${selector}`);\n }\n return element;\n}\n/**\n * Checks if an element is a valid element.\n * @param {Element} element The node to test\n * @returns {boolean}\n */\nexport function isElement(element) {\n return element && element.nodeType === 1;\n}\n/**\n * Checks if an element is statically positioned.\n * @param {Element} element The node to test.\n * @returns {boolean}\n */\nexport function isPositionStatic(element) {\n return (window.getComputedStyle(element).position || 'static') === 'static';\n}\n/**\n * Parses a style string to a numeric value (removes 'px').\n * @param {string} value The style string to parse.\n * @returns {number}\n */\nexport function parseStyle(value) {\n if (!value || !value.length) {\n return 0;\n }\n const parsedValue = parseFloat(value);\n return isFinite(parsedValue) ? parsedValue : 0;\n}\n/**\n * Gets the index of an element in the parent element children.\n * @param {Element} element The element to get the index on.\n * @returns {number}\n */\nexport function elementIndex(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - elementIndex: invalid element argument');\n }\n if (!element.parentElement) {\n return -1;\n }\n return Array.from(element.parentElement.children).indexOf(element);\n}\n/**\n * Gets an array of parent elements up to the body element.\n * @param {Element} element The element to get the parents of.\n * @param {Element=} untilElement Optional element where traversal should stop.\n * @returns {Array}\n */\nexport function elementParents(element, untilElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - elementParents: invalid element argument');\n }\n const parentElements = [];\n while (element.parentElement) {\n parentElements.push(element.parentElement);\n if (element.parentElement === untilElement || element.parentElement === _ownerDocument(element).body) {\n break;\n }\n // pierce shadow DOM\n if (element.parentElement && element.parentElement.parentNode && element.parentElement.parentNode.nodeType === 11) {\n element = element.parentElement.parentNode.host;\n }\n else {\n element = element.parentElement;\n }\n }\n return parentElements;\n}\n/**\n * Gets the non-statically positioned parent of an element.\n * @param element The element to get the offset parent of.\n * @returns {Element}\n */\nexport function offsetParent(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offsetParent: invalid element argument');\n }\n let offsetParentElem = element.offsetParent;\n while (offsetParentElem && isPositionStatic(offsetParentElem)) {\n offsetParentElem = offsetParentElem.offsetParent;\n }\n return offsetParentElem || _ownerDocument(element).documentElement;\n}\n/**\n * Gets the browser scrollbar width.\n * @returns {number}\n */\nexport function scrollbarWidth() {\n if (SCROLLBAR_WIDTH === undefined) {\n const elem = document.createElement('div');\n elem.style.position = 'absolute';\n elem.style.top = '-100px';\n elem.style.left = '-100px';\n elem.style.width = '50px';\n elem.style.height = '50px';\n elem.style.overflow = 'scroll';\n document.body.appendChild(elem);\n const width = elem.offsetWidth - elem.clientWidth;\n removeElement(elem);\n SCROLLBAR_WIDTH = isFinite(width) ? width : 0;\n }\n return SCROLLBAR_WIDTH;\n}\n/**\n * Checks if an element is scrollable.\n * @param {Element} element The element to test for scrollability\n * @returns {boolean}\n */\nexport function isScrollable(element) {\n const elemStyle = window.getComputedStyle(element);\n return REGULAR_EXPRESSIONS.overflow.test('' + elemStyle.overflow + elemStyle.overflowY + elemStyle.overflowX);\n}\n/**\n * Gets the scroll parent of an element.\n * @param {Element} element The element to get the scroll parent of.\n * @param {boolean} [includeSelf=false] Should the element be checked for scrollability.\n * @returns {Element}\n */\nexport function scrollParent(element, includeSelf = false) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - scrollParent: invalid element argument');\n }\n const docElem = _ownerDocument(element).documentElement;\n const elemStyle = window.getComputedStyle(element);\n if (includeSelf && REGULAR_EXPRESSIONS.overflow.test('' + elemStyle.overflow + elemStyle.overflowY + elemStyle.overflowX)) {\n return element;\n }\n let excludeStatic = elemStyle.position === 'absolute';\n let scrollParentElem = element.parentElement || docElem;\n if (scrollParentElem === docElem || elemStyle.position === 'fixed') {\n return scrollParentElem;\n }\n while (scrollParentElem && scrollParentElem !== docElem) {\n const scrollParentStyle = window.getComputedStyle(scrollParentElem);\n if (excludeStatic && scrollParentStyle.position !== 'static') {\n excludeStatic = false;\n }\n if (!excludeStatic && REGULAR_EXPRESSIONS.overflow.test('' + scrollParentStyle.overflow + scrollParentStyle.overflowY + scrollParentStyle.overflowX)) {\n break;\n }\n scrollParentElem = scrollParentElem.scrollParent;\n }\n return scrollParentElem || docElem;\n}\n/**\n * Checks if the elements scroll parent scrollbars are visible.\n * @param {Element} element The element to check the scroll parent of.\n * @returns {IScrollbarVisibility}\n */\nexport function isScrollbarVisible(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - isDocumentScrolled: invalid element argument');\n }\n const scrollParentElem = scrollParent(element);\n return {\n x: scrollParentElem.scrollWidth > scrollParentElem.clientWidth,\n y: scrollParentElem.scrollHeight > scrollParentElem.clientHeight\n };\n}\n/**\n * Gets the offset from the element to the parent element edges.\n * If no parentElement is supplied, the documentElement will be used.\n * @param {Element} element The element to compute the offset for.\n * @param {Element=} parentElement Optional parent element to measure from.\n * @returns {DOMRect}\n */\nexport function offset(element, parentElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offset: invalid element argument');\n }\n const elemBCR = element.getBoundingClientRect();\n const win = _ownerDocument(element).defaultView;\n const docElem = parentElement || win.document.documentElement;\n const offsetValues = { width: elemBCR.width, height: elemBCR.width, top: 0, left: 0, bottom: 0, right: 0 };\n if (!parentElement || docElem === win.document.documentElement || docElem === win.document.body) {\n offsetValues.top = win.scrollY + elemBCR.top;\n offsetValues.bottom = docElem.clientHeight - win.scrollY - elemBCR.bottom;\n offsetValues.left = win.scrollX + elemBCR.left;\n offsetValues.right = docElem.clientWidth - win.scrollX - elemBCR.right;\n }\n else {\n if (!isElement(parentElement)) {\n throw new Error('DOMUtils - offset: invalid parentElement argument');\n }\n const parentBCR = parentElement.getBoundingClientRect();\n offsetValues.top = elemBCR.top - parentBCR.top;\n offsetValues.bottom = parentBCR.bottom - elemBCR.bottom;\n offsetValues.left = elemBCR.left - parentBCR.left;\n offsetValues.right = parentBCR.right - elemBCR.right;\n }\n return {\n width: Math.round(elemBCR.width),\n height: Math.round(elemBCR.height),\n top: Math.round(offsetValues.top),\n bottom: Math.round(offsetValues.bottom),\n left: Math.round(offsetValues.left),\n right: Math.round(offsetValues.right)\n };\n}\n/**\n * Gets the offset from the element to the parent element viewable edges.\n * If no parentElement is supplied, the documentElement will be used.\n * @param {Element} element The element to measure\n * @param {Element=} parentElement The parent element to measure to.\n * @returns {DOMRect}\n */\nexport function viewportOffset(element, parentElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offset: invalid element argument');\n }\n const win = _ownerDocument(element).defaultView;\n parentElement = parentElement || win.document.documentElement;\n const parentElementOffset = offset(element, parentElement);\n const offsetValues = {\n top: parentElementOffset.top,\n bottom: 0,\n left: parentElementOffset.left,\n right: 0\n };\n if (parentElement === win.document.documentElement) {\n offsetValues.top -= win.scrollY;\n offsetValues.left -= win.scrollX;\n }\n else {\n const parentStyle = window.getComputedStyle(parentElement);\n offsetValues.top -= parseStyle('' + parentStyle.borderTopWidth);\n offsetValues.left -= parseStyle('' + parentStyle.borderLeftWidth);\n }\n offsetValues.bottom = parentElement.clientHeight - offsetValues.top - element.offsetHeight;\n offsetValues.right = parentElement.clientWidth - offsetValues.left - element.offsetWidth;\n return {\n width: parentElementOffset.width,\n height: parentElementOffset.height,\n top: Math.round(offsetValues.top),\n bottom: Math.round(offsetValues.bottom),\n left: Math.round(offsetValues.left),\n right: Math.round(offsetValues.right)\n };\n}\n/**\n * Checks if any part of an element is visible in the viewport.\n * @param {Element} element The element to check.\n * @returns {boolean}\n */\nexport function isElementInViewport(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - isElementInViewport: invalid element argument');\n }\n const document = _ownerDocument(element);\n const scrollParentElem = scrollParent(element);\n const elemBCR = element.getBoundingClientRect();\n if (scrollParentElem !== document.documentElement && scrollParentElem !== document.body) {\n const scrollParentOffset = offset(element, scrollParentElem);\n if (scrollParentOffset.top + elemBCR.height < 0 ||\n scrollParentOffset.left + elemBCR.width < 0 ||\n scrollParentOffset.bottom + elemBCR.height - this.scrollbarWidth < 0 ||\n scrollParentOffset.right + elemBCR.width - this.scrollbarWidth < 0) {\n return false;\n }\n }\n if (elemBCR.top + elemBCR.height < 0 ||\n elemBCR.left + elemBCR.width < 0 ||\n elemBCR.bottom + elemBCR.height > document.documentElement.clientHeight ||\n elemBCR.right + elemBCR.width > document.documentElement.clientWidth) {\n return false;\n }\n return true;\n}\n/**\n * Adds an event listener to the document that will call the provided callback function\n * when an element and it's children no longer have focus. The blur and touchstart events are used\n * to evaluate the active element to determine if the callback should be called.\n *\n * @param {Element} element The element to add the event listener to.\n * @param {Function} callback The function to call when the element and children don't have focus.\n * @param {boolean} [delay=false] Should a RAF cycle occur before the callback is called.\n * @returns {Function} The function to call to remove the document events.\n */\nexport function notChildEventListener(element, callback, delay) {\n const evtHandler = (event) => {\n const handle = () => {\n event.stopPropagation();\n if (event.cancelable) {\n event.preventDefault();\n }\n const activeElement = (event.type === 'touchstart' ? event.target : _ownerDocument(element).activeElement);\n if (!element.contains(activeElement)) {\n callback(activeElement);\n }\n };\n if (delay) {\n window.requestAnimationFrame(() => handle());\n }\n else {\n handle();\n }\n };\n const docElem = _ownerDocument(element);\n docElem.addEventListener('blur', evtHandler, true);\n docElem.addEventListener('touchstart', evtHandler, true);\n return () => {\n docElem.removeEventListener('blur', evtHandler, true);\n docElem.removeEventListener('touchstart', evtHandler, true);\n };\n}\n/**\n * Removes all children from a DOM node.\n * @param node The DOM node to remove children from.\n */\nexport function removeAllChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n/**\n * Replaces one child node of the specified node with another.\n * @param newChild The new node to replace `oldChild`.\n * @param oldChild The existing node to be replaced.\n * @returns {Node} The replaced node. Same node as `oldChild`.\n */\nexport function replaceElement(newChild, oldChild) {\n return oldChild.parentNode.replaceChild(newChild, oldChild);\n}\n/**\n * Adds a class or array of classes to an element.\n *\n * @param {string | string[]} name The class(es) to add to the element\n * @param {Element} element The element to add class(es) to.\n */\nexport function addClass(name, element) {\n if (isArray(name)) {\n name.forEach(n => element.classList.add(n));\n }\n else {\n element.classList.add(name);\n }\n}\n/**\n * Removes a class or array of classes to an element.\n *\n * @param {string | string[]} name The class(es) to remove from the element\n * @param {Element} element The element to remove class(es) from.\n */\nexport function removeClass(name, element) {\n if (isArray(name)) {\n name.forEach(n => element.classList.remove(n));\n }\n else {\n element.classList.remove(name);\n }\n}\n/** Determines which type of animation event is supported. */\nexport function getAnimationEvent() {\n const el = document.createElement('fakeelement');\n // tslint:disable:object-literal-key-quotes\n const animations = {\n 'animation': 'animationend',\n 'OAnimation': 'oAnimationEnd',\n 'MozAnimation': 'animationend',\n 'WebkitAnimation': 'webkitAnimationEnd'\n };\n for (const t in animations) {\n if (el.style[t] !== undefined) {\n return animations[t];\n }\n }\n}\n/**\n * A helper method to trigger a keyframe animation via adding a class, and removing the class when the animation completes.\n * @param {HTMLElement} element The element to play the animation on.\n * @param {string} className The class to add that triggers the animation.\n */\nexport async function playKeyframeAnimation(element, className, remove = true) {\n element.classList.add(className);\n return new Promise(resolve => {\n const animationEvent = getAnimationEvent();\n const animationCompletedListener = () => {\n if (remove) {\n element.classList.remove(className);\n }\n element.removeEventListener(animationEvent, animationCompletedListener);\n resolve();\n };\n element.addEventListener(animationEvent, animationCompletedListener);\n });\n}\n/**\n * Removes an element from the DOM using the available remove method for that platform.\n * @param {HTMLElement} element The element to remove.\n */\nexport function removeElement(element) {\n if (element.removeNode) {\n element.removeNode(true);\n }\n else if (element.remove) {\n element.remove();\n }\n else {\n element.parentNode.removeChild(element);\n }\n}\n/**\n * Returns a width string that is safe for css based on the provided input.\n * @param {string | number} width\n * @returns {string | undefined} A width safe for using in CSS.\n */\nexport function safeCssWidth(width) {\n if (typeof width === 'string') {\n if (width[width.length - 1] === '%') {\n return width;\n }\n else if (width.slice(-2) === 'px') {\n return width;\n }\n else if (Number(width) >= 0) {\n return `${width}px`;\n }\n }\n else if (typeof width === 'number') {\n if (width >= 0) {\n return `${width}px`;\n }\n }\n return undefined;\n}\n/**\n * Calculates the size of an element that is not attached to the DOM.\n * @param {HTMLElement} element The element to calc the size of.\n * @returns {width, height} The size of the element.\n */\nexport function calcSizeUnattached(element) {\n let container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.top = '-99999px';\n container.style.left = '-99999px';\n container.style.visibility = 'hidden';\n container.appendChild(element.cloneNode(true));\n document.body.appendChild(container);\n const size = {\n width: container.scrollWidth,\n height: container.scrollHeight\n };\n removeElement(container);\n container = undefined;\n return size;\n}\n/**\n * Resolves a promise when the provided element has children.\n * @param {Element} element An element that does or will contain children.\n */\nexport function ensureChildren(element) {\n if (element.children.length) {\n return Promise.resolve();\n }\n return new Promise(resolve => {\n const observer = new MutationObserver(changes => {\n if (element.children.length) {\n observer.disconnect();\n resolve();\n }\n });\n observer.observe(element, { childList: true });\n });\n}\n/**\n * Resolves a promise when the provided element has a child that matches a given selector.\n * @param {Element} element An element that does or will contain children.\n * @param {string} selector A CSS selector to use for finding an element.\n */\nexport function ensureChild(element, selector) {\n const initialElements = deepQuerySelectorAll(element, selector);\n if (initialElements.length) {\n return Promise.resolve(initialElements[0]);\n }\n return new Promise(resolve => {\n const observer = new MutationObserver(changes => {\n const hasAddedNodes = changes.reduce((prev, curr) => prev + curr.addedNodes.length, 0) > 0;\n if (hasAddedNodes) {\n const foundElements = deepQuerySelectorAll(element, selector);\n if (foundElements.length) {\n observer.disconnect();\n resolve(foundElements[0]);\n }\n }\n });\n observer.observe(element, { childList: true, subtree: true });\n });\n}\n/**\n * Resolves a promise when the provided host element has an `<input>` element child\n * @param {HTMLElement} host An element that does or will contain children.\n */\nexport function ensureInputElement(host) {\n return new Promise(resolve => {\n const element = host.querySelector('input');\n if (element) {\n resolve(element);\n }\n const observer = new MutationObserver(changes => {\n const hasAddedNodes = changes.reduce((prev, curr) => prev + curr.addedNodes.length, 0) > 0;\n if (hasAddedNodes) {\n const foundElement = host.querySelector('input');\n if (foundElement) {\n observer.disconnect();\n resolve(foundElement);\n }\n }\n });\n observer.observe(host, { childList: true, subtree: true });\n });\n}\n/**\n * Walks up the tree starting a specific node and stops when the provided matcher function returns true.\n * @param {Node} node The node to start searching from.\n * @returns {Node | null} The closest matching ancestor node, or null if not found.\n */\nexport function walkUpUntil(node, matcher) {\n let parent = node && node.parentNode;\n while (parent) {\n if (matcher(parent)) {\n return parent;\n }\n parent = parent.parentNode;\n }\n return null;\n}\n/**\n * Calculates the width of a string given the provided font information.\n */\nexport function calculateFontWidth(value, info) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const fontSize = info ? info.fontSize : 16;\n const fontFamily = info ? info.fontFamily : 'Roboto';\n ctx.font = `${fontSize}px ${fontFamily}`;\n return ctx.measureText(value).width;\n}\n/**\n * Generates a CSS text-shadow style value based on the number of iterations and color provided.\n * @param {number} iterations The number of iterations for how long the shadow should be.\n * @param {string} color The color of the text shadow. Can be any CSS-safe color format. Ex. hex, rgb, rgba, hsl... etc.\n */\nexport function generateTextShadow(iterations, color) {\n const shadows = [];\n for (let i = 1; i <= iterations; i++) {\n shadows.push(`${i}px ${i}px ${color}`);\n }\n return shadows.join(', ');\n}\n/**\n * Checks if an element matches any of the provided selectors.\n * @param {Element} el The element to match.\n * @param {string[]} selectors The selectors to check the element against.\n */\nexport function matchesSelectors(el, selectors) {\n if (el.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n if (typeof selectors === 'string') {\n selectors = selectors.replace(/\\s+/, '').split(',');\n }\n const matchesFn = Element.prototype.matches;\n return selectors.some(selector => matchesFn.call(el, selector));\n}\n/**\n * Walks the DOM tree starting at a root element and checks if any of its children\n * match the provided selectors. Similar to the native `querySelectorAll` except\n * that it will traverse the shadow DOM as well as slotted nodes.\n * @param {Element} rootElement The element to start querying from.\n * @param {string[]} selectors An array of CSS selectors.\n * @param {boolean} [checkRootElement] True if the provided root element is to be matched against the selectors.\n */\nexport function deepQuerySelectorAll(rootElement, selectors, checkRootElement = false) {\n let nodes = [];\n if (!rootElement) {\n return nodes;\n }\n if (typeof selectors === 'string') {\n selectors = selectors.replace(/\\s+/, '').split(',');\n }\n if (checkRootElement && matchesSelectors(rootElement, selectors) && nodes.indexOf(rootElement) === -1) {\n nodes.push(rootElement);\n }\n if (rootElement.tagName === 'SLOT') {\n const slotNodes = rootElement.assignedNodes();\n slotNodes.forEach(slottedNode => nodes = nodes.concat(deepQuerySelectorAll(slottedNode, selectors, true)));\n }\n else {\n let node = rootElement.shadowRoot ? rootElement.shadowRoot.firstElementChild : rootElement.firstElementChild;\n while (node) {\n nodes = nodes.concat(deepQuerySelectorAll(node, selectors, true));\n node = node.nextElementSibling;\n }\n }\n return nodes;\n}\n/**\n * Gets the currently focused element within the document by also traversing shadow roots.\n * @param {Document} doc The document to get the active element from. Defaults to the current document.\n * @returns {Element}\n */\nexport function getActiveElement(doc = document) {\n const activeElement = doc.activeElement;\n if (!activeElement || activeElement === doc.body) {\n return activeElement;\n }\n return getActiveShadowElement(activeElement);\n}\n/**\n * Gets the active element within the provided elements shadow root. If the element\n * does not have a shadow root, the provided element is returned.\n * @param {Element} element The active element.\n */\nexport function getActiveShadowElement(element) {\n if (element.shadowRoot && element.shadowRoot.activeElement) {\n element = getActiveShadowElement(element.shadowRoot.activeElement);\n }\n return element;\n}\n/** Toggles a CSS class (or classes) on an element based on a boolean. */\nexport function toggleClass(el, hasClass, className) {\n if (hasClass) {\n addClass(className, el);\n }\n else {\n removeClass(className, el);\n }\n}\n/** Toggles a value-less attribute on an element. */\nexport function toggleAttribute(el, hasAttribute, name, value = '') {\n if (hasAttribute) {\n el.setAttribute(name, value);\n }\n else {\n el.removeAttribute(name);\n }\n}\n/** Toggles part of an attribute on an element. */\nexport function toggleOnAttribute(el, attribute, value, force) {\n const oldValue = el.getAttribute(attribute);\n if ((force === undefined || force === true) && (!oldValue || !oldValue.includes(value))) {\n appendToAttribute(el, attribute, value);\n }\n else if (!force) {\n removeFromAttribute(el, attribute, value);\n }\n}\n/** Appends a value to an attribute on an element, first setting it if it doesn't exist. */\nexport function appendToAttribute(el, attribute, value) {\n const oldValue = el.getAttribute(attribute);\n if (!oldValue || !oldValue.length) {\n el.setAttribute(attribute, value);\n }\n else {\n el.setAttribute(attribute, `${oldValue} ${value}`);\n }\n}\n/** Removes a value from an attribute on an element, removing the attribute if empty. */\nexport function removeFromAttribute(el, attribute, value) {\n if (!el.hasAttribute(attribute)) {\n return;\n }\n const oldValue = el.getAttribute(attribute);\n if (oldValue) {\n let newValue = oldValue === null || oldValue === void 0 ? void 0 : oldValue.replace(value, '');\n newValue = newValue.replace(/\\s+/g, ' ').trim();\n if (newValue.length) {\n el.setAttribute(attribute, newValue);\n }\n else {\n el.removeAttribute(attribute);\n }\n }\n}\n/**\n * Attempts to scroll a target element into view within a scrollable parent element, unless already visible within the container.\n * @param scrollElement The scrollable parent element.\n * @param targetElement The element to scroll into view.\n * @param behavior The scroll behavior. Defaults to 'auto'.\n * @param block The block position to anchor the target element to within the scroll element.\n */\nexport function tryScrollIntoView(scrollElement, targetElement, behavior = 'auto', block = 'nearest') {\n if (!scrollElement) {\n return;\n }\n const canScroll = scrollElement.scrollHeight > scrollElement.clientHeight || scrollElement.scrollWidth > scrollElement.clientWidth;\n if (canScroll) {\n const offsetRect = offset(targetElement, scrollElement);\n const isClippedTop = offsetRect.top <= targetElement.clientHeight;\n const isClippedBottom = offsetRect.bottom <= targetElement.clientHeight;\n if (isClippedTop || isClippedBottom) {\n const top = calcBlockScroll(block, isClippedTop, targetElement.offsetTop, targetElement.clientHeight, scrollElement.offsetTop, scrollElement.offsetHeight);\n scrollElement.scrollTo({ top, behavior });\n return;\n }\n const isClippedLeft = offsetRect.left <= targetElement.clientWidth;\n const isClippedRight = offsetRect.right <= targetElement.clientWidth;\n if (isClippedLeft || isClippedRight) {\n const left = calcBlockScroll(block, isClippedLeft, targetElement.offsetLeft, targetElement.clientWidth, scrollElement.offsetLeft, scrollElement.offsetWidth);\n scrollElement.scrollTo({ left, behavior });\n }\n }\n}\n/** Calculates the block anchor position for a target element within a scrollable parent element. */\nexport function calcBlockScroll(block, isClippedStart, targetOffset, targetSize, scrollOffset, scrollSize) {\n if (block === 'nearest') {\n if (isClippedStart) {\n return (targetOffset - scrollOffset) - targetSize;\n }\n return (targetOffset - scrollSize) + targetSize * 2;\n }\n return targetOffset - scrollOffset - scrollSize / 2 + targetSize / 2;\n}\n/**\n * Creates an element from an HTML string.\n */\nexport function elementFromHTML(html) {\n const template = document.createElement('template');\n html = html.trim();\n template.innerHTML = html;\n return template.content.firstElementChild;\n}\n/**\n * Observes changes to the provided attributes on a target element and executes a provided callback when changed.\n * @param element The element to observe.\n * @param listener The callback to execute when an attribute changes on the element.\n * @param attributeFilter The attributes to observe.\n * @returns A `MutationObserver` instasnce.\n */\nexport function createElementAttributeObserver(element, listener, attributeFilter) {\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName) {\n listener(mutation.attributeName, element.getAttribute(mutation.attributeName));\n }\n }\n });\n observer.observe(element, { attributes: true, attributeFilter });\n return observer;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["_ownerDocument", "element", "isElement", "element", "elementParents", "element", "untilElement", "isElement", "parentElements", "_ownerDocument", "offset", "element", "parentElement", "isElement", "elemBCR", "win", "_ownerDocument", "docElem", "offsetValues", "parentBCR", "notChildEventListener", "element", "callback", "delay", "evtHandler", "event", "handle", "activeElement", "_ownerDocument", "docElem", "removeAllChildren", "node", "replaceElement", "newChild", "oldChild", "addClass", "name", "isArray", "n", "removeClass", "getAnimationEvent", "el", "animations", "t", "playKeyframeAnimation", "className", "remove", "resolve", "animationEvent", "animationCompletedListener", "removeElement", "safeCssWidth", "width", "calcSizeUnattached", "container", "size", "ensureChildren", "observer", "changes", "ensureChild", "selector", "initialElements", "deepQuerySelectorAll", "prev", "curr", "foundElements", "walkUpUntil", "node", "matcher", "parent", "calculateFontWidth", "value", "info", "ctx", "fontSize", "fontFamily", "generateTextShadow", "iterations", "color", "shadows", "i", "matchesSelectors", "el", "selectors", "matchesFn", "selector", "deepQuerySelectorAll", "rootElement", "checkRootElement", "nodes", "slottedNode", "getActiveElement", "doc", "activeElement", "getActiveShadowElement", "element", "toggleClass", "hasClass", "className", "addClass", "removeClass", "toggleAttribute", "hasAttribute", "name", "toggleOnAttribute", "attribute", "force", "oldValue", "appendToAttribute", "removeFromAttribute", "newValue", "tryScrollIntoView", "scrollElement", "targetElement", "behavior", "block", "offsetRect", "offset", "isClippedTop", "isClippedBottom", "top", "calcBlockScroll", "isClippedLeft", "isClippedRight", "left", "isClippedStart", "targetOffset", "targetSize", "scrollOffset", "scrollSize", "elementFromHTML", "html", "template", "createElementAttributeObserver", "listener", "attributeFilter", "observer", "mutations", "mutation"]
|
|
7
7
|
}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import{a as e}from"./chunk.
|
|
7
|
-
//# sourceMappingURL=chunk.
|
|
6
|
+
import{a as e}from"./chunk.PADPL4L3.js";var o=class extends e{constructor(n){super(n)}};export{o as a};
|
|
7
|
+
//# sourceMappingURL=chunk.KVCDAZ6B.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{f as I}from"./chunk.FYWPZFLJ.js";import{a as S,d as F,l as B}from"./chunk.TCFKFKZW.js";import{b as v,c as z}from"./chunk.E4TAHUQO.js";import{a as D}from"./chunk.YOXZOPAC.js";import{a as p}from"./chunk.NVUMRW44.js";import{a as L,b as h}from"./chunk.HGH6SSHZ.js";import{e as w,f,k as C}from"./chunk.I5SFCLDD.js";import{f as k,g as m,i as l,n as x,s as b,t as s,y as T}from"./chunk.K7FPXAFS.js";import{k as d}from"./chunk.J2M2MXP2.js";import{a as y,b as E,d as c}from"./chunk.M3QDAYD2.js";var R=`${h}chip-set`,O={VERTICAL:"vertical",TYPE:"type",DENSE:"dense",DISABLED:"disabled"},A={ROOT:"forge-chip-set",VERTICAL:"forge-chip-set--vertical"},H={ROOT:`.${A.ROOT}`},N={elementName:R,attributes:O,classes:A,selectors:H};var n=`${h}chip`,M={TYPE:"type",SELECTED:"selected",VALUE:"value",DISABLED:"disabled",INVALID:"invalid",DENSE:"dense",EMULATE_FOCUS:"emulate-focus"},U={ACTION:"forge-chip--action",CHOICE:"forge-chip--choice",FILTER:"forge-chip--filter",INPUT:"forge-chip--input",FIELD:"forge-chip--field",INVALID:"forge-chip--invalid",SELECTED:"forge-chip--selected",DELETE_BUTTON:"forge-chip__delete-button",DELETE_BUTTON_TOUCH_TARGET:"forge-chip__delete-button__touch-target",DENSE:"forge-chip--dense",DISABLED:"forge-chip--disabled",LEADING_HIDDEN:"forge-chip__leading--hidden"},P={ROOT:".forge-chip",BUTTON:"[role=button]"},V={DELETE:`${n}-delete`,SELECT:`${n}-select`,FOCUS_NEXT:`${n}-focus-next`,FOCUS_PREVIOUS:`${n}-focus-previous`},K={TYPE:"action"},t={elementName:n,attributes:M,classes:U,selectors:P,events:V,defaults:K};var $='<div class="forge-chip__checkmark" aria-hidden="true"><svg class="forge-chip__checkmark-svg" viewBox="-2 -3 30 30"><path class="forge-chip__checkmark-path" fill="none" stroke="black" d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></div>',g=class extends D{constructor(e){super(e);this._rootElement=f(this._component,t.selectors.ROOT),this._buttonElement=f(this._component,t.selectors.BUTTON),this._leadingSlotElement=f(this._component,"slot[name=leading]"),this._rootElement.addEventListener("click",r=>{r.target!==this._deleteButton&&this._buttonElement.focus()},{capture:!0})}get root(){return this._rootElement}get unbounded(){return!1}get disabled(){var e;return(e=this._buttonElement)==null?void 0:e.disabled}addRootListener(e,r){this._rootElement.addEventListener(e,r)}removeRootListener(e,r){this._rootElement.removeEventListener(e,r)}addButtonListener(e,r){this._buttonElement.addEventListener(e,r)}removeButtonListener(e,r){this._buttonElement.removeEventListener(e,r)}initializeRipple(){let e=E(y({},v.createAdapter(this)),{registerInteractionHandler:(r,o)=>{["focus","blur","keydown"].includes(r)?this._buttonElement.addEventListener(r,o,{passive:!0}):this._rootElement.addEventListener(r,o,{passive:!0})},deregisterInteractionHandler:(r,o)=>{["focus","blur","keydown"].includes(r)?this._buttonElement.removeEventListener(r,o,{passive:!0}):this._rootElement.removeEventListener(r,o,{passive:!0})},isSurfaceActive:()=>this._buttonElement.matches(":active"),isUnbounded:()=>!!this.unbounded,isSurfaceDisabled:()=>this._buttonElement.disabled,addClass:r=>k(r,this._rootElement),removeClass:r=>m(r,this._rootElement),updateCssVariable:(r,o)=>this._rootElement.style.setProperty(r,o)});return this._rippleInstance=new v(this._rootElement,new z(e)),this._rippleInstance}clearTypeClass(){m([t.classes.ACTION,t.classes.CHOICE,t.classes.FILTER,t.classes.INPUT],this._buttonElement)}addRootClass(e){this._rootElement.classList.add(e)}removeRootClass(e){this._rootElement.classList.remove(e)}setCheckmarkVisibility(e){e?(this._checkmarkElement||(this._checkmarkElement=T($)),this._rootElement.insertBefore(this._checkmarkElement,this._rootElement.firstChild)):this._checkmarkElement&&this._checkmarkElement.isConnected&&l(this._checkmarkElement)}setSelected(e){s(this._rootElement,e,t.classes.SELECTED)}setDisabled(e){this._buttonElement.disabled=e,this._buttonElement.tabIndex=e?-1:0,s(this._rootElement,e,t.classes.DISABLED)}setDense(e){s(this._rootElement,e,t.classes.DENSE)}setDeleteButtonVisibility(e,r){e?(this._deleteButton||(this._deleteButton=this._createDeleteButton(r)),this._deleteButtonTouchTarget||(this._deleteButtonTouchTarget=this._createDeleteButtonTouchTarget(r)),this._deleteButton.appendChild(this._deleteButtonTouchTarget),this._rootElement.appendChild(this._deleteButton)):(this._deleteButtonTouchTarget&&l(this._deleteButtonTouchTarget),this._deleteButton&&l(this._deleteButton))}setLeadingSlotVisibility(e){s(this._leadingSlotElement,!e,t.classes.LEADING_HIDDEN)}getChipSetState(){let e=null,r=x(this._component,o=>o&&o.nodeName===N.elementName.toUpperCase());return r&&(e={type:r.type,disabled:r.disabled,dense:r.dense}),e}_createDeleteButton(e){let r=document.createElement(S.elementName);return r.id="remove-button",r.name="cancel",r.tabIndex=-1,r.setAttribute("aria-hidden","false"),r.setAttribute("aria-label",`Remove ${this._component.innerText}`),r.setAttribute("role","button"),r.classList.add(t.classes.DELETE_BUTTON),r.addEventListener("keydown",e),r}_createDeleteButtonTouchTarget(e){let r=document.createElement("div");return r.classList.add(t.classes.DELETE_BUTTON_TOUCH_TARGET),r.addEventListener("keydown",e),r.addEventListener("click",e),r}setFocus(){this._buttonElement.focus()}tryFocusDelete(){this._deleteButton?this._deleteButton.focus():this.setFocus()}setEmulatedFocus(e){this._buttonElement.classList.toggle("mdc-ripple-upgraded--background-focused",e)}tryMoveFocusNext(){let e=b(this._component.ownerDocument);e===this._buttonElement?this._deleteButton?this._deleteButton.focus():this.emitHostEvent(t.events.FOCUS_NEXT):e===this._deleteButton&&this.emitHostEvent(t.events.FOCUS_NEXT)}tryMoveFocusPrevious(){let e=b(this._component.ownerDocument);e===this._deleteButton?this._buttonElement.focus():e===this._buttonElement&&this.emitHostEvent(t.events.FOCUS_PREVIOUS)}};var u=class{constructor(i){this._adapter=i;this._type=t.defaults.TYPE;this._selected=!1;this._disabled=!1;this._invalid=!1;this._value=null;this._dense=!1;this._emulateFocus=!1;this._isInitialized=!1;this._clickListener=e=>this._onClick(e),this._keydownListener=e=>this._onKeydown(e),this._deleteKeydownListener=e=>this._onDeleteKeydown(e),this._buttonFocusListener=e=>this._onButtonFocus(e),this._buttonBlurListener=e=>this._onButtonBlur(e)}initialize(){this._rippleInstance=this._adapter.initializeRipple(),this._adapter.addRootListener("click",this._clickListener),this._adapter.addRootListener("keydown",this._keydownListener),this._adapter.addButtonListener("focus",this._buttonFocusListener),this._adapter.addButtonListener("blur",this._buttonBlurListener),this._applyState(),this._isInitialized=!0}disconnect(){this._destroyRipple(),this._adapter.removeRootListener("click",this._clickListener),this._adapter.removeRootListener("keydown",this._keydownListener),this._adapter.removeButtonListener("focus",this._buttonFocusListener),this._adapter.removeButtonListener("blur",this._buttonBlurListener),this._isInitialized=!1}_destroyRipple(){this._rippleInstance&&(this._rippleInstance.destroy(),this._rippleInstance=void 0)}_applyState(){let i=this._adapter.getChipSetState();i&&(this._type=i.type,this._disabled=i.disabled,this._dense=i.dense),this._type==="action"&&(this._selected=!1),this._applyDisabled(),this._applyType(),this._applySelected(),this._applyDense(),this._applyEmulateFocus()}_onClick(i){let e=i.target;e.classList.contains(t.classes.DELETE_BUTTON)||e.classList.contains(t.classes.DELETE_BUTTON_TOUCH_TARGET)?this._handleDeleteInteraction(i):this._handleSelectInteraction()}_onKeydown(i){var e;switch(i.key){case"Delete":case"Backspace":this._type==="input"&&(i.preventDefault(),this._emitDeleteEvent());break;case"Enter":case" ":i.preventDefault(),(e=this._rippleInstance)==null||e.animate(),this._handleSelectInteraction();break;case"ArrowLeft":i.preventDefault(),this._adapter.tryMoveFocusPrevious();break;case"ArrowRight":i.preventDefault(),this._adapter.tryMoveFocusNext();break}}_onDeleteKeydown(i){i.key==="Enter"&&this._handleDeleteInteraction(i)}_onButtonFocus(i){this._adapter.setHostAttribute("focused")}_onButtonBlur(i){this._adapter.removeHostAttribute("focused")}_handleDeleteInteraction(i){let e=i.target;(e.classList.contains(t.classes.DELETE_BUTTON)||e.classList.contains(t.classes.DELETE_BUTTON_TOUCH_TARGET))&&(i.stopPropagation(),this._emitDeleteEvent())}_handleSelectInteraction(){let i=this._emitSelectEvent(),e=["filter","choice","input"].includes(this._type);!i&&e&&(this._selected=!this._selected,this._applySelected())}_emitSelectEvent(){let i={selected:!this._selected,value:this._value};return!this._adapter.emitHostEvent(t.events.SELECT,i,!0,!0)}_emitDeleteEvent(){let i={value:this._value};this._adapter.emitHostEvent(t.events.DELETE,i,!0,!0)}_applyType(){switch(this._adapter.clearTypeClass(),this._type){case"action":this._adapter.addRootClass(t.classes.ACTION);break;case"choice":this._adapter.addRootClass(t.classes.CHOICE);break;case"filter":this._adapter.addRootClass(t.classes.FILTER);break;case"input":this._adapter.addRootClass(t.classes.INPUT);break;case"field":this._adapter.addRootClass(t.classes.FIELD);break}this._adapter.setCheckmarkVisibility(this._type==="filter");let i=this._type==="input"||this._type==="field";this._adapter.setDeleteButtonVisibility(i,this._deleteKeydownListener),this._adapter.setLeadingSlotVisibility(!this._selected),this._adapter.setHostAttribute(t.attributes.TYPE,this._type)}_applySelected(){this._adapter.setSelected(this._selected),this._type==="filter"&&this._adapter.setLeadingSlotVisibility(!this._selected),this._adapter.toggleHostAttribute(t.attributes.SELECTED,this._selected)}_applyDisabled(){this._adapter.setDisabled(this._disabled),this._adapter.toggleHostAttribute(t.attributes.DISABLED,this._disabled)}_applyDense(){this._adapter.setDense(this._dense),this._adapter.toggleHostAttribute(t.attributes.DISABLED,this._disabled)}_applyEmulateFocus(){this._adapter.toggleHostAttribute(t.attributes.EMULATE_FOCUS,this._emulateFocus),this._adapter.setEmulatedFocus(this._emulateFocus)}get type(){return this._type}set type(i){this._type!==i&&(this._type=i,this._isInitialized&&(["action","choice","filter","input","field"].includes(this._type)||(this._type="action"),this._type==="action"&&(this._selected=!1,this._applySelected()),this._applyType()))}get selected(){return this._selected}set selected(i){this._selected!==i&&(this._selected=i,this._isInitialized&&(this._type==="action"&&(this._selected=!1),this._applySelected()))}get disabled(){return this._disabled}set disabled(i){this._disabled!==i&&(this._disabled=i,this._isInitialized&&this._applyDisabled())}get invalid(){return this._invalid}set invalid(i){this._invalid!==i&&(this._invalid=i,i?(this._adapter.setHostAttribute(t.attributes.INVALID,""),this._adapter.addRootClass(t.classes.INVALID)):(this._adapter.removeHostAttribute(t.attributes.INVALID),this._adapter.removeRootClass(t.classes.INVALID)))}get value(){return this._value}set value(i){this._value=i}get dense(){return this._dense}set dense(i){this._dense!==i&&(this._dense=i,this._isInitialized&&this._applyDense())}get emulateFocus(){return this._emulateFocus}set emulateFocus(i){this._emulateFocus!==i&&(this._emulateFocus=i,this._isInitialized&&this._applyEmulateFocus())}setFocus(){this._adapter.setFocus()}tryFocusDelete(){if(this._type==="input"){this._adapter.tryFocusDelete();return}this.setFocus()}};var Y='<template><div class="forge-chip" part="root button"><slot name="leading" class="forge-chip__leading"></slot><div role="button" tabindex="0" class="forge-chip__content" part="content"><slot></slot></div><slot name="trailing"></slot></div></template>',G='@-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-chip{--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;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-button-font-size, .875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight,500);letter-spacing:.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, .0892857143em);text-decoration:none;-webkit-text-decoration:var(--mdc-typography-button-text-decoration,none);text-decoration:var(--mdc-typography-button-text-decoration,none);text-transform:uppercase;text-transform:var(--mdc-typography-button-text-transform,uppercase);position:relative;display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:64px;border:none;outline:0;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:0 0;border-radius:4px;border-radius:var(--mdc-shape-small,4px);height:36px;text-transform:none;box-sizing:border-box;overflow:hidden;border-style:solid;-webkit-transition:border 280ms cubic-bezier(.4, 0, .2, 1);transition:border 280ms cubic-bezier(.4, 0, .2, 1);font-family:Roboto,sans-serif;font-family:var(--mdc-outlined-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:.875rem;font-size:var(--mdc-outlined-button-label-text-size, var(--mdc-typography-button-font-size, .875rem));letter-spacing:.0892857143em;letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, .0892857143em));font-weight:500;font-weight:var(--mdc-outlined-button-label-text-weight,var(--mdc-typography-button-font-weight,500));text-transform:uppercase;text-transform:var(--mdc-outlined-button-label-text-transform,var(--mdc-typography-button-text-transform,uppercase));height:36px;height:var(--mdc-outlined-button-container-height,36px);border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px));padding:0 15px 0 15px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px);padding:0 15px 0 15px;border-width:1px;border-radius:16px;width:auto;width:var(--forge-chip-width,auto);height:auto;height:var(--forge-chip-height,auto);min-height:36px;min-height:var(--forge-chip-min-height,36px);box-sizing:border-box;-webkit-transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1);transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-chip::after,.forge-chip::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-chip::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-chip::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-chip.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-chip.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-chip.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-chip.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-chip.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-chip::after,.forge-chip::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-chip.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-chip::after,.forge-chip::before{background-color:#6200ee;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#6200ee))}.forge-chip.mdc-ripple-surface--hover::before,.forge-chip:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-chip.mdc-ripple-upgraded--background-focused::before,.forge-chip:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-chip:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-chip.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.forge-chip::-moz-focus-inner{padding:0;border:0}.forge-chip:active{outline:0}.forge-chip:hover{cursor:pointer}.forge-chip:disabled{cursor:default;pointer-events:none}.forge-chip .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-chip:not(:disabled){background-color:transparent}.forge-chip:not(:disabled){color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.forge-chip .mdc-button__ripple{border-style:solid;border-color:transparent}.forge-chip:not(:disabled){color:#6200ee;color:var(--mdc-outlined-button-label-text-color,var(--mdc-theme-primary,#6200ee))}.forge-chip:disabled{color:rgba(0,0,0,.38);color:var(--mdc-outlined-button-disabled-label-text-color,rgba(0,0,0,.38))}.forge-chip .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-outlined-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-outlined-button-with-icon-icon-size,1.125rem);height:1.125rem;height:var(--mdc-outlined-button-with-icon-icon-size,1.125rem)}.forge-chip .mdc-button__ripple::after,.forge-chip .mdc-button__ripple::before{background-color:#6200ee;background-color:var(--mdc-outlined-button-hover-state-layer-color,var(--mdc-theme-primary,#6200ee))}.forge-chip.mdc-ripple-surface--hover .mdc-button__ripple::before,.forge-chip:hover .mdc-button__ripple::before{opacity:.04;opacity:var(--mdc-outlined-button-hover-state-layer-opacity, .04)}.forge-chip.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.forge-chip:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-focus-state-layer-opacity, .12)}.forge-chip:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, .12)}.forge-chip.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, 0.12)}.forge-chip .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px))}.forge-chip:not(:disabled){border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-outline-color,rgba(0,0,0,.12))}.forge-chip:disabled{border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-disabled-outline-color,rgba(0,0,0,.12))}.forge-chip.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-chip.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-chip .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px)}.forge-chip .mdc-button__touch{left:calc(-1 * 1px);left:calc(-1 * var(--mdc-outlined-button-outline-width,1px));width:calc(100% + 2 * 1px);width:calc(100% + 2 * var(--mdc-outlined-button-outline-width,1px))}.forge-chip.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-chip.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-chip .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px}.forge-chip .mdc-button__touch{left:calc(-1 * 1px);width:calc(100% + 2 * 1px)}.forge-chip:not(:disabled){border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee)}.forge-chip .mdc-evolution-chip__ripple{border-radius:16px}.forge-chip .mdc-evolution-chip__action--primary:before{border-radius:16px}.forge-chip .mdc-evolution-chip__icon--primary{border-radius:16px}.forge-chip.forge-chip--disabled{border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:default;pointer-events:none}.forge-chip.forge-chip--disabled .forge-chip__delete-button{opacity:.54}.forge-chip__leading--hidden{display:none}.forge-chip__content{-webkit-box-flex:1;flex-grow:1;text-align:center}.forge-chip__content:focus{outline:0}.forge-chip ::slotted([slot=leading]){margin-left:-6px;margin-right:4px}.forge-chip ::slotted(forge-avatar[slot]){--forge-avatar-size:24px}.forge-chip ::slotted([slot=trailing]){margin-left:4px;margin-right:-8px}.forge-chip__checkmark{height:24px}.forge-chip__checkmark-svg{width:0;height:24px;-webkit-transition:width 150ms cubic-bezier(.4, 0, .2, 1);transition:width 150ms cubic-bezier(.4, 0, .2, 1)}.forge-chip__checkmark-path{stroke:#fff;stroke:var(--mdc-theme-on-primary,#fff);-webkit-transition:stroke-dashoffset 150ms 0 cubic-bezier(.4, 0, .6, 1);transition:stroke-dashoffset 150ms 0 cubic-bezier(.4, 0, .6, 1);stroke-width:2px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.forge-chip__delete-button{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:4px;margin-right:-8px;-webkit-transition:color 150ms linear;transition:color 150ms linear;outline:0;line-height:inherit;position:relative;border-radius:50%}.forge-chip__delete-button:focus{outline:currentColor solid 2px}.forge-chip__delete-button:focus,.forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip__delete-button:active{opacity:.75}.forge-chip__delete-button__touch-target{position:absolute;top:-6px;left:-6px;width:calc(100% + 12px);height:calc(100% + 12px)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled),.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled),.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled){background-color:#6200ee;background-color:var(--mdc-theme-primary,#6200ee);color:#fff;color:var(--mdc-theme-text-primary-on-dark,#fff)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled)::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled)::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled)::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):hover::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):hover::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled,.forge-chip--filter.forge-chip--selected.forge-chip--disabled,.forge-chip--input.forge-chip--selected.forge-chip--disabled{background-color:#6200ee;background-color:var(--mdc-theme-primary,#6200ee);color:#fff;color:var(--mdc-theme-text-primary-on-dark,#fff);opacity:.37}.forge-chip--choice.forge-chip--selected.forge-chip--disabled::after,.forge-chip--choice.forge-chip--selected.forge-chip--disabled::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--choice.forge-chip--selected.forge-chip--disabled:hover::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:hover::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled:hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-chip--choice.forge-chip--selected ::slotted([slot=leading]),.forge-chip--filter.forge-chip--selected ::slotted([slot=leading]),.forge-chip--input.forge-chip--selected ::slotted([slot=leading]){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected ::slotted([slot=trailing]),.forge-chip--filter.forge-chip--selected ::slotted([slot=trailing]),.forge-chip--input.forge-chip--selected ::slotted([slot=trailing]){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected .forge-chip__delete-button,.forge-chip--filter.forge-chip--selected .forge-chip__delete-button,.forge-chip--input.forge-chip--selected .forge-chip__delete-button{color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark{margin-left:-6px;margin-right:4px}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg{width:24px}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path{-webkit-transition:stroke-dashoffset 150ms 50ms cubic-bezier(.4, 0, .6, 1);transition:stroke-dashoffset 150ms 50ms cubic-bezier(.4, 0, .6, 1);stroke-dashoffset:0}.forge-chip--field .forge-chip__delete-button{color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.forge-chip--field .forge-chip__delete-button:focus,.forge-chip--field .forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button:focus,.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip--field.forge-chip--disabled .forge-chip__delete-button{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-chip--dense{min-height:28px;min-height:var(--forge-chip-min-height,28px)}.forge-chip--dense.forge-chip--field{min-height:20px;min-height:var(--forge-chip-min-height,20px);padding:0;margin:0;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.forge-chip--dense.forge-chip--field ::slotted([slot=leading]){margin:0 0 0 2px;font-size:18px!important}.forge-chip--dense.forge-chip--field .forge-chip__content{font-size:12px;padding:0 8px}.forge-chip--dense.forge-chip--field ::slotted([slot=trailing]){font-size:18px!important}.forge-chip--dense.forge-chip--field .forge-chip__delete-button{margin:0 2px 0 0;font-size:18px}.forge-chip--invalid:not(.forge-chip--disabled){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled)::after,.forge-chip--invalid:not(.forge-chip--disabled)::before{background-color:#b00020;background-color:var(--mdc-ripple-color,var(--mdc-theme-error,#b00020))}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--invalid:not(.forge-chip--disabled):hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-chip--invalid:not(.forge-chip--disabled):not(:disabled){border-color:#b00020;border-color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled).forge-chip--selected{background-color:#b00020;background-color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled).forge-chip--selected .forge-chip__delete-button{color:#fff;color:var(--mdc-theme-on-primary,#fff)}:host{display:inline-block}:host([hidden]){display:none}:host([theme=error]){--mdc-theme-primary:var(--mdc-theme-error)}',a=class extends C{constructor(){super();F.define(I),w(this,Y,G),this._foundation=new u(new g(this))}static get observedAttributes(){return[t.attributes.TYPE,t.attributes.SELECTED,t.attributes.DISABLED,t.attributes.VALUE,t.attributes.DENSE,t.attributes.INVALID,t.attributes.EMULATE_FOCUS]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,r,o){switch(e){case t.attributes.TYPE:this.type=o;break;case t.attributes.SELECTED:this.selected=d(o);break;case t.attributes.DISABLED:this.disabled=d(o);break;case t.attributes.INVALID:this.invalid=d(o);break;case t.attributes.VALUE:this.value=o;break;case t.attributes.DENSE:this.dense=d(o);break;case t.attributes.EMULATE_FOCUS:this.emulateFocus=d(o)}}focus(){this._foundation.setFocus()}tryFocusDelete(){this._foundation.tryFocusDelete()}};c([p()],a.prototype,"type",2),c([p()],a.prototype,"selected",2),c([p()],a.prototype,"disabled",2),c([p()],a.prototype,"invalid",2),c([p()],a.prototype,"value",2),c([p()],a.prototype,"dense",2),c([p()],a.prototype,"emulateFocus",2),a=c([L({name:t.elementName,dependencies:[B]})],a);export{N as a,t as b,g as c,u as d,a as e};
|
|
7
|
+
//# sourceMappingURL=chunk.LNLO36U6.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/chips/chip-set/chip-set-constants.ts", "../../src/chips/chip/chip-constants.ts", "../../src/chips/chip/chip-adapter.ts", "../../src/chips/chip/chip-foundation.ts", "../../src/chips/chip/chip.ts"],
|
|
4
|
+
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}chip-set`;\r\n\r\nconst attributes = {\r\n VERTICAL: 'vertical',\r\n TYPE: 'type',\r\n DENSE: 'dense',\r\n DISABLED: 'disabled'\r\n};\r\n\r\nconst classes = {\r\n ROOT: 'forge-chip-set',\r\n VERTICAL: 'forge-chip-set--vertical'\r\n};\r\n\r\nconst selectors = {\r\n ROOT: `.${classes.ROOT}`\r\n};\r\n\r\nexport const CHIP_SET_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n classes,\r\n selectors\r\n};\r\n", "import { COMPONENT_NAME_PREFIX } from '../../constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}chip`;\r\n\r\nconst attributes = {\r\n TYPE: 'type',\r\n SELECTED: 'selected',\r\n VALUE: 'value',\r\n DISABLED: 'disabled',\r\n INVALID: 'invalid',\r\n DENSE: 'dense',\r\n EMULATE_FOCUS: 'emulate-focus'\r\n};\r\n\r\nconst classes = {\r\n ACTION: 'forge-chip--action',\r\n CHOICE: 'forge-chip--choice',\r\n FILTER: 'forge-chip--filter',\r\n INPUT: 'forge-chip--input',\r\n FIELD: 'forge-chip--field',\r\n INVALID: 'forge-chip--invalid',\r\n SELECTED: 'forge-chip--selected',\r\n DELETE_BUTTON: 'forge-chip__delete-button',\r\n DELETE_BUTTON_TOUCH_TARGET: 'forge-chip__delete-button__touch-target',\r\n DENSE: 'forge-chip--dense',\r\n DISABLED: 'forge-chip--disabled',\r\n LEADING_HIDDEN: 'forge-chip__leading--hidden'\r\n};\r\n\r\nconst selectors = {\r\n ROOT: '.forge-chip',\r\n BUTTON: '[role=button]'\r\n};\r\n\r\nconst events = {\r\n DELETE: `${elementName}-delete`,\r\n SELECT: `${elementName}-select`,\r\n FOCUS_NEXT: `${elementName}-focus-next`,\r\n FOCUS_PREVIOUS: `${elementName}-focus-previous`\r\n};\r\n\r\nconst defaults = {\r\n TYPE: 'action'\r\n};\r\n\r\nexport const CHIP_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n classes,\r\n selectors,\r\n events,\r\n defaults\r\n};\r\n\r\nexport declare type ChipType = 'choice' | 'filter' | 'action' | 'input' | 'field';\r\n\r\nexport interface IChipSelectEventData<T = any> {\r\n value: T;\r\n selected: boolean;\r\n}\r\n\r\nexport interface IChipDeleteEventData<T = any> {\r\n value: T;\r\n}\r\n\r\nexport interface IChipState {\r\n type: ChipType;\r\n disabled: boolean;\r\n dense: boolean;\r\n}\r\n", "import { addClass, elementFromHTML, getActiveElement, getShadowElement, removeClass, removeElement, toggleClass, walkUpUntil } from '@tylertech/forge-core';\r\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\r\nimport { ICON_CONSTANTS } from '../../icon';\r\nimport { ForgeRipple, ForgeRippleAdapter, ForgeRippleCapableSurface, ForgeRippleFoundation } from '../../ripple';\r\nimport { IChipSetComponent } from '../chip-set/chip-set';\r\nimport { CHIP_SET_CONSTANTS } from '../chip-set/chip-set-constants';\r\nimport { IChipComponent } from './chip';\r\nconst checkmarkTemplate = '<div class=\\\"forge-chip__checkmark\\\" aria-hidden=\\\"true\\\"><svg class=\\\"forge-chip__checkmark-svg\\\" viewBox=\\\"-2 -3 30 30\\\"><path class=\\\"forge-chip__checkmark-path\\\" fill=\\\"none\\\" stroke=\\\"black\\\" d=\\\"M1.73,12.91 8.1,19.28 22.79,4.59\\\"/></svg></div>';\r\nimport { CHIP_CONSTANTS, IChipState } from './chip-constants';\r\n\r\nexport interface IChipAdapter extends IBaseAdapter {\r\n addRootListener(type: string, listener: (evt: Event) => void): void;\r\n removeRootListener(type: string, listener: (evt: Event) => void): void;\r\n addButtonListener(type: string, listener: (evt: Event) => void): void;\r\n removeButtonListener(type: string, listener: (evt: Event) => void): void;\r\n initializeRipple(): ForgeRipple;\r\n clearTypeClass(): void;\r\n addRootClass(className: string): void;\r\n removeRootClass(name: string): void;\r\n setCheckmarkVisibility(isVisible: boolean): void;\r\n setSelected(value: boolean): void;\r\n setDisabled(value: boolean): void;\r\n setDense(value: boolean): void;\r\n setDeleteButtonVisibility(isVisible: boolean, listener: (evt: KeyboardEvent) => void): void;\r\n setLeadingSlotVisibility(isVisible: boolean): void;\r\n getChipSetState(): IChipState | null;\r\n setFocus(): void;\r\n tryFocusDelete(): void;\r\n setEmulatedFocus(value: boolean): void;\r\n tryMoveFocusPrevious(): void;\r\n tryMoveFocusNext(): void;\r\n}\r\n\r\n\r\nexport class ChipAdapter extends BaseAdapter<IChipComponent> implements IChipAdapter, ForgeRippleCapableSurface {\r\n private _rootElement: HTMLElement;\r\n private _rippleInstance: ForgeRipple;\r\n private _buttonElement: HTMLButtonElement;\r\n private _deleteButton: HTMLElement;\r\n private _deleteButtonTouchTarget: HTMLDivElement;\r\n private _leadingSlotElement: HTMLSlotElement;\r\n private _checkmarkElement: HTMLElement;\r\n\r\n constructor(component: IChipComponent) {\r\n super(component);\r\n this._rootElement = getShadowElement(this._component, CHIP_CONSTANTS.selectors.ROOT);\r\n this._buttonElement = getShadowElement(this._component, CHIP_CONSTANTS.selectors.BUTTON) as HTMLButtonElement;\r\n this._leadingSlotElement = getShadowElement(this._component, 'slot[name=leading]') as HTMLSlotElement;\r\n this._rootElement.addEventListener('click', evt => {\r\n if (evt.target === this._deleteButton) {\r\n return;\r\n }\r\n this._buttonElement.focus();\r\n }, { capture: true });\r\n }\r\n\r\n // ForgeRippleCapableSurface\r\n public get root(): Element {\r\n return this._rootElement;\r\n }\r\n public get unbounded(): boolean | undefined {\r\n return false;\r\n }\r\n public get disabled(): boolean | undefined {\r\n return this._buttonElement?.disabled;\r\n }\r\n\r\n public addRootListener(type: string, listener: (evt: Event) => void): void {\r\n this._rootElement.addEventListener(type, listener);\r\n }\r\n\r\n public removeRootListener(type: string, listener: (evt: Event) => void): void {\r\n this._rootElement.removeEventListener(type, listener);\r\n }\r\n\r\n public addButtonListener(type: string, listener: (evt: Event) => void): void {\r\n this._buttonElement.addEventListener(type, listener);\r\n }\r\n\r\n public removeButtonListener(type: string, listener: (evt: Event) => void): void {\r\n this._buttonElement.removeEventListener(type, listener);\r\n }\r\n\r\n public initializeRipple(): ForgeRipple {\r\n const adapter: ForgeRippleAdapter = {\r\n ...ForgeRipple.createAdapter(this),\r\n registerInteractionHandler: (evtType, handler) => {\r\n if (['focus', 'blur', 'keydown'].includes(evtType)) {\r\n this._buttonElement.addEventListener(evtType, handler, { passive: true });\r\n } else {\r\n this._rootElement.addEventListener(evtType, handler, { passive: true });\r\n }\r\n },\r\n deregisterInteractionHandler: (evtType, handler) => {\r\n if (['focus', 'blur', 'keydown'].includes(evtType)) {\r\n this._buttonElement.removeEventListener(evtType, handler, { passive: true } as AddEventListenerOptions);\r\n } else {\r\n this._rootElement.removeEventListener(evtType, handler, { passive: true } as AddEventListenerOptions);\r\n }\r\n },\r\n isSurfaceActive: () => this._buttonElement.matches(':active'),\r\n isUnbounded: () => Boolean(this.unbounded),\r\n isSurfaceDisabled: () => this._buttonElement.disabled,\r\n addClass: className => addClass(className, this._rootElement),\r\n removeClass: className => removeClass(className, this._rootElement),\r\n updateCssVariable: (varName, value) => this._rootElement.style.setProperty(varName, value)\r\n };\r\n this._rippleInstance = new ForgeRipple(this._rootElement, new ForgeRippleFoundation(adapter));\r\n return this._rippleInstance;\r\n }\r\n\r\n public clearTypeClass(): void {\r\n removeClass([CHIP_CONSTANTS.classes.ACTION, CHIP_CONSTANTS.classes.CHOICE, CHIP_CONSTANTS.classes.FILTER, CHIP_CONSTANTS.classes.INPUT], this._buttonElement);\r\n }\r\n\r\n public addRootClass(className: string): void {\r\n this._rootElement.classList.add(className);\r\n }\r\n\r\n public removeRootClass(name: string): void {\r\n this._rootElement.classList.remove(name);\r\n }\r\n\r\n public setCheckmarkVisibility(isVisible: boolean): void {\r\n if (isVisible) {\r\n if (!this._checkmarkElement) {\r\n this._checkmarkElement = elementFromHTML(checkmarkTemplate) as HTMLElement;\r\n }\r\n this._rootElement.insertBefore(this._checkmarkElement, this._rootElement.firstChild);\r\n } else if (this._checkmarkElement && this._checkmarkElement.isConnected) {\r\n removeElement(this._checkmarkElement);\r\n }\r\n }\r\n\r\n public setSelected(value: boolean): void {\r\n toggleClass(this._rootElement, value, CHIP_CONSTANTS.classes.SELECTED);\r\n }\r\n\r\n public setDisabled(value: boolean): void {\r\n this._buttonElement.disabled = value;\r\n this._buttonElement.tabIndex = value ? -1 : 0;\r\n toggleClass(this._rootElement, value, CHIP_CONSTANTS.classes.DISABLED);\r\n }\r\n\r\n public setDense(value: boolean): void {\r\n toggleClass(this._rootElement, value, CHIP_CONSTANTS.classes.DENSE);\r\n }\r\n\r\n public setDeleteButtonVisibility(isVisible: boolean, listener: (evt: KeyboardEvent) => void): void {\r\n if (isVisible) {\r\n if (!this._deleteButton) {\r\n this._deleteButton = this._createDeleteButton(listener);\r\n }\r\n if (!this._deleteButtonTouchTarget) {\r\n this._deleteButtonTouchTarget = this._createDeleteButtonTouchTarget(listener);\r\n }\r\n this._deleteButton.appendChild(this._deleteButtonTouchTarget);\r\n this._rootElement.appendChild(this._deleteButton);\r\n } else {\r\n if (this._deleteButtonTouchTarget) {\r\n removeElement(this._deleteButtonTouchTarget);\r\n }\r\n if (this._deleteButton) {\r\n removeElement(this._deleteButton);\r\n }\r\n }\r\n }\r\n\r\n public setLeadingSlotVisibility(isVisible: boolean): void {\r\n toggleClass(this._leadingSlotElement, !isVisible, CHIP_CONSTANTS.classes.LEADING_HIDDEN);\r\n }\r\n\r\n public getChipSetState(): IChipState | null {\r\n let state: IChipState | null = null;\r\n const chipSet = walkUpUntil(this._component, node => node && node.nodeName === CHIP_SET_CONSTANTS.elementName.toUpperCase()) as IChipSetComponent;\r\n if (chipSet) {\r\n state = {\r\n type: chipSet.type,\r\n disabled: chipSet.disabled,\r\n dense: chipSet.dense\r\n };\r\n }\r\n return state;\r\n }\r\n\r\n private _createDeleteButton(listener: (evt: KeyboardEvent) => void): HTMLElement {\r\n const el = document.createElement(ICON_CONSTANTS.elementName);\r\n el.id = 'remove-button';\r\n el.name = 'cancel';\r\n el.tabIndex = -1;\r\n el.setAttribute('aria-hidden', 'false');\r\n el.setAttribute('aria-label', `Remove ${this._component.innerText}`);\r\n el.setAttribute('role', 'button');\r\n el.classList.add(CHIP_CONSTANTS.classes.DELETE_BUTTON);\r\n el.addEventListener('keydown', listener);\r\n return el;\r\n }\r\n\r\n private _createDeleteButtonTouchTarget(listener: (evt: KeyboardEvent) => void): HTMLDivElement {\r\n const el = document.createElement('div');\r\n el.classList.add(CHIP_CONSTANTS.classes.DELETE_BUTTON_TOUCH_TARGET);\r\n el.addEventListener('keydown', listener);\r\n el.addEventListener('click', listener);\r\n return el;\r\n }\r\n\r\n public setFocus(): void {\r\n this._buttonElement.focus();\r\n }\r\n\r\n public tryFocusDelete(): void {\r\n if (this._deleteButton) {\r\n this._deleteButton.focus();\r\n } else {\r\n this.setFocus();\r\n }\r\n }\r\n\r\n public setEmulatedFocus(value: boolean): void {\r\n this._buttonElement.classList.toggle('mdc-ripple-upgraded--background-focused', value);\r\n }\r\n\r\n public tryMoveFocusNext(): void {\r\n const activeElement = getActiveElement(this._component.ownerDocument);\r\n if (activeElement === this._buttonElement) {\r\n if (this._deleteButton) {\r\n this._deleteButton.focus();\r\n } else {\r\n this.emitHostEvent(CHIP_CONSTANTS.events.FOCUS_NEXT);\r\n }\r\n } else if (activeElement === this._deleteButton) {\r\n this.emitHostEvent(CHIP_CONSTANTS.events.FOCUS_NEXT);\r\n }\r\n }\r\n\r\n public tryMoveFocusPrevious(): void {\r\n const activeElement = getActiveElement(this._component.ownerDocument);\r\n if (activeElement === this._deleteButton) {\r\n this._buttonElement.focus();\r\n } else if (activeElement === this._buttonElement) {\r\n this.emitHostEvent(CHIP_CONSTANTS.events.FOCUS_PREVIOUS);\r\n }\r\n }\r\n}\r\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\r\nimport { ForgeRipple } from '../../ripple';\r\nimport { IChipAdapter } from './chip-adapter';\r\nimport { ChipType, CHIP_CONSTANTS, IChipDeleteEventData, IChipSelectEventData } from './chip-constants';\r\n\r\nexport interface IChipFoundation extends ICustomElementFoundation {\r\n type: ChipType;\r\n selected: boolean;\r\n disabled: boolean;\r\n invalid: boolean;\r\n value: any;\r\n dense: boolean;\r\n emulateFocus: boolean;\r\n setFocus(): void;\r\n tryFocusDelete(): void;\r\n}\r\n\r\nexport class ChipFoundation implements IChipFoundation {\r\n private _type: ChipType = CHIP_CONSTANTS.defaults.TYPE as ChipType;\r\n private _selected = false;\r\n private _disabled = false;\r\n private _invalid = false;\r\n private _value: any = null;\r\n private _dense = false;\r\n private _emulateFocus = false;\r\n private _isInitialized = false;\r\n private _rippleInstance: ForgeRipple | undefined;\r\n private _clickListener: (evt: MouseEvent) => void;\r\n private _keydownListener: (evt: KeyboardEvent) => void;\r\n private _deleteKeydownListener: (evt: KeyboardEvent) => void;\r\n private _buttonFocusListener: (evt: FocusEvent) => void;\r\n private _buttonBlurListener: (evt: FocusEvent) => void;\r\n\r\n constructor(private _adapter: IChipAdapter) {\r\n this._clickListener = evt => this._onClick(evt);\r\n this._keydownListener = evt => this._onKeydown(evt);\r\n this._deleteKeydownListener = evt => this._onDeleteKeydown(evt);\r\n this._buttonFocusListener = evt => this._onButtonFocus(evt);\r\n this._buttonBlurListener = evt => this._onButtonBlur(evt);\r\n }\r\n\r\n public initialize(): void {\r\n this._rippleInstance = this._adapter.initializeRipple();\r\n this._adapter.addRootListener('click', this._clickListener);\r\n this._adapter.addRootListener('keydown', this._keydownListener);\r\n this._adapter.addButtonListener('focus', this._buttonFocusListener);\r\n this._adapter.addButtonListener('blur', this._buttonBlurListener);\r\n this._applyState();\r\n this._isInitialized = true;\r\n }\r\n\r\n public disconnect(): void {\r\n this._destroyRipple();\r\n this._adapter.removeRootListener('click', this._clickListener);\r\n this._adapter.removeRootListener('keydown', this._keydownListener);\r\n this._adapter.removeButtonListener('focus', this._buttonFocusListener);\r\n this._adapter.removeButtonListener('blur', this._buttonBlurListener);\r\n this._isInitialized = false;\r\n }\r\n\r\n private _destroyRipple(): void {\r\n if (this._rippleInstance) {\r\n this._rippleInstance.destroy();\r\n this._rippleInstance = undefined;\r\n }\r\n }\r\n\r\n private _applyState(): void {\r\n // Attempt to inherit state from the parent chip-set component\r\n // Note: this should only inherit properties that need to be the same across the chips within a set\r\n const chipSetState = this._adapter.getChipSetState();\r\n if (chipSetState) {\r\n this._type = chipSetState.type;\r\n this._disabled = chipSetState.disabled;\r\n this._dense = chipSetState.dense;\r\n }\r\n\r\n // Ensure that only non-action chips can be selected\r\n if (this._type === 'action') {\r\n this._selected = false;\r\n }\r\n\r\n this._applyDisabled();\r\n this._applyType();\r\n this._applySelected();\r\n this._applyDense();\r\n this._applyEmulateFocus();\r\n }\r\n\r\n private _onClick(evt: MouseEvent): void {\r\n const target = evt.target as HTMLElement;\r\n const isDeleteButton = target.classList.contains(CHIP_CONSTANTS.classes.DELETE_BUTTON) ||\r\n target.classList.contains(CHIP_CONSTANTS.classes.DELETE_BUTTON_TOUCH_TARGET);\r\n if (isDeleteButton) {\r\n this._handleDeleteInteraction(evt);\r\n } else {\r\n this._handleSelectInteraction();\r\n }\r\n }\r\n\r\n private _onKeydown(evt: KeyboardEvent): void {\r\n switch (evt.key) {\r\n case 'Delete':\r\n case 'Backspace':\r\n if (this._type === 'input') {\r\n evt.preventDefault();\r\n this._emitDeleteEvent();\r\n }\r\n break;\r\n case 'Enter':\r\n case ' ':\r\n evt.preventDefault();\r\n this._rippleInstance?.animate();\r\n this._handleSelectInteraction();\r\n break;\r\n case 'ArrowLeft':\r\n evt.preventDefault();\r\n this._adapter.tryMoveFocusPrevious();\r\n break;\r\n case 'ArrowRight':\r\n evt.preventDefault();\r\n this._adapter.tryMoveFocusNext();\r\n break;\r\n }\r\n }\r\n\r\n private _onDeleteKeydown(evt: KeyboardEvent): void {\r\n if (evt.key === 'Enter') {\r\n this._handleDeleteInteraction(evt);\r\n }\r\n }\r\n\r\n private _onButtonFocus(evt: FocusEvent): void {\r\n this._adapter.setHostAttribute('focused');\r\n }\r\n\r\n private _onButtonBlur(evt: FocusEvent): void {\r\n this._adapter.removeHostAttribute('focused');\r\n }\r\n\r\n private _handleDeleteInteraction(evt: Event): void {\r\n // The delete event can only be fired when the `input` or `field` type is used\r\n const target = evt.target as HTMLElement;\r\n const isDeleteButton = target.classList.contains(CHIP_CONSTANTS.classes.DELETE_BUTTON) ||\r\n target.classList.contains(CHIP_CONSTANTS.classes.DELETE_BUTTON_TOUCH_TARGET);\r\n if (isDeleteButton) {\r\n evt.stopPropagation();\r\n this._emitDeleteEvent();\r\n }\r\n }\r\n\r\n private _handleSelectInteraction(): void {\r\n const wasDefaultPrevented = this._emitSelectEvent();\r\n const isSelectableType = ['filter', 'choice', 'input'].includes(this._type);\r\n\r\n // We only toggle the selected state for certain types (and if default wasn't prevented on the event)\r\n if (!wasDefaultPrevented && isSelectableType) {\r\n this._selected = !this._selected;\r\n this._applySelected();\r\n }\r\n }\r\n\r\n private _emitSelectEvent(): boolean {\r\n const selectEventData: IChipSelectEventData = {\r\n selected: !this._selected,\r\n value: this._value\r\n };\r\n return !this._adapter.emitHostEvent(CHIP_CONSTANTS.events.SELECT, selectEventData, true, true);\r\n }\r\n\r\n private _emitDeleteEvent(): void {\r\n const deleteEventData: IChipDeleteEventData = { value: this._value };\r\n this._adapter.emitHostEvent(CHIP_CONSTANTS.events.DELETE, deleteEventData, true, true);\r\n }\r\n\r\n private _applyType(): void {\r\n this._adapter.clearTypeClass();\r\n\r\n switch (this._type) {\r\n case 'action':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.ACTION);\r\n break;\r\n case 'choice':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.CHOICE);\r\n break;\r\n case 'filter':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.FILTER);\r\n break;\r\n case 'input':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.INPUT);\r\n break;\r\n case 'field':\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.FIELD);\r\n break;\r\n }\r\n\r\n this._adapter.setCheckmarkVisibility(this._type === 'filter');\r\n const showDeleteButton = this._type === 'input' || this._type === 'field';\r\n this._adapter.setDeleteButtonVisibility(showDeleteButton, this._deleteKeydownListener);\r\n this._adapter.setLeadingSlotVisibility(!this._selected);\r\n this._adapter.setHostAttribute(CHIP_CONSTANTS.attributes.TYPE, this._type);\r\n }\r\n\r\n private _applySelected(): void {\r\n this._adapter.setSelected(this._selected);\r\n\r\n // If using the filter type, we need to hide the leading slot to ensure that\r\n // the checkmark shows in place of any leading elements\r\n if (this._type === 'filter') {\r\n this._adapter.setLeadingSlotVisibility(!this._selected);\r\n }\r\n\r\n this._adapter.toggleHostAttribute(CHIP_CONSTANTS.attributes.SELECTED, this._selected);\r\n }\r\n\r\n private _applyDisabled(): void {\r\n this._adapter.setDisabled(this._disabled);\r\n this._adapter.toggleHostAttribute(CHIP_CONSTANTS.attributes.DISABLED, this._disabled);\r\n }\r\n\r\n private _applyDense(): void {\r\n this._adapter.setDense(this._dense);\r\n this._adapter.toggleHostAttribute(CHIP_CONSTANTS.attributes.DISABLED, this._disabled);\r\n }\r\n\r\n private _applyEmulateFocus(): void {\r\n this._adapter.toggleHostAttribute(CHIP_CONSTANTS.attributes.EMULATE_FOCUS, this._emulateFocus);\r\n this._adapter.setEmulatedFocus(this._emulateFocus);\r\n }\r\n\r\n public get type(): ChipType {\r\n return this._type;\r\n }\r\n public set type(value: ChipType) {\r\n if (this._type !== value) {\r\n this._type = value;\r\n if (this._isInitialized) {\r\n const isValidType = ['action', 'choice', 'filter', 'input', 'field'].includes(this._type);\r\n if (!isValidType) {\r\n this._type = 'action';\r\n }\r\n if (this._type === 'action') {\r\n this._selected = false;\r\n this._applySelected();\r\n }\r\n this._applyType();\r\n }\r\n }\r\n }\r\n\r\n public get selected(): boolean {\r\n return this._selected;\r\n }\r\n public set selected(value: boolean) {\r\n if (this._selected !== value) {\r\n this._selected = value;\r\n if (this._isInitialized) {\r\n if (this._type === 'action') {\r\n this._selected = false;\r\n }\r\n this._applySelected();\r\n }\r\n }\r\n }\r\n\r\n public get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n public set disabled(value: boolean) {\r\n if (this._disabled !== value) {\r\n this._disabled = value;\r\n if (this._isInitialized) {\r\n this._applyDisabled();\r\n }\r\n }\r\n }\r\n\r\n public get invalid(): boolean {\r\n return this._invalid;\r\n }\r\n public set invalid(val: boolean) {\r\n if (this._invalid === val) {\r\n return;\r\n }\r\n \r\n this._invalid = val;\r\n if (val) {\r\n this._adapter.setHostAttribute(CHIP_CONSTANTS.attributes.INVALID, '');\r\n this._adapter.addRootClass(CHIP_CONSTANTS.classes.INVALID);\r\n } else {\r\n this._adapter.removeHostAttribute(CHIP_CONSTANTS.attributes.INVALID);\r\n this._adapter.removeRootClass(CHIP_CONSTANTS.classes.INVALID);\r\n }\r\n }\r\n\r\n public get value(): any {\r\n return this._value;\r\n }\r\n public set value(value: any) {\r\n this._value = value;\r\n }\r\n\r\n public get dense(): boolean {\r\n return this._dense;\r\n }\r\n public set dense(value: boolean) {\r\n if (this._dense !== value) {\r\n this._dense = value;\r\n if (this._isInitialized) {\r\n this._applyDense();\r\n }\r\n }\r\n }\r\n\r\n public get emulateFocus(): boolean {\r\n return this._emulateFocus;\r\n }\r\n public set emulateFocus(value: boolean) {\r\n if (this._emulateFocus !== value) {\r\n this._emulateFocus = value;\r\n if (this._isInitialized) {\r\n this._applyEmulateFocus();\r\n }\r\n }\r\n }\r\n\r\n public setFocus(): void {\r\n this._adapter.setFocus();\r\n }\r\n\r\n public tryFocusDelete(): void {\r\n if (this._type === 'input') {\r\n this._adapter.tryFocusDelete();\r\n return;\r\n }\r\n this.setFocus();\r\n }\r\n}\r\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\r\nimport { tylIconCancel } from '@tylertech/tyler-icons/standard';\r\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\r\nimport { IconComponent, IconRegistry } from '../../icon';\r\nimport { ChipAdapter } from './chip-adapter';\r\nimport { ChipType, CHIP_CONSTANTS, IChipDeleteEventData, IChipSelectEventData } from './chip-constants';\r\nimport { ChipFoundation } from './chip-foundation';\r\n\r\nconst template = '<template><div class=\\\"forge-chip\\\" part=\\\"root button\\\"><slot name=\\\"leading\\\" class=\\\"forge-chip__leading\\\"></slot><div role=\\\"button\\\" tabindex=\\\"0\\\" class=\\\"forge-chip__content\\\" part=\\\"content\\\"><slot></slot></div><slot name=\\\"trailing\\\"></slot></div></template>';\r\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-chip{--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;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-button-font-size, .875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight,500);letter-spacing:.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, .0892857143em);text-decoration:none;-webkit-text-decoration:var(--mdc-typography-button-text-decoration,none);text-decoration:var(--mdc-typography-button-text-decoration,none);text-transform:uppercase;text-transform:var(--mdc-typography-button-text-transform,uppercase);position:relative;display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:64px;border:none;outline:0;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:0 0;border-radius:4px;border-radius:var(--mdc-shape-small,4px);height:36px;text-transform:none;box-sizing:border-box;overflow:hidden;border-style:solid;-webkit-transition:border 280ms cubic-bezier(.4, 0, .2, 1);transition:border 280ms cubic-bezier(.4, 0, .2, 1);font-family:Roboto,sans-serif;font-family:var(--mdc-outlined-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:.875rem;font-size:var(--mdc-outlined-button-label-text-size, var(--mdc-typography-button-font-size, .875rem));letter-spacing:.0892857143em;letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, .0892857143em));font-weight:500;font-weight:var(--mdc-outlined-button-label-text-weight,var(--mdc-typography-button-font-weight,500));text-transform:uppercase;text-transform:var(--mdc-outlined-button-label-text-transform,var(--mdc-typography-button-text-transform,uppercase));height:36px;height:var(--mdc-outlined-button-container-height,36px);border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px));padding:0 15px 0 15px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px);padding:0 15px 0 15px;border-width:1px;border-radius:16px;width:auto;width:var(--forge-chip-width,auto);height:auto;height:var(--forge-chip-height,auto);min-height:36px;min-height:var(--forge-chip-min-height,36px);box-sizing:border-box;-webkit-transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1);transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1)}.forge-chip::after,.forge-chip::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-chip::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-chip::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-chip.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-chip.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-chip.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-chip.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-chip.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-chip::after,.forge-chip::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-chip.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-chip::after,.forge-chip::before{background-color:#6200ee;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#6200ee))}.forge-chip.mdc-ripple-surface--hover::before,.forge-chip:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-chip.mdc-ripple-upgraded--background-focused::before,.forge-chip:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-chip:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-chip.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.forge-chip::-moz-focus-inner{padding:0;border:0}.forge-chip:active{outline:0}.forge-chip:hover{cursor:pointer}.forge-chip:disabled{cursor:default;pointer-events:none}.forge-chip .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-chip:not(:disabled){background-color:transparent}.forge-chip:not(:disabled){color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.forge-chip .mdc-button__ripple{border-style:solid;border-color:transparent}.forge-chip:not(:disabled){color:#6200ee;color:var(--mdc-outlined-button-label-text-color,var(--mdc-theme-primary,#6200ee))}.forge-chip:disabled{color:rgba(0,0,0,.38);color:var(--mdc-outlined-button-disabled-label-text-color,rgba(0,0,0,.38))}.forge-chip .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-outlined-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-outlined-button-with-icon-icon-size,1.125rem);height:1.125rem;height:var(--mdc-outlined-button-with-icon-icon-size,1.125rem)}.forge-chip .mdc-button__ripple::after,.forge-chip .mdc-button__ripple::before{background-color:#6200ee;background-color:var(--mdc-outlined-button-hover-state-layer-color,var(--mdc-theme-primary,#6200ee))}.forge-chip.mdc-ripple-surface--hover .mdc-button__ripple::before,.forge-chip:hover .mdc-button__ripple::before{opacity:.04;opacity:var(--mdc-outlined-button-hover-state-layer-opacity, .04)}.forge-chip.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.forge-chip:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-focus-state-layer-opacity, .12)}.forge-chip:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, .12)}.forge-chip.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, 0.12)}.forge-chip .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px))}.forge-chip:not(:disabled){border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-outline-color,rgba(0,0,0,.12))}.forge-chip:disabled{border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-disabled-outline-color,rgba(0,0,0,.12))}.forge-chip.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-chip.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-chip .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px)}.forge-chip .mdc-button__touch{left:calc(-1 * 1px);left:calc(-1 * var(--mdc-outlined-button-outline-width,1px));width:calc(100% + 2 * 1px);width:calc(100% + 2 * var(--mdc-outlined-button-outline-width,1px))}.forge-chip.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-chip.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-chip .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px}.forge-chip .mdc-button__touch{left:calc(-1 * 1px);width:calc(100% + 2 * 1px)}.forge-chip:not(:disabled){border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee)}.forge-chip .mdc-evolution-chip__ripple{border-radius:16px}.forge-chip .mdc-evolution-chip__action--primary:before{border-radius:16px}.forge-chip .mdc-evolution-chip__icon--primary{border-radius:16px}.forge-chip.forge-chip--disabled{border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:default;pointer-events:none}.forge-chip.forge-chip--disabled .forge-chip__delete-button{opacity:.54}.forge-chip__leading--hidden{display:none}.forge-chip__content{-webkit-box-flex:1;flex-grow:1;text-align:center}.forge-chip__content:focus{outline:0}.forge-chip ::slotted([slot=leading]){margin-left:-6px;margin-right:4px}.forge-chip ::slotted(forge-avatar[slot]){--forge-avatar-size:24px}.forge-chip ::slotted([slot=trailing]){margin-left:4px;margin-right:-8px}.forge-chip__checkmark{height:24px}.forge-chip__checkmark-svg{width:0;height:24px;-webkit-transition:width 150ms cubic-bezier(.4, 0, .2, 1);transition:width 150ms cubic-bezier(.4, 0, .2, 1)}.forge-chip__checkmark-path{stroke:#fff;stroke:var(--mdc-theme-on-primary,#fff);-webkit-transition:stroke-dashoffset 150ms 0 cubic-bezier(.4, 0, .6, 1);transition:stroke-dashoffset 150ms 0 cubic-bezier(.4, 0, .6, 1);stroke-width:2px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.forge-chip__delete-button{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:4px;margin-right:-8px;-webkit-transition:color 150ms linear;transition:color 150ms linear;outline:0;line-height:inherit;position:relative;border-radius:50%}.forge-chip__delete-button:focus{outline:currentColor solid 2px}.forge-chip__delete-button:focus,.forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip__delete-button:active{opacity:.75}.forge-chip__delete-button__touch-target{position:absolute;top:-6px;left:-6px;width:calc(100% + 12px);height:calc(100% + 12px)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled),.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled),.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled){background-color:#6200ee;background-color:var(--mdc-theme-primary,#6200ee);color:#fff;color:var(--mdc-theme-text-primary-on-dark,#fff)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled)::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled)::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled)::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled)::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):hover::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):hover::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-chip--choice.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded,.forge-chip--filter.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded,.forge-chip--input.forge-chip--selected:not(.forge-chip--disabled).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled,.forge-chip--filter.forge-chip--selected.forge-chip--disabled,.forge-chip--input.forge-chip--selected.forge-chip--disabled{background-color:#6200ee;background-color:var(--mdc-theme-primary,#6200ee);color:#fff;color:var(--mdc-theme-text-primary-on-dark,#fff);opacity:.37}.forge-chip--choice.forge-chip--selected.forge-chip--disabled::after,.forge-chip--choice.forge-chip--selected.forge-chip--disabled::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--choice.forge-chip--selected.forge-chip--disabled:hover::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:hover::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-surface--hover::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled:hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded--background-focused::before,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--choice.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after,.forge-chip--filter.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after,.forge-chip--input.forge-chip--selected.forge-chip--disabled:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-chip--choice.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded,.forge-chip--filter.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded,.forge-chip--input.forge-chip--selected.forge-chip--disabled.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-chip--choice.forge-chip--selected ::slotted([slot=leading]),.forge-chip--filter.forge-chip--selected ::slotted([slot=leading]),.forge-chip--input.forge-chip--selected ::slotted([slot=leading]){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected ::slotted([slot=trailing]),.forge-chip--filter.forge-chip--selected ::slotted([slot=trailing]),.forge-chip--input.forge-chip--selected ::slotted([slot=trailing]){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected .forge-chip__delete-button,.forge-chip--filter.forge-chip--selected .forge-chip__delete-button,.forge-chip--input.forge-chip--selected .forge-chip__delete-button{color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark{margin-left:-6px;margin-right:4px}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-svg{width:24px}.forge-chip--choice.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path,.forge-chip--filter.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path,.forge-chip--input.forge-chip--selected.forge-chip--filter .forge-chip__checkmark-path{-webkit-transition:stroke-dashoffset 150ms 50ms cubic-bezier(.4, 0, .6, 1);transition:stroke-dashoffset 150ms 50ms cubic-bezier(.4, 0, .6, 1);stroke-dashoffset:0}.forge-chip--field .forge-chip__delete-button{color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.forge-chip--field .forge-chip__delete-button:focus,.forge-chip--field .forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button:focus,.forge-chip--field.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button:hover{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-chip--field.forge-chip--disabled .forge-chip__delete-button{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-chip--dense{min-height:28px;min-height:var(--forge-chip-min-height,28px)}.forge-chip--dense.forge-chip--field{min-height:20px;min-height:var(--forge-chip-min-height,20px);padding:0;margin:0;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.forge-chip--dense.forge-chip--field ::slotted([slot=leading]){margin:0 0 0 2px;font-size:18px!important}.forge-chip--dense.forge-chip--field .forge-chip__content{font-size:12px;padding:0 8px}.forge-chip--dense.forge-chip--field ::slotted([slot=trailing]){font-size:18px!important}.forge-chip--dense.forge-chip--field .forge-chip__delete-button{margin:0 2px 0 0;font-size:18px}.forge-chip--invalid:not(.forge-chip--disabled){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled)::after,.forge-chip--invalid:not(.forge-chip--disabled)::before{background-color:#b00020;background-color:var(--mdc-ripple-color,var(--mdc-theme-error,#b00020))}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-surface--hover::before,.forge-chip--invalid:not(.forge-chip--disabled):hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-upgraded--background-focused::before,.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-chip--invalid:not(.forge-chip--disabled):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-chip--invalid:not(.forge-chip--disabled).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-chip--invalid:not(.forge-chip--disabled):not(:disabled){border-color:#b00020;border-color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled) .forge-chip__delete-button{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled).forge-chip--selected{background-color:#b00020;background-color:var(--mdc-theme-error,#b00020)}.forge-chip--invalid:not(.forge-chip--disabled).forge-chip--selected .forge-chip__delete-button{color:#fff;color:var(--mdc-theme-on-primary,#fff)}:host{display:inline-block}:host([hidden]){display:none}:host([theme=error]){--mdc-theme-primary:var(--mdc-theme-error)}';\r\n\r\nexport interface IChipComponent extends IBaseComponent {\r\n type: ChipType;\r\n selected: boolean;\r\n disabled: boolean;\r\n invalid: boolean;\r\n value: any;\r\n dense: boolean;\r\n emulateFocus: boolean;\r\n tryFocusDelete(): void;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'forge-chip': IChipComponent;\r\n }\r\n\r\n interface HTMLElementEventMap {\r\n 'forge-chip-delete': CustomEvent<IChipDeleteEventData>;\r\n 'forge-chip-select': CustomEvent<IChipSelectEventData>;\r\n }\r\n}\r\n\r\n/**\r\n * The custom element class behind the `<forge-chip>` component.\r\n * \r\n * @tag forge-chip\r\n */\r\n@CustomElement({\r\n name: CHIP_CONSTANTS.elementName,\r\n dependencies: [IconComponent]\r\n})\r\nexport class ChipComponent extends BaseComponent implements IChipComponent {\r\n public static get observedAttributes(): string[] {\r\n return [\r\n CHIP_CONSTANTS.attributes.TYPE,\r\n CHIP_CONSTANTS.attributes.SELECTED,\r\n CHIP_CONSTANTS.attributes.DISABLED,\r\n CHIP_CONSTANTS.attributes.VALUE,\r\n CHIP_CONSTANTS.attributes.DENSE,\r\n CHIP_CONSTANTS.attributes.INVALID,\r\n CHIP_CONSTANTS.attributes.EMULATE_FOCUS\r\n ];\r\n }\r\n\r\n private _foundation: ChipFoundation;\r\n\r\n constructor() {\r\n super();\r\n IconRegistry.define(tylIconCancel);\r\n attachShadowTemplate(this, template, styles);\r\n this._foundation = new ChipFoundation(new ChipAdapter(this));\r\n }\r\n\r\n public connectedCallback(): void {\r\n this._foundation.initialize();\r\n }\r\n\r\n public disconnectedCallback(): void {\r\n this._foundation.disconnect();\r\n }\r\n\r\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\r\n switch (name) {\r\n case CHIP_CONSTANTS.attributes.TYPE:\r\n this.type = newValue as ChipType;\r\n break;\r\n case CHIP_CONSTANTS.attributes.SELECTED:\r\n this.selected = coerceBoolean(newValue);\r\n break;\r\n case CHIP_CONSTANTS.attributes.DISABLED:\r\n this.disabled = coerceBoolean(newValue);\r\n break;\r\n case CHIP_CONSTANTS.attributes.INVALID:\r\n this.invalid = coerceBoolean(newValue);\r\n break;\r\n case CHIP_CONSTANTS.attributes.VALUE:\r\n this.value = newValue;\r\n break;\r\n case CHIP_CONSTANTS.attributes.DENSE:\r\n this.dense = coerceBoolean(newValue);\r\n break;\r\n case CHIP_CONSTANTS.attributes.EMULATE_FOCUS:\r\n this.emulateFocus = coerceBoolean(newValue);\r\n }\r\n }\r\n\r\n /** Gets/sets the chip type. */\r\n @FoundationProperty()\r\n public declare type: ChipType;\r\n\r\n /** Gets/sets the selected state of the chip. */\r\n @FoundationProperty()\r\n public declare selected: boolean;\r\n\r\n /** Gets/sets the disabled state of the chip. */\r\n @FoundationProperty()\r\n public declare disabled: boolean;\r\n\r\n /** Gets/sets the invalid state of the chip. */\r\n @FoundationProperty()\r\n public declare invalid: boolean;\r\n\r\n /** Gets/sets the chip value. */\r\n @FoundationProperty()\r\n public declare value: any;\r\n\r\n /** Gets/sets the dense state of the chip. */\r\n @FoundationProperty()\r\n public declare dense: boolean;\r\n\r\n @FoundationProperty()\r\n public declare emulateFocus: boolean;\r\n\r\n public override focus(): void {\r\n this._foundation.setFocus();\r\n }\r\n\r\n public tryFocusDelete(): void {\r\n this._foundation.tryFocusDelete();\r\n }\r\n}\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "CHIP_SET_CONSTANTS", "elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "events", "defaults", "CHIP_CONSTANTS", "checkmarkTemplate", "ChipAdapter", "BaseAdapter", "component", "getShadowElement", "CHIP_CONSTANTS", "evt", "_a", "type", "listener", "adapter", "__spreadProps", "__spreadValues", "ForgeRipple", "evtType", "handler", "className", "addClass", "removeClass", "varName", "value", "ForgeRippleFoundation", "name", "isVisible", "elementFromHTML", "removeElement", "toggleClass", "state", "chipSet", "walkUpUntil", "node", "CHIP_SET_CONSTANTS", "el", "ICON_CONSTANTS", "activeElement", "getActiveElement", "ChipFoundation", "_adapter", "CHIP_CONSTANTS", "evt", "chipSetState", "target", "_a", "wasDefaultPrevented", "isSelectableType", "selectEventData", "deleteEventData", "showDeleteButton", "value", "val", "template", "styles", "ChipComponent", "BaseComponent", "IconRegistry", "tylIconCancel", "attachShadowTemplate", "ChipFoundation", "ChipAdapter", "CHIP_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "IconComponent"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{a as L,b as i,c as g,f as v}from"./chunk.D5ZHKPCL.js";import{a as f}from"./chunk.YOXZOPAC.js";import{a as r}from"./chunk.NVUMRW44.js";import{a as _}from"./chunk.HGH6SSHZ.js";import{a as h,e as m,k as I}from"./chunk.I5SFCLDD.js";import{k as l,n as b}from"./chunk.J2M2MXP2.js";import{d as a}from"./chunk.M3QDAYD2.js";var d=class extends f{constructor(t){super(t)}initialize(){this._component.hasAttribute("role")||this._component.setAttribute("role","list")}focusNextListItem(){let t=this._getFocusableListItems();if(t.length){let e=t.findIndex(s=>s.matches(":focus"));console.log("focusedListItemIndex",e);let n=e<t.length-1?e+1:0;n<=t.length-1&&t[n].focus({preventScroll:!0})}}focusPreviousListItem(){let t=this._getFocusableListItems();if(t.length){let e=t.findIndex(s=>s.matches(":focus")),n=e>0?e-1:t.length-1;n>=0&&t[n].focus({preventScroll:!0})}}focusFirstListItem(){let t=this._getFocusableListItems();t.length&&t[0].focus({preventScroll:!0})}focusLastListItem(){let t=this._getFocusableListItems();t.length&&t[t.length-1].focus({preventScroll:!0})}setSelectedListItems(t){let e=this._getListItems();if(e.length){let n=Array.isArray(t)?t:[t];for(let s of e)s.selected=n.some(c=>b(c,s.value))}}updateListItems(t){this._getListItems().forEach(t)}updateListItemRole(){var e;let t=(e=g[this._component.getAttribute("role")])!=null?e:"listitem";this.updateListItems(n=>n.role=t)}_getListItems(){return Array.from(this._component.querySelectorAll(L.elementName)).filter(e=>e.closest(i.elementName)===this._component)}_getFocusableListItems(){return this._getListItems().filter(t=>!t.disabled&&!t.nonInteractive&&!t.hidden)}};var p=class{constructor(t){this._adapter=t;this._nonInteractive=!1;this._disabled=!1;this._dense=!1;this._propagateClick=!0;this._indented=!1;this._twoLine=!1;this._threeLine=!1;this._wrap=!1;this._keydownListener=this._onKeydown.bind(this)}initialize(){this._adapter.initialize(),this._nonInteractive||this._adapter.addHostListener("keydown",this._keydownListener),this._selectedValue!==void 0&&this._selectedValue!==null&&this._adapter.setSelectedListItems(this._selectedValue)}_onKeydown(t){let{key:e,altKey:n,ctrlKey:s,shiftKey:c,metaKey:E}=t;n||s||c||E||(e==="Home"?(t.preventDefault(),this._adapter.focusFirstListItem()):e==="End"?(t.preventDefault(),this._adapter.focusLastListItem()):e==="ArrowUp"?(t.preventDefault(),this._adapter.focusPreviousListItem()):e==="ArrowDown"&&(t.preventDefault(),this._adapter.focusNextListItem()))}updateRole(){this._adapter.updateListItemRole()}get static(){return this.nonInteractive}set static(t){this.nonInteractive=t}get nonInteractive(){return this._nonInteractive}set nonInteractive(t){this._nonInteractive!==t&&(this._nonInteractive=t,this._adapter.toggleHostListener("keydown",this._keydownListener,!this._nonInteractive),this._adapter.updateListItems(e=>e.nonInteractive=this._nonInteractive),this._adapter.toggleHostAttribute(i.attributes.STATIC,this._nonInteractive),this._adapter.toggleHostAttribute(i.attributes.NON_INTERACTIVE,this._nonInteractive))}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=t,this._adapter.updateListItems(e=>e.disabled=this._disabled),this._adapter.toggleHostAttribute(i.attributes.DISABLED,this._disabled))}get dense(){return this._dense}set dense(t){this._dense!==t&&(this._dense=t,this._adapter.updateListItems(e=>e.dense=this._dense),this._adapter.toggleHostAttribute(i.attributes.DENSE,this._dense))}get propagateClick(){return this._propagateClick}set propagateClick(t){this._propagateClick!==t&&(this._propagateClick=t,this._adapter.updateListItems(e=>e.propagateClick=this._propagateClick),this._adapter.setHostAttribute(i.attributes.PROPAGATE_CLICK,this._propagateClick?"true":"false"))}get indented(){return this._indented}set indented(t){this._indented!==t&&(this._indented=t,this._adapter.updateListItems(e=>e.indented=this._indented),this._adapter.toggleHostAttribute(i.attributes.INDENTED,this._indented))}get selectedValue(){return this._selectedValue}set selectedValue(t){this._selectedValue!==t&&(this._selectedValue=t,this._adapter.setSelectedListItems(this._selectedValue))}get twoLine(){return this._twoLine}set twoLine(t){this._twoLine!==t&&(this._twoLine=t,this._adapter.updateListItems(e=>e.twoLine=this._twoLine),this._adapter.toggleHostAttribute(i.attributes.TWO_LINE,this._twoLine))}get threeLine(){return this._threeLine}set threeLine(t){this._threeLine!==t&&(this._threeLine=t,this._adapter.updateListItems(e=>e.threeLine=this._threeLine),this._adapter.toggleHostAttribute(i.attributes.THREE_LINE,this._threeLine))}get wrap(){return this._wrap}set wrap(t){this._wrap!==t&&(this._wrap=t,this._adapter.updateListItems(e=>e.wrap=this._wrap),this._adapter.toggleHostAttribute(i.attributes.WRAP,this._wrap))}};var k='<template><div class="forge-list" part="root"><slot></slot></div></template>',A=":host{display:block}:host([hidden]){display:none}:host([navlist]){--forge-list-item-height:40px;--forge-list-item-margin:4px 8px;--forge-list-item-shape:4px;--forge-list-item-supporting-text-font-size:0.875rem;--forge-list-item-supporting-text-font-weight:500}.forge-list{--_container-color:var(--forge-list-container-color, transparent);--_block-padding:var(--forge-list-block-padding, 8px);--_inline-padding:var(--forge-list-inline-padding, 0);display:block;outline:0;background-color:var(--_container-color);padding:var(--_block-padding) var(--_inline-padding);margin:0;border-radius:inherit;min-width:inherit}",o=class extends I{constructor(){super();m(this,k,A),this._foundation=new p(new d(this))}static get observedAttributes(){return[i.attributes.ROLE,i.attributes.STATIC,i.attributes.NON_INTERACTIVE,i.attributes.DISABLED,i.attributes.DENSE,i.attributes.PROPAGATE_CLICK,i.attributes.SELECTED_VALUE,i.attributes.INDENTED,i.attributes.TWO_LINE,i.attributes.THREE_LINE,i.attributes.WRAP]}connectedCallback(){this._foundation.initialize()}attributeChangedCallback(e,n,s){switch(e){case i.attributes.ROLE:this._foundation.updateRole();break;case i.attributes.STATIC:case i.attributes.NON_INTERACTIVE:this.nonInteractive=l(s);break;case i.attributes.DISABLED:this.disabled=l(s);break;case i.attributes.DENSE:this.dense=l(s);break;case i.attributes.PROPAGATE_CLICK:this.propagateClick=l(s);break;case i.attributes.INDENTED:this.indented=l(s);break;case i.attributes.SELECTED_VALUE:this.selectedValue=s;break;case i.attributes.TWO_LINE:this.twoLine=l(s);break;case i.attributes.THREE_LINE:this.threeLine=l(s);break;case i.attributes.WRAP:this.wrap=l(s);break}}};a([r()],o.prototype,"static",2),a([r()],o.prototype,"nonInteractive",2),a([r()],o.prototype,"disabled",2),a([r()],o.prototype,"dense",2),a([r()],o.prototype,"propagateClick",2),a([r()],o.prototype,"indented",2),a([r()],o.prototype,"selectedValue",2),a([r()],o.prototype,"twoLine",2),a([r()],o.prototype,"threeLine",2),a([r()],o.prototype,"wrap",2),o=a([_({name:i.elementName,dependencies:[v]})],o);function G(){h(o)}export{d as a,p as b,o as c,G as d};
|
|
7
|
+
//# sourceMappingURL=chunk.LV7XF22P.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/list/list/list-adapter.ts", "../../src/list/list/list-foundation.ts", "../../src/list/list/list.ts", "../../src/list/list/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { isDeepEqual } from '@tylertech/forge-core';\nimport { BaseAdapter } from '../../core/base/base-adapter';\nimport { IListComponent } from './list';\nimport { LIST_ITEM_CONSTANTS } from '../list-item/list-item-constants';\nimport { IListItemComponent } from '../list-item/list-item';\nimport { ListComponentItemRole, LIST_CONSTANTS } from './list-constants';\n\nexport interface IListAdapter extends BaseAdapter<IListComponent> {\n initialize(): void;\n focusNextListItem(): void;\n focusPreviousListItem(): void;\n focusFirstListItem(): void;\n focusLastListItem(): void;\n setSelectedListItems(values: unknown | unknown[]): void;\n updateListItems(cb: (li: IListItemComponent) => void): void;\n updateListItemRole(): void;\n}\n\nexport class ListAdapter extends BaseAdapter<IListComponent> implements IListAdapter {\n constructor(component: IListComponent) {\n super(component);\n }\n\n public initialize(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'list');\n }\n }\n\n /** Sets focus to the next item in the list. */\n public focusNextListItem(): void {\n const listItems = this._getFocusableListItems();\n if (listItems.length) {\n const focusedListItemIndex = listItems.findIndex(item => item.matches(':focus'));\n console.log('focusedListItemIndex', focusedListItemIndex);\n const nextIndex = focusedListItemIndex < listItems.length - 1 ? focusedListItemIndex + 1 : 0;\n if (nextIndex <= listItems.length - 1) {\n listItems[nextIndex].focus({ preventScroll: true});\n }\n }\n }\n\n /** Sets focus to the previous item in the list. */\n public focusPreviousListItem(): void {\n const listItems = this._getFocusableListItems();\n if (listItems.length) {\n const focusedListItemIndex = listItems.findIndex(item => item.matches(':focus'));\n const nextIndex = focusedListItemIndex > 0 ? focusedListItemIndex - 1 : listItems.length - 1;\n if (nextIndex >= 0) {\n listItems[nextIndex].focus({ preventScroll: true});\n }\n }\n }\n\n /** Sets focus to the first item in the list. */\n public focusFirstListItem(): void {\n const listItems = this._getFocusableListItems();\n if (listItems.length) {\n listItems[0].focus({ preventScroll: true});\n }\n }\n\n /** Sets focus to the last item in the list. */\n public focusLastListItem(): void {\n const listItems = this._getFocusableListItems();\n if (listItems.length) {\n listItems[listItems.length - 1].focus({ preventScroll: true});\n }\n }\n\n /** Select all list items that match values in the provided array of values. */\n public setSelectedListItems(value: unknown | unknown[]): void {\n const listItems = this._getListItems();\n if (listItems.length) {\n const values = Array.isArray(value) ? value : [value];\n for (const item of listItems) {\n item.selected = values.some(val => isDeepEqual(val, item.value));\n }\n }\n }\n\n /** Calls the provided callback on all list items to apply an updated property to each list item. */\n public updateListItems(cb: (li: IListItemComponent) => void): void {\n this._getListItems().forEach(cb);\n }\n\n public updateListItemRole(): void {\n const role = ListComponentItemRole[this._component.getAttribute('role') as string] ?? 'listitem';\n this.updateListItems(li => li.role = role);\n }\n\n private _getListItems(): IListItemComponent[] {\n const listItems = Array.from(this._component.querySelectorAll(LIST_ITEM_CONSTANTS.elementName));\n return listItems.filter(item => item.closest(LIST_CONSTANTS.elementName) === this._component) as IListItemComponent[];\n }\n\n private _getFocusableListItems(): IListItemComponent[] {\n return this._getListItems().filter(li => !li.disabled && !li.nonInteractive && !li.hidden);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IListAdapter } from './list-adapter';\nimport { LIST_CONSTANTS } from './list-constants';\n\nexport interface IListFoundation extends ICustomElementFoundation {\n static: boolean;\n nonInteractive: boolean;\n disabled: boolean;\n dense: boolean;\n propagateClick: boolean;\n indented: boolean;\n selectedValue: unknown | unknown[];\n twoLine: boolean;\n threeLine: boolean;\n wrap: boolean;\n}\n\nexport class ListFoundation implements IListFoundation {\n private _nonInteractive = false;\n private _disabled = false;\n private _dense = false;\n private _propagateClick = true;\n private _indented = false;\n private _selectedValue: unknown | unknown[];\n private _twoLine = false;\n private _threeLine = false;\n private _wrap = false;\n private _keydownListener: EventListener;\n\n constructor(private _adapter: IListAdapter) {\n this._keydownListener = this._onKeydown.bind(this);\n }\n\n public initialize(): void {\n this._adapter.initialize();\n\n if (!this._nonInteractive) {\n this._adapter.addHostListener('keydown', this._keydownListener);\n }\n\n if (this._selectedValue !== undefined && this._selectedValue !== null) {\n this._adapter.setSelectedListItems(this._selectedValue);\n }\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const { key, altKey, ctrlKey, shiftKey, metaKey } = evt;\n\n if (altKey || ctrlKey || shiftKey || metaKey) {\n return;\n }\n\n if (key === 'Home') {\n evt.preventDefault();\n this._adapter.focusFirstListItem();\n } else if (key === 'End') {\n evt.preventDefault();\n this._adapter.focusLastListItem();\n } else if (key === 'ArrowUp') {\n evt.preventDefault();\n this._adapter.focusPreviousListItem();\n } else if (key === 'ArrowDown') {\n evt.preventDefault();\n this._adapter.focusNextListItem();\n }\n }\n\n public updateRole(): void {\n this._adapter.updateListItemRole();\n }\n\n public get static(): boolean {\n return this.nonInteractive;\n }\n public set static(value: boolean) {\n this.nonInteractive = value;\n }\n\n public get nonInteractive(): boolean {\n return this._nonInteractive;\n }\n public set nonInteractive(value: boolean) {\n if (this._nonInteractive !== value) {\n this._nonInteractive = value;\n this._adapter.toggleHostListener('keydown', this._keydownListener, !this._nonInteractive);\n this._adapter.updateListItems(li => li.nonInteractive = this._nonInteractive);\n this._adapter.toggleHostAttribute(LIST_CONSTANTS.attributes.STATIC, this._nonInteractive);\n this._adapter.toggleHostAttribute(LIST_CONSTANTS.attributes.NON_INTERACTIVE, this._nonInteractive);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.updateListItems(li => li.disabled = this._disabled);\n this._adapter.toggleHostAttribute(LIST_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n if (this._dense !== value) {\n this._dense = value;\n this._adapter.updateListItems(li => li.dense = this._dense);\n this._adapter.toggleHostAttribute(LIST_CONSTANTS.attributes.DENSE, this._dense);\n }\n }\n\n public get propagateClick(): boolean {\n return this._propagateClick;\n }\n public set propagateClick(value: boolean) {\n if (this._propagateClick !== value) {\n this._propagateClick = value;\n this._adapter.updateListItems(li => li.propagateClick = this._propagateClick);\n this._adapter.setHostAttribute(LIST_CONSTANTS.attributes.PROPAGATE_CLICK, this._propagateClick ? 'true' : 'false');\n }\n }\n\n public get indented(): boolean {\n return this._indented;\n }\n public set indented(value: boolean) {\n if (this._indented !== value) {\n this._indented = value;\n this._adapter.updateListItems(li => li.indented = this._indented);\n this._adapter.toggleHostAttribute(LIST_CONSTANTS.attributes.INDENTED, this._indented);\n }\n }\n\n public get selectedValue(): unknown | unknown[] {\n return this._selectedValue;\n }\n public set selectedValue(value: unknown | unknown[]) {\n if (this._selectedValue !== value) {\n this._selectedValue = value;\n this._adapter.setSelectedListItems(this._selectedValue);\n }\n }\n\n public get twoLine(): boolean {\n return this._twoLine;\n }\n public set twoLine(value: boolean) {\n if (this._twoLine !== value) {\n this._twoLine = value;\n this._adapter.updateListItems(li => li.twoLine = this._twoLine);\n this._adapter.toggleHostAttribute(LIST_CONSTANTS.attributes.TWO_LINE, this._twoLine);\n }\n }\n\n public get threeLine(): boolean {\n return this._threeLine;\n }\n public set threeLine(value: boolean) {\n if (this._threeLine !== value) {\n this._threeLine = value;\n this._adapter.updateListItems(li => li.threeLine = this._threeLine);\n this._adapter.toggleHostAttribute(LIST_CONSTANTS.attributes.THREE_LINE, this._threeLine);\n }\n }\n\n public get wrap(): boolean {\n return this._wrap;\n }\n public set wrap(value: boolean) {\n if (this._wrap !== value) {\n this._wrap = value;\n this._adapter.updateListItems(li => li.wrap = this._wrap);\n this._adapter.toggleHostAttribute(LIST_CONSTANTS.attributes.WRAP, this._wrap);\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\nimport { ListAdapter } from './list-adapter';\nimport { ListFoundation } from './list-foundation';\nimport { LIST_CONSTANTS } from './list-constants';\n\nconst template = '<template><div class=\\\"forge-list\\\" part=\\\"root\\\"><slot></slot></div></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}:host([navlist]){--forge-list-item-height:40px;--forge-list-item-margin:4px 8px;--forge-list-item-shape:4px;--forge-list-item-supporting-text-font-size:0.875rem;--forge-list-item-supporting-text-font-weight:500}.forge-list{--_container-color:var(--forge-list-container-color, transparent);--_block-padding:var(--forge-list-block-padding, 8px);--_inline-padding:var(--forge-list-inline-padding, 0);display:block;outline:0;background-color:var(--_container-color);padding:var(--_block-padding) var(--_inline-padding);margin:0;border-radius:inherit;min-width:inherit}';\nimport { ListItemComponent } from '../list-item';\n\nexport interface IListComponent extends IBaseComponent {\n /** @deprecated Use nonInteractive instead. */\n static: boolean;\n nonInteractive: boolean;\n disabled: boolean;\n dense: boolean;\n propagateClick: boolean;\n indented: boolean;\n selectedValue: any;\n twoLine: boolean;\n threeLine: boolean;\n wrap: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-list': IListComponent;\n }\n}\n\n/**\n * @tag forge-list\n * \n * @summary Lists are vertical groupings of related content.\n * \n * @csspart root - The component's root container element.\n * \n * @slot - The default/unnamed slot for child list items.\n *\n * @cssproperty --forge-list-container-color - The background color of the list surface,\n * @cssproperty --forge-list-block-padding - The block padding of the list before and after the list items.\n * @cssproperty --forge-list-inline-padding - The inline padding of the list next to the list items.\n * \n * @property {string} role - The role of the list. Default is 'list'. Valid values are 'list', 'listbox', and 'menu'.\n * @property {boolean} static - Whether the list has all static items or not.\n * @property {boolean} nonInteractive - Whether the list has all non-interactive items or not.\n * @property {boolean} disabled - Whether the list items are disabled or not.\n * @property {boolean} dense - Whether the list has all dense items or not.\n * @property {boolean} propagateClick - Whether the list items propagate click events or not.\n * @property {boolean} indented - Whether the list items within this list are indented. Default is false.\n * @property {unknown | unknown[]} selectedValue - The selected list item value(s).\n * @property {boolean} twoLine - Whether the list has all two-line items or not.\n * @property {boolean} threeLine - Whether the list has all three-line items or not.\n * @property {boolean} wrap - Whether the list has all items that wrap their text or not.\n * \n * @attribute {string} role - The role of the list. Default is 'list'. Valid values are 'list', 'listbox', and 'menu'.\n * @attribute {boolean} static - Whether the list has all static items or not.\n * @attribute {boolean} non-interactive - Whether the list has all non-interactive items or not.\n * @attribute {boolean} disabled - Whether the list items are disabled or not.\n * @attribute {boolean} dense - Whether the list has all dense items or not.\n * @attribute {boolean} propagate-click - Whether the list items propagate click events or not.\n * @attribute {string} selected-value - The selected list item value(s).\n * @attribute {boolean} indented - Whether the list items within this list are indented. Default is false.\n * @attribute {boolean} two-line - Whether the list has all two-line items or not.\n * @attribute {boolean} three-line - Whether the list has all three-line items or not.\n * @attribute {boolean} wrap - Whether the list has all items that wrap their text or not.\n * @attribute {boolean} navlist - Controls whether the list is styled a navigation list or not.\n */\n@CustomElement({\n name: LIST_CONSTANTS.elementName,\n dependencies: [\n ListItemComponent\n ]\n})\nexport class ListComponent extends BaseComponent implements IListComponent {\n public static get observedAttributes(): string[] {\n return [\n LIST_CONSTANTS.attributes.ROLE,\n LIST_CONSTANTS.attributes.STATIC,\n LIST_CONSTANTS.attributes.NON_INTERACTIVE,\n LIST_CONSTANTS.attributes.DISABLED,\n LIST_CONSTANTS.attributes.DENSE,\n LIST_CONSTANTS.attributes.PROPAGATE_CLICK,\n LIST_CONSTANTS.attributes.SELECTED_VALUE,\n LIST_CONSTANTS.attributes.INDENTED,\n LIST_CONSTANTS.attributes.TWO_LINE,\n LIST_CONSTANTS.attributes.THREE_LINE,\n LIST_CONSTANTS.attributes.WRAP\n ];\n }\n\n private _foundation: ListFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ListFoundation(new ListAdapter(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 LIST_CONSTANTS.attributes.ROLE:\n this._foundation.updateRole();\n break;\n case LIST_CONSTANTS.attributes.STATIC:\n case LIST_CONSTANTS.attributes.NON_INTERACTIVE:\n this.nonInteractive = coerceBoolean(newValue);\n break;\n case LIST_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case LIST_CONSTANTS.attributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n case LIST_CONSTANTS.attributes.PROPAGATE_CLICK:\n this.propagateClick = coerceBoolean(newValue);\n break;\n case LIST_CONSTANTS.attributes.INDENTED:\n this.indented = coerceBoolean(newValue);\n break;\n case LIST_CONSTANTS.attributes.SELECTED_VALUE:\n this.selectedValue = newValue;\n break;\n case LIST_CONSTANTS.attributes.TWO_LINE:\n this.twoLine = coerceBoolean(newValue);\n break;\n case LIST_CONSTANTS.attributes.THREE_LINE:\n this.threeLine = coerceBoolean(newValue);\n break;\n case LIST_CONSTANTS.attributes.WRAP:\n this.wrap = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public declare static: boolean;\n\n @FoundationProperty()\n public declare nonInteractive: boolean;\n\n @FoundationProperty()\n public declare disabled: boolean;\n\n @FoundationProperty()\n public declare dense: boolean;\n\n @FoundationProperty()\n public declare propagateClick: boolean;\n\n @FoundationProperty()\n public declare indented: boolean;\n\n @FoundationProperty()\n public declare selectedValue: any;\n\n @FoundationProperty()\n public declare twoLine: boolean;\n\n @FoundationProperty()\n public declare threeLine: boolean;\n\n @FoundationProperty()\n public declare wrap: boolean;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { ListComponent } from './list';\n\nexport * from './list-adapter';\nexport * from './list-constants';\nexport * from './list-foundation';\nexport * from './list';\n\nexport function defineListComponent(): void {\n defineCustomElement(ListComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ListAdapter", "BaseAdapter", "component", "listItems", "focusedListItemIndex", "item", "nextIndex", "value", "values", "val", "isDeepEqual", "cb", "_a", "role", "ListComponentItemRole", "li", "LIST_ITEM_CONSTANTS", "LIST_CONSTANTS", "ListFoundation", "_adapter", "evt", "key", "altKey", "ctrlKey", "shiftKey", "metaKey", "value", "li", "LIST_CONSTANTS", "template", "styles", "ListComponent", "BaseComponent", "attachShadowTemplate", "ListFoundation", "ListAdapter", "LIST_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "ListItemComponent", "defineListComponent", "defineCustomElement", "ListComponent"]
|
|
7
|
+
}
|