@tylertech/forge 2.13.2 → 2.14.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +1079 -233
- 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/banner/index.js +1 -1
- package/dist/esm/bottom-sheet/index.js +1 -1
- package/dist/esm/busy-indicator/index.js +1 -1
- package/dist/esm/button/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/dist/esm/button-toggle/index.js +1 -1
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
- package/dist/esm/calendar/calendar-menu/index.js +1 -1
- package/dist/esm/calendar/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.24X566SZ.js +7 -0
- package/dist/esm/chunks/chunk.24X566SZ.js.map +7 -0
- package/dist/esm/chunks/{chunk.N24NHF7Y.js → chunk.2D4IBAWP.js} +2 -2
- package/dist/esm/chunks/chunk.323FEQVK.js +7 -0
- package/dist/esm/chunks/chunk.323FEQVK.js.map +7 -0
- package/dist/esm/chunks/{chunk.Y4L7AVUS.js → chunk.3G237L6C.js} +2 -2
- package/dist/esm/chunks/chunk.3UB364WW.js +7 -0
- package/dist/esm/chunks/chunk.3UB364WW.js.map +7 -0
- package/dist/esm/chunks/chunk.4YH3GB4D.js +12 -0
- package/dist/esm/chunks/{chunk.BTI5I25G.js.map → chunk.4YH3GB4D.js.map} +1 -1
- package/dist/esm/chunks/{chunk.HPJ4AQIE.js → chunk.54RF4ZT6.js} +2 -2
- package/dist/esm/chunks/{chunk.ALJ3FDXL.js → chunk.5DKXUTFN.js} +2 -2
- package/dist/esm/chunks/{chunk.ALJ3FDXL.js.map → chunk.5DKXUTFN.js.map} +1 -1
- package/dist/esm/chunks/{chunk.5TVWDATE.js → chunk.5W5IPKAU.js} +2 -2
- package/dist/esm/chunks/{chunk.PBJEZJTY.js → chunk.65G33MJV.js} +2 -2
- package/dist/esm/chunks/{chunk.TLS4ALGU.js → chunk.6NBVXSNZ.js} +2 -2
- package/dist/esm/chunks/{chunk.Z4MN5NB5.js → chunk.73O3BMP2.js} +2 -2
- package/dist/esm/chunks/{chunk.WEUNLYMQ.js → chunk.7LBAA7TC.js} +2 -2
- package/dist/esm/chunks/chunk.AGEBZY4S.js +7 -0
- package/dist/esm/chunks/chunk.AGEBZY4S.js.map +7 -0
- package/dist/esm/chunks/chunk.B5HGV5EZ.js +7 -0
- package/dist/esm/chunks/chunk.B5HGV5EZ.js.map +7 -0
- package/dist/esm/chunks/chunk.C557PTJ5.js +7 -0
- package/dist/esm/chunks/chunk.C557PTJ5.js.map +7 -0
- package/dist/esm/chunks/{chunk.VW4JVRH7.js → chunk.CN7DHS4J.js} +2 -2
- package/dist/esm/chunks/chunk.CUT7V2KN.js +7 -0
- package/dist/esm/chunks/chunk.CUT7V2KN.js.map +7 -0
- package/dist/esm/chunks/chunk.CZIQTYFJ.js +7 -0
- package/dist/esm/chunks/chunk.CZIQTYFJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.BYRJ7577.js → chunk.DRI2NLIB.js} +2 -2
- package/dist/esm/chunks/chunk.EE2LK23T.js +7 -0
- package/dist/esm/chunks/chunk.EE2LK23T.js.map +7 -0
- package/dist/esm/chunks/chunk.EXKBJEFL.js +7 -0
- package/dist/esm/chunks/{chunk.ZPBGKHHM.js.map → chunk.EXKBJEFL.js.map} +2 -2
- package/dist/esm/chunks/{chunk.7MVBJ37L.js → chunk.FBERE7AL.js} +2 -2
- package/dist/esm/chunks/{chunk.OJFI5I6O.js → chunk.FQEETXUQ.js} +2 -2
- package/dist/esm/chunks/{chunk.3STDLL5U.js → chunk.G5JTL66M.js} +2 -2
- package/dist/esm/chunks/chunk.GVZEMIA3.js +7 -0
- package/dist/esm/chunks/chunk.GVZEMIA3.js.map +7 -0
- package/dist/esm/chunks/{chunk.BCP2YATB.js → chunk.GZEWDHFJ.js} +2 -2
- package/dist/esm/chunks/chunk.HQJZRTOH.js +7 -0
- package/dist/esm/chunks/chunk.HQJZRTOH.js.map +7 -0
- package/dist/esm/chunks/{chunk.ZAGCOV55.js → chunk.HUX56BCR.js} +2 -2
- package/dist/esm/chunks/chunk.K5WLIDQK.js +7 -0
- package/dist/esm/chunks/chunk.K5WLIDQK.js.map +7 -0
- package/dist/esm/chunks/chunk.LGECRZFO.js +7 -0
- package/dist/esm/chunks/chunk.LGECRZFO.js.map +7 -0
- package/dist/esm/chunks/{chunk.MBS5VMYY.js → chunk.LYAS4FAN.js} +2 -2
- package/dist/esm/chunks/{chunk.MBS5VMYY.js.map → chunk.LYAS4FAN.js.map} +2 -2
- package/dist/esm/chunks/{chunk.YG2KLPHA.js.map → chunk.MU4FV57Q.js} +7 -7
- package/dist/esm/chunks/chunk.MU4FV57Q.js.map +7 -0
- package/dist/esm/chunks/chunk.N6QJ2RRG.js +7 -0
- package/dist/esm/chunks/chunk.N6QJ2RRG.js.map +7 -0
- package/dist/esm/chunks/{chunk.O5I3ZMDA.js → chunk.NG5EGZ5Y.js} +2 -2
- package/dist/esm/chunks/chunk.NXS7A7PO.js +7 -0
- package/dist/esm/chunks/{chunk.5BDTX7CR.js.map → chunk.NXS7A7PO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.SLSVRMAS.js → chunk.NZTGBDRK.js} +2 -2
- package/dist/esm/chunks/{chunk.OLNFXF3V.js → chunk.O4LGKJY6.js} +2 -2
- package/dist/esm/chunks/{chunk.NV2HNCQH.js → chunk.OGZOXNGT.js} +2 -2
- package/dist/esm/chunks/chunk.OKIRZEUG.js +7 -0
- package/dist/esm/chunks/chunk.OKIRZEUG.js.map +7 -0
- package/dist/esm/chunks/{chunk.36VS7FMU.js → chunk.OTI6WL66.js} +2 -2
- package/dist/esm/chunks/chunk.P45HS252.js +7 -0
- package/dist/esm/chunks/chunk.P45HS252.js.map +7 -0
- package/dist/esm/chunks/{chunk.Y5GQ2BA7.js → chunk.P5GT5YBP.js} +2 -2
- package/dist/esm/chunks/chunk.P6IF3USM.js +7 -0
- package/dist/esm/chunks/chunk.P6IF3USM.js.map +7 -0
- package/dist/esm/chunks/chunk.PBL2N45I.js +7 -0
- package/dist/esm/chunks/chunk.PBL2N45I.js.map +7 -0
- package/dist/esm/chunks/{chunk.HWQEGQDD.js → chunk.PHJPLWFH.js} +2 -2
- package/dist/esm/chunks/chunk.PRO76W5D.js +7 -0
- package/dist/esm/chunks/{chunk.7TDB3VFH.js.map → chunk.PRO76W5D.js.map} +2 -2
- package/dist/esm/chunks/chunk.PV5MABYN.js +7 -0
- package/dist/esm/chunks/chunk.PV5MABYN.js.map +7 -0
- package/dist/esm/chunks/chunk.R2L3S3YD.js +7 -0
- package/dist/esm/chunks/chunk.R2L3S3YD.js.map +7 -0
- package/dist/esm/chunks/{chunk.QH4DLM3R.js → chunk.R4NZYUID.js} +2 -2
- package/dist/esm/chunks/chunk.RH2NL523.js +7 -0
- package/dist/esm/chunks/chunk.RH2NL523.js.map +7 -0
- package/dist/esm/chunks/{chunk.IMZ5PF4C.js → chunk.ROF42KJ3.js} +2 -2
- package/dist/esm/chunks/{chunk.B52LJRGH.js → chunk.RT4C67NK.js} +2 -2
- package/dist/esm/chunks/chunk.T2M2KVP7.js +29 -0
- package/dist/esm/chunks/chunk.T2M2KVP7.js.map +7 -0
- package/dist/esm/chunks/chunk.TMJBIAWC.js +7 -0
- package/dist/esm/chunks/chunk.TMJBIAWC.js.map +7 -0
- package/dist/esm/chunks/{chunk.HHJJJ73Y.js → chunk.UPFJ3PVE.js} +2 -2
- package/dist/esm/chunks/{chunk.HHJJJ73Y.js.map → chunk.UPFJ3PVE.js.map} +1 -1
- package/dist/esm/chunks/{chunk.DB2WESQC.js → chunk.XC76IHG4.js} +2 -2
- package/dist/esm/chunks/chunk.XCUYZZV4.js +7 -0
- package/dist/esm/chunks/chunk.XCUYZZV4.js.map +7 -0
- package/dist/esm/chunks/{chunk.YONRMJU5.js → chunk.XMI5RBZQ.js} +2 -2
- package/dist/esm/chunks/chunk.XMI5RBZQ.js.map +7 -0
- package/dist/esm/chunks/chunk.XY4N4TSH.js +7 -0
- package/dist/esm/chunks/chunk.XY4N4TSH.js.map +7 -0
- package/dist/esm/chunks/{chunk.N46G56GG.js → chunk.YKXCORJE.js} +2 -2
- package/dist/esm/chunks/{chunk.2ZQ3ZDPN.js → chunk.YPMN5U7C.js} +2 -2
- package/dist/esm/chunks/{chunk.X5JLUP7O.js → chunk.YW47QJVY.js} +2 -2
- package/dist/esm/chunks/{chunk.JXY6MTP3.js → chunk.ZAKLVVFO.js} +2 -2
- package/dist/esm/chunks/{chunk.YWRCWMNO.js → chunk.ZQCHS2PS.js} +2 -2
- package/dist/esm/color-picker/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/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/icon/index.js +1 -1
- package/dist/esm/icon-button/index.js +1 -1
- package/dist/esm/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/paginator/index.js +1 -1
- package/dist/esm/popup/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/select/core/index.js +1 -1
- package/dist/esm/select/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/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/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/esm/app-bar/notification-button/app-bar-notification-button-adapter.d.ts +3 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +5 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-constants.d.ts +1 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-constants.js +2 -1
- package/esm/app-bar/notification-button/app-bar-notification-button-foundation.d.ts +4 -0
- package/esm/app-bar/notification-button/app-bar-notification-button-foundation.js +14 -0
- package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +2 -0
- package/esm/app-bar/notification-button/app-bar-notification-button.js +9 -2
- package/esm/autocomplete/autocomplete-adapter.d.ts +9 -10
- package/esm/autocomplete/autocomplete-adapter.js +1 -1
- package/esm/autocomplete/autocomplete-constants.d.ts +10 -12
- package/esm/autocomplete/autocomplete-foundation.d.ts +6 -7
- package/esm/autocomplete/autocomplete-foundation.js +5 -2
- package/esm/autocomplete/autocomplete-utils.d.ts +4 -5
- package/esm/autocomplete/autocomplete.d.ts +3 -4
- package/esm/autocomplete/autocomplete.js +2 -2
- package/esm/button/button-constants.d.ts +1 -0
- package/esm/button/button-constants.js +2 -1
- package/esm/button/button.d.ts +1 -1
- package/esm/button/button.js +6 -7
- package/esm/calendar/calendar-foundation.js +1 -0
- package/esm/checkbox/checkbox-adapter.d.ts +1 -2
- package/esm/checkbox/checkbox-adapter.js +12 -8
- package/esm/checkbox/checkbox-foundation.js +0 -3
- package/esm/chip-field/chip-field-adapter.d.ts +2 -0
- package/esm/chip-field/chip-field-adapter.js +8 -3
- package/esm/chip-field/chip-field-foundation.js +1 -0
- package/esm/chip-field/chip-field.js +1 -1
- package/esm/color-picker/color-picker-foundation.d.ts +1 -0
- package/esm/color-picker/color-picker-foundation.js +19 -8
- package/esm/core/utils/date-utils.js +2 -2
- package/esm/core/utils/utils.d.ts +0 -6
- package/esm/core/utils/utils.js +0 -10
- package/esm/date-picker/base/base-date-picker-foundation.js +2 -1
- package/esm/date-picker/base/base-date-picker.d.ts +2 -2
- package/esm/date-range-picker/date-range-picker-foundation.d.ts +2 -2
- package/esm/date-range-picker/date-range-picker-foundation.js +1 -1
- package/esm/dialog/dialog-adapter.d.ts +0 -2
- package/esm/dialog/dialog-adapter.js +1 -10
- package/esm/dialog/dialog-foundation.js +0 -1
- package/esm/file-picker/file-picker-adapter.js +3 -2
- package/esm/file-picker/file-picker-foundation.d.ts +2 -0
- package/esm/file-picker/file-picker-foundation.js +15 -38
- package/esm/file-picker/file-picker.d.ts +1 -0
- package/esm/file-picker/file-picker.js +3 -0
- package/esm/floating-action-button/floating-action-button-constants.js +1 -1
- package/esm/icon-button/icon-button-constants.js +1 -1
- package/esm/icon-button/icon-button.d.ts +1 -1
- package/esm/icon-button/icon-button.js +6 -6
- package/esm/linear-progress/linear-progress.js +1 -1
- package/esm/list/list-item/list-item-foundation.js +1 -2
- package/esm/list/list-item/list-item.js +1 -1
- package/esm/list-dropdown/cascading-list-dropdown-aware-foundation.d.ts +5 -2
- package/esm/list-dropdown/cascading-list-dropdown-aware-foundation.js +3 -1
- package/esm/list-dropdown/list-dropdown-aware-foundation.d.ts +8 -0
- package/esm/list-dropdown/list-dropdown-aware-foundation.js +14 -0
- package/esm/list-dropdown/list-dropdown-aware.d.ts +11 -2
- package/esm/list-dropdown/list-dropdown-aware.js +12 -0
- package/esm/list-dropdown/list-dropdown-constants.d.ts +9 -3
- package/esm/list-dropdown/list-dropdown-constants.js +2 -0
- package/esm/list-dropdown/list-dropdown-foundation.js +2 -6
- package/esm/list-dropdown/list-dropdown-utils.d.ts +1 -0
- package/esm/list-dropdown/list-dropdown-utils.js +39 -17
- package/esm/menu/menu-adapter.d.ts +2 -0
- package/esm/menu/menu-adapter.js +7 -0
- package/esm/menu/menu-constants.js +1 -1
- package/esm/menu/menu-foundation.d.ts +12 -3
- package/esm/menu/menu-foundation.js +28 -17
- package/esm/menu/menu.d.ts +6 -1
- package/esm/menu/menu.js +9 -3
- package/esm/popup/popup-adapter.js +9 -1
- package/esm/popup/popup-constants.d.ts +1 -0
- package/esm/popup/popup-constants.js +2 -1
- package/esm/popup/popup-foundation.d.ts +4 -0
- package/esm/popup/popup-foundation.js +7 -0
- package/esm/popup/popup.d.ts +2 -0
- package/esm/popup/popup.js +4 -1
- package/esm/quantity-field/quantity-field-adapter.d.ts +2 -0
- package/esm/quantity-field/quantity-field-adapter.js +8 -0
- package/esm/quantity-field/quantity-field-foundation.js +1 -0
- package/esm/quantity-field/quantity-field.js +6 -0
- package/esm/radio/radio-adapter.d.ts +3 -3
- package/esm/radio/radio-adapter.js +17 -15
- package/esm/radio/radio-foundation.js +1 -1
- package/esm/ripple/forge-ripple.d.ts +1 -0
- package/esm/ripple/forge-ripple.js +3 -0
- package/esm/ripple/ripple-constants.d.ts +1 -0
- package/esm/ripple/ripple-constants.js +2 -1
- package/esm/ripple/ripple-foundation.d.ts +4 -0
- package/esm/ripple/ripple-foundation.js +10 -0
- package/esm/ripple/ripple.d.ts +2 -0
- package/esm/ripple/ripple.js +8 -1
- package/esm/select/core/base-select-adapter.js +8 -6
- package/esm/select/core/base-select-constants.d.ts +2 -0
- package/esm/select/core/base-select-constants.js +3 -1
- package/esm/select/core/base-select-foundation.d.ts +0 -9
- package/esm/select/core/base-select-foundation.js +5 -26
- package/esm/select/core/select-utils.js +1 -1
- package/esm/select/option-group/option-group.d.ts +12 -1
- package/esm/select/option-group/option-group.js +7 -0
- package/esm/select/select/select.js +5 -3
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/switch/switch.js +37 -12
- package/esm/table/table-foundation.d.ts +7 -0
- package/esm/table/table-foundation.js +9 -0
- package/esm/table/table-utils.js +6 -3
- package/esm/table/table.d.ts +7 -0
- package/esm/table/table.js +8 -0
- package/esm/table/types.d.ts +8 -4
- package/esm/text-field/text-field.js +1 -1
- package/esm/time-picker/time-picker-foundation.js +1 -0
- package/esm/toolbar/toolbar.js +2 -2
- package/package.json +30 -3
- package/styles/chip-field/_selector.scss +12 -13
- package/styles/chip-field/chip-field.scss +1 -1
- package/styles/field/_base.scss +2 -2
- package/styles/field/_selector.scss +1 -1
- package/styles/list/list-item/_mixins.scss +28 -17
- package/styles/list/list-item/_variables.scss +13 -4
- package/styles/popup/popup.scss +4 -0
- package/styles/toolbar/_mixins.scss +1 -2
- package/styles/toolbar/toolbar.scss +13 -0
- package/dist/esm/chunks/chunk.3MP6OFVU.js +0 -7
- package/dist/esm/chunks/chunk.3MP6OFVU.js.map +0 -7
- package/dist/esm/chunks/chunk.4K3IV4GI.js +0 -7
- package/dist/esm/chunks/chunk.4K3IV4GI.js.map +0 -7
- package/dist/esm/chunks/chunk.5BDTX7CR.js +0 -7
- package/dist/esm/chunks/chunk.6LXDG4W5.js +0 -7
- package/dist/esm/chunks/chunk.6LXDG4W5.js.map +0 -7
- package/dist/esm/chunks/chunk.7R6TYPPS.js +0 -7
- package/dist/esm/chunks/chunk.7R6TYPPS.js.map +0 -7
- package/dist/esm/chunks/chunk.7TDB3VFH.js +0 -7
- package/dist/esm/chunks/chunk.BCD4AAI2.js +0 -7
- package/dist/esm/chunks/chunk.BCD4AAI2.js.map +0 -7
- package/dist/esm/chunks/chunk.BTI5I25G.js +0 -12
- package/dist/esm/chunks/chunk.DLAIQJHL.js +0 -7
- package/dist/esm/chunks/chunk.DLAIQJHL.js.map +0 -7
- package/dist/esm/chunks/chunk.DURRORXO.js +0 -29
- package/dist/esm/chunks/chunk.DURRORXO.js.map +0 -7
- package/dist/esm/chunks/chunk.EDU7RQD7.js +0 -7
- package/dist/esm/chunks/chunk.EDU7RQD7.js.map +0 -7
- package/dist/esm/chunks/chunk.ETIN6DEM.js +0 -7
- package/dist/esm/chunks/chunk.ETIN6DEM.js.map +0 -7
- package/dist/esm/chunks/chunk.F2GXZPID.js +0 -7
- package/dist/esm/chunks/chunk.F2GXZPID.js.map +0 -7
- package/dist/esm/chunks/chunk.F3Q62EMG.js +0 -7
- package/dist/esm/chunks/chunk.F3Q62EMG.js.map +0 -7
- package/dist/esm/chunks/chunk.GEMZPO6Z.js +0 -7
- package/dist/esm/chunks/chunk.GEMZPO6Z.js.map +0 -7
- package/dist/esm/chunks/chunk.JMXJXZTS.js +0 -7
- package/dist/esm/chunks/chunk.JMXJXZTS.js.map +0 -7
- package/dist/esm/chunks/chunk.M4KJNCLO.js +0 -7
- package/dist/esm/chunks/chunk.M4KJNCLO.js.map +0 -7
- package/dist/esm/chunks/chunk.MBWEYW6M.js +0 -7
- package/dist/esm/chunks/chunk.MBWEYW6M.js.map +0 -7
- package/dist/esm/chunks/chunk.O2R6MBT5.js +0 -7
- package/dist/esm/chunks/chunk.O2R6MBT5.js.map +0 -7
- package/dist/esm/chunks/chunk.ON6FJ2D6.js +0 -7
- package/dist/esm/chunks/chunk.ON6FJ2D6.js.map +0 -7
- package/dist/esm/chunks/chunk.PCSCKTFS.js +0 -7
- package/dist/esm/chunks/chunk.PCSCKTFS.js.map +0 -7
- package/dist/esm/chunks/chunk.Q3RRONZQ.js +0 -7
- package/dist/esm/chunks/chunk.Q3RRONZQ.js.map +0 -7
- package/dist/esm/chunks/chunk.QIJHHDYF.js +0 -7
- package/dist/esm/chunks/chunk.QIJHHDYF.js.map +0 -7
- package/dist/esm/chunks/chunk.QMRLSOAB.js +0 -7
- package/dist/esm/chunks/chunk.QMRLSOAB.js.map +0 -7
- package/dist/esm/chunks/chunk.UOWU5VVK.js +0 -7
- package/dist/esm/chunks/chunk.UOWU5VVK.js.map +0 -7
- package/dist/esm/chunks/chunk.WOHCW6KW.js +0 -7
- package/dist/esm/chunks/chunk.WOHCW6KW.js.map +0 -7
- package/dist/esm/chunks/chunk.WU24GAQY.js +0 -7
- package/dist/esm/chunks/chunk.WU24GAQY.js.map +0 -7
- package/dist/esm/chunks/chunk.XSZ4S77A.js +0 -7
- package/dist/esm/chunks/chunk.XSZ4S77A.js.map +0 -7
- package/dist/esm/chunks/chunk.YG2KLPHA.js +0 -7
- package/dist/esm/chunks/chunk.YONRMJU5.js.map +0 -7
- package/dist/esm/chunks/chunk.ZPBGKHHM.js +0 -7
- /package/dist/esm/chunks/{chunk.N24NHF7Y.js.map → chunk.2D4IBAWP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Y4L7AVUS.js.map → chunk.3G237L6C.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HPJ4AQIE.js.map → chunk.54RF4ZT6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5TVWDATE.js.map → chunk.5W5IPKAU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PBJEZJTY.js.map → chunk.65G33MJV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TLS4ALGU.js.map → chunk.6NBVXSNZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Z4MN5NB5.js.map → chunk.73O3BMP2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WEUNLYMQ.js.map → chunk.7LBAA7TC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VW4JVRH7.js.map → chunk.CN7DHS4J.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BYRJ7577.js.map → chunk.DRI2NLIB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7MVBJ37L.js.map → chunk.FBERE7AL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OJFI5I6O.js.map → chunk.FQEETXUQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3STDLL5U.js.map → chunk.G5JTL66M.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BCP2YATB.js.map → chunk.GZEWDHFJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZAGCOV55.js.map → chunk.HUX56BCR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.O5I3ZMDA.js.map → chunk.NG5EGZ5Y.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SLSVRMAS.js.map → chunk.NZTGBDRK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OLNFXF3V.js.map → chunk.O4LGKJY6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NV2HNCQH.js.map → chunk.OGZOXNGT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.36VS7FMU.js.map → chunk.OTI6WL66.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Y5GQ2BA7.js.map → chunk.P5GT5YBP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HWQEGQDD.js.map → chunk.PHJPLWFH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QH4DLM3R.js.map → chunk.R4NZYUID.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IMZ5PF4C.js.map → chunk.ROF42KJ3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.B52LJRGH.js.map → chunk.RT4C67NK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DB2WESQC.js.map → chunk.XC76IHG4.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.N46G56GG.js.map → chunk.YKXCORJE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2ZQ3ZDPN.js.map → chunk.YPMN5U7C.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.X5JLUP7O.js.map → chunk.YW47QJVY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JXY6MTP3.js.map → chunk.ZAKLVVFO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YWRCWMNO.js.map → chunk.ZQCHS2PS.js.map} +0 -0
|
@@ -16,6 +16,7 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
16
16
|
});
|
|
17
17
|
this._adapter = _adapter;
|
|
18
18
|
this._placement = 'bottom-start';
|
|
19
|
+
this._fallbackPlacements = [];
|
|
19
20
|
this._dense = false;
|
|
20
21
|
this._iconClass = ICON_CLASS_NAME;
|
|
21
22
|
this._persistSelection = false;
|
|
@@ -38,6 +39,9 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
38
39
|
}
|
|
39
40
|
this._destroyInteractionListeners();
|
|
40
41
|
}
|
|
42
|
+
activateFirstOption() {
|
|
43
|
+
this._adapter.activateFirstOption();
|
|
44
|
+
}
|
|
41
45
|
_applyMode() {
|
|
42
46
|
if (!this._adapter.hasTargetElement()) {
|
|
43
47
|
return;
|
|
@@ -55,14 +59,14 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
55
59
|
}
|
|
56
60
|
this._applyMode();
|
|
57
61
|
this._adapter.addTargetListener('keydown', this._keydownListener, true);
|
|
58
|
-
this._adapter.addTargetListener('
|
|
62
|
+
this._adapter.addTargetListener('focusout', this._blurListener);
|
|
59
63
|
}
|
|
60
64
|
_destroyInteractionListeners() {
|
|
61
65
|
if (!this._adapter.hasTargetElement()) {
|
|
62
66
|
return;
|
|
63
67
|
}
|
|
64
68
|
this._adapter.removeTargetListener('keydown', this._clickListener);
|
|
65
|
-
this._adapter.removeTargetListener('
|
|
69
|
+
this._adapter.removeTargetListener('focusout', this._blurListener);
|
|
66
70
|
this._adapter.removeTargetListener('click', this._clickListener);
|
|
67
71
|
this._detachCascadingListeners();
|
|
68
72
|
}
|
|
@@ -113,13 +117,6 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
113
117
|
onKeydown(evt) {
|
|
114
118
|
// If we have any child menus open, we need to proxy the keyboard events to those and exit
|
|
115
119
|
if (this._childOpen) {
|
|
116
|
-
// If escape is pressed while other menus are open then we need to close everything
|
|
117
|
-
if (evt.code === 'Escape') {
|
|
118
|
-
evt.preventDefault();
|
|
119
|
-
this._adapter.closeOtherChildMenus();
|
|
120
|
-
this._closeDropdown();
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
120
|
this._adapter.proxyKeyboardEventToChild(evt, this._identifier);
|
|
124
121
|
return;
|
|
125
122
|
}
|
|
@@ -132,6 +129,7 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
132
129
|
case 'Escape':
|
|
133
130
|
if (this._open) {
|
|
134
131
|
evt.preventDefault();
|
|
132
|
+
evt.stopPropagation();
|
|
135
133
|
this._closeDropdown();
|
|
136
134
|
}
|
|
137
135
|
break;
|
|
@@ -141,7 +139,7 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
141
139
|
this._closeDropdown();
|
|
142
140
|
}
|
|
143
141
|
else {
|
|
144
|
-
this._openDropdown();
|
|
142
|
+
this._openDropdown({ fromKeyboard: true });
|
|
145
143
|
}
|
|
146
144
|
break;
|
|
147
145
|
case 'Home':
|
|
@@ -152,11 +150,13 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
152
150
|
}
|
|
153
151
|
break;
|
|
154
152
|
case 'Enter':
|
|
153
|
+
evt.preventDefault();
|
|
155
154
|
if (!this._open) {
|
|
155
|
+
evt.preventDefault();
|
|
156
|
+
this._openDropdown({ fromKeyboard: true });
|
|
156
157
|
return;
|
|
157
158
|
}
|
|
158
159
|
evt.stopImmediatePropagation();
|
|
159
|
-
evt.preventDefault();
|
|
160
160
|
this._adapter.propagateKey(evt.code);
|
|
161
161
|
// Check if we need to toggle the child menu open state
|
|
162
162
|
const activeIndex = this._adapter.getActiveOptionIndex();
|
|
@@ -172,7 +172,7 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
172
172
|
}
|
|
173
173
|
evt.preventDefault();
|
|
174
174
|
if (!this._open && evt.code === 'ArrowDown') {
|
|
175
|
-
this._openDropdown();
|
|
175
|
+
this._openDropdown({ fromKeyboard: true });
|
|
176
176
|
this._adapter.activateFirstOption();
|
|
177
177
|
return;
|
|
178
178
|
}
|
|
@@ -202,7 +202,7 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
202
202
|
break;
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
|
-
async _openMenu() {
|
|
205
|
+
async _openMenu({ fromKeyboard } = {}) {
|
|
206
206
|
this._open = true;
|
|
207
207
|
let options = [];
|
|
208
208
|
if (typeof this._optionsFactory === 'function') {
|
|
@@ -238,7 +238,8 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
238
238
|
observeScroll: this._observeScroll,
|
|
239
239
|
observeScrollThreshold: this._observeScrollThreshold,
|
|
240
240
|
popupPlacement: this._placement,
|
|
241
|
-
|
|
241
|
+
popupFallbackPlacements: this._fallbackPlacements,
|
|
242
|
+
activeStartIndex: fromKeyboard ? 0 : undefined,
|
|
242
243
|
popupClasses: [
|
|
243
244
|
MENU_CONSTANTS.classes.POPUP,
|
|
244
245
|
MENU_CONSTANTS.classes.MENU,
|
|
@@ -355,14 +356,17 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
355
356
|
this._adapter.setActiveOption(index);
|
|
356
357
|
}
|
|
357
358
|
/** Called when a child menu is closed off of one of our menu options. */
|
|
358
|
-
_onCascadingChildClose() {
|
|
359
|
+
_onCascadingChildClose(index) {
|
|
359
360
|
this._childOpen = false;
|
|
360
361
|
}
|
|
361
362
|
_closeDropdown() {
|
|
362
363
|
this._closeMenu();
|
|
363
364
|
}
|
|
364
|
-
_openDropdown() {
|
|
365
|
-
this._openMenu();
|
|
365
|
+
_openDropdown({ fromKeyboard } = {}) {
|
|
366
|
+
this._openMenu({ fromKeyboard });
|
|
367
|
+
}
|
|
368
|
+
_setCascadeTargetInactive() {
|
|
369
|
+
this._adapter.setCascadeTargetInactive();
|
|
366
370
|
}
|
|
367
371
|
_isOwnElement(element) {
|
|
368
372
|
return this._adapter.isOwnElement(element);
|
|
@@ -373,6 +377,7 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
373
377
|
menu.popupOffset = { x: 0, y: -8 };
|
|
374
378
|
menu.dense = this._dense;
|
|
375
379
|
menu.placement = 'right-start';
|
|
380
|
+
menu.fallbackPlacements = ['left-start', 'right-start']; // Cascading menus should only fallback to left or right placement if needed
|
|
376
381
|
menu.persistSelection = this._persistSelection;
|
|
377
382
|
if (this._persistSelection) {
|
|
378
383
|
menu.selectedValue = this._selectedValue;
|
|
@@ -462,6 +467,12 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
462
467
|
this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.PLACEMENT, this._placement);
|
|
463
468
|
}
|
|
464
469
|
}
|
|
470
|
+
get fallbackPlacements() {
|
|
471
|
+
return this._fallbackPlacements;
|
|
472
|
+
}
|
|
473
|
+
set fallbackPlacements(value) {
|
|
474
|
+
this._fallbackPlacements = Array.isArray(value) ? value : [];
|
|
475
|
+
}
|
|
465
476
|
get dense() {
|
|
466
477
|
return this._dense;
|
|
467
478
|
}
|
package/esm/menu/menu.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface IMenuComponent extends IListDropdownAware {
|
|
|
12
12
|
selectedIndex: number;
|
|
13
13
|
selectedValue: number;
|
|
14
14
|
placement: PopupPlacement;
|
|
15
|
+
fallbackPlacements: PopupPlacement[];
|
|
15
16
|
dense: boolean;
|
|
16
17
|
iconClass: string;
|
|
17
18
|
persistSelection: boolean;
|
|
@@ -20,6 +21,7 @@ export interface IMenuComponent extends IListDropdownAware {
|
|
|
20
21
|
optionBuilder: MenuOptionBuilder | undefined;
|
|
21
22
|
popupElement: HTMLElement | undefined;
|
|
22
23
|
propagateKeyEvent(evt: KeyboardEvent): void;
|
|
24
|
+
activateFirstOption(): void;
|
|
23
25
|
}
|
|
24
26
|
declare global {
|
|
25
27
|
interface HTMLElementTagNameMap {
|
|
@@ -54,6 +56,8 @@ export declare class MenuComponent extends ListDropdownAware implements IMenuCom
|
|
|
54
56
|
selectedValue: any;
|
|
55
57
|
/** Gets/sets the menu placement (default is bottom-left). */
|
|
56
58
|
placement: `${PopupPlacement}`;
|
|
59
|
+
/** Gets/sets the fallback menu placement for overriding the default of any side. */
|
|
60
|
+
fallbackPlacements: `${PopupPlacement}`[];
|
|
57
61
|
/** Gets/sets dense state of the list options used in the menu popup. */
|
|
58
62
|
dense: boolean;
|
|
59
63
|
/** Gets/sets the class name to use for option icons. */
|
|
@@ -65,7 +69,7 @@ export declare class MenuComponent extends ListDropdownAware implements IMenuCom
|
|
|
65
69
|
persistSelection: boolean;
|
|
66
70
|
/** Gets/sets the mode that this menu is using. */
|
|
67
71
|
mode: MenuMode;
|
|
68
|
-
/** Sets the position
|
|
72
|
+
/** Sets the position adjustment on the internal popup element. */
|
|
69
73
|
popupOffset: IPopupPosition;
|
|
70
74
|
/** Sets the callback that will be executed for each option in the dropdown for producing custom option templates. */
|
|
71
75
|
optionBuilder: MenuOptionBuilder;
|
|
@@ -73,4 +77,5 @@ export declare class MenuComponent extends ListDropdownAware implements IMenuCom
|
|
|
73
77
|
popupElement: HTMLElement | undefined;
|
|
74
78
|
/** Force propagates the key event from another element this component. */
|
|
75
79
|
propagateKeyEvent(evt: KeyboardEvent): void;
|
|
80
|
+
activateFirstOption(): void;
|
|
76
81
|
}
|
package/esm/menu/menu.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
|
-
import { attachShadowTemplate, coerceBoolean, CustomElement,
|
|
7
|
+
import { attachShadowTemplate, coerceBoolean, CustomElement, ensureChild, FoundationProperty, isDefined } from '@tylertech/forge-core';
|
|
8
8
|
import { tylIconArrowRight } from '@tylertech/tyler-icons/standard';
|
|
9
9
|
import { CircularProgressComponent } from '../circular-progress';
|
|
10
10
|
import { IconRegistry } from '../icon';
|
|
@@ -47,11 +47,11 @@ let MenuComponent = class MenuComponent extends ListDropdownAware {
|
|
|
47
47
|
];
|
|
48
48
|
}
|
|
49
49
|
connectedCallback() {
|
|
50
|
-
if (this.
|
|
50
|
+
if (this.querySelector(MENU_CONSTANTS.selectors.TOGGLE)) {
|
|
51
51
|
this._foundation.initialize();
|
|
52
52
|
}
|
|
53
53
|
else {
|
|
54
|
-
|
|
54
|
+
ensureChild(this, MENU_CONSTANTS.selectors.TOGGLE).then(() => this._foundation.initialize());
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
@@ -90,6 +90,9 @@ let MenuComponent = class MenuComponent extends ListDropdownAware {
|
|
|
90
90
|
propagateKeyEvent(evt) {
|
|
91
91
|
this._foundation.onKeydown(evt);
|
|
92
92
|
}
|
|
93
|
+
activateFirstOption() {
|
|
94
|
+
this._foundation.activateFirstOption();
|
|
95
|
+
}
|
|
93
96
|
};
|
|
94
97
|
__decorate([
|
|
95
98
|
FoundationProperty()
|
|
@@ -106,6 +109,9 @@ __decorate([
|
|
|
106
109
|
__decorate([
|
|
107
110
|
FoundationProperty()
|
|
108
111
|
], MenuComponent.prototype, "placement", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
FoundationProperty()
|
|
114
|
+
], MenuComponent.prototype, "fallbackPlacements", void 0);
|
|
109
115
|
__decorate([
|
|
110
116
|
FoundationProperty()
|
|
111
117
|
], MenuComponent.prototype, "dense", void 0);
|
|
@@ -32,8 +32,16 @@ export class PopupAdapter extends BaseAdapter {
|
|
|
32
32
|
element: this._component,
|
|
33
33
|
targetElement: this._component.targetElement,
|
|
34
34
|
placement: this._component.placement,
|
|
35
|
-
hide: this._component.hideWhenClipped
|
|
35
|
+
hide: this._component.hideWhenClipped,
|
|
36
|
+
flipOptions: {
|
|
37
|
+
fallbackPlacements: ['top-start', 'top', 'top-end', 'left-start', 'left', 'left-end', 'right-start', 'right', 'right-end'],
|
|
38
|
+
fallbackStrategy: 'initialPlacement'
|
|
39
|
+
}
|
|
36
40
|
};
|
|
41
|
+
const fallbackPlacements = this._component.fallbackPlacements;
|
|
42
|
+
if (fallbackPlacements === null || fallbackPlacements === void 0 ? void 0 : fallbackPlacements.length) {
|
|
43
|
+
config.flipOptions = Object.assign(Object.assign({}, config.flipOptions), { fallbackPlacements });
|
|
44
|
+
}
|
|
37
45
|
if (this._component.offset) {
|
|
38
46
|
config.offset = this._component.offset;
|
|
39
47
|
}
|
|
@@ -14,7 +14,8 @@ const attributes = {
|
|
|
14
14
|
STATIC: 'static',
|
|
15
15
|
HIDE_WHEN_CLIPPED: 'hide-when-clipped',
|
|
16
16
|
HOST: 'forge-popup-host',
|
|
17
|
-
INITIAL_FOCUS: 'forge-popup-focus'
|
|
17
|
+
INITIAL_FOCUS: 'forge-popup-focus',
|
|
18
|
+
CONSTRAIN_VIEWPORT_WIDTH: 'constrain-viewport-width'
|
|
18
19
|
};
|
|
19
20
|
const classes = {
|
|
20
21
|
OPEN: 'forge-popup--open',
|
|
@@ -9,6 +9,7 @@ import { IPopupPosition, PopupAnimationType, PopupPlacement, PopupStateCallback
|
|
|
9
9
|
export interface IPopupFoundation extends ICustomElementFoundation {
|
|
10
10
|
targetElement: HTMLElement;
|
|
11
11
|
placement: PopupPlacement;
|
|
12
|
+
fallbackPlacements: PopupPlacement[];
|
|
12
13
|
open: boolean;
|
|
13
14
|
manageFocus: boolean;
|
|
14
15
|
animationType: PopupAnimationType;
|
|
@@ -23,6 +24,7 @@ export declare class PopupFoundation implements IPopupFoundation {
|
|
|
23
24
|
private _adapter;
|
|
24
25
|
private _targetElement;
|
|
25
26
|
private _placement;
|
|
27
|
+
private _fallbackPlacements;
|
|
26
28
|
private _open;
|
|
27
29
|
private _manageFocus;
|
|
28
30
|
private _animationType;
|
|
@@ -48,6 +50,8 @@ export declare class PopupFoundation implements IPopupFoundation {
|
|
|
48
50
|
set targetElement(element: HTMLElement);
|
|
49
51
|
get placement(): PopupPlacement;
|
|
50
52
|
set placement(value: PopupPlacement);
|
|
53
|
+
get fallbackPlacements(): PopupPlacement[];
|
|
54
|
+
set fallbackPlacements(value: PopupPlacement[]);
|
|
51
55
|
get open(): boolean;
|
|
52
56
|
set open(value: boolean);
|
|
53
57
|
get manageFocus(): boolean;
|
|
@@ -9,6 +9,7 @@ export class PopupFoundation {
|
|
|
9
9
|
constructor(_adapter) {
|
|
10
10
|
this._adapter = _adapter;
|
|
11
11
|
this._placement = 'bottom-start';
|
|
12
|
+
this._fallbackPlacements = [];
|
|
12
13
|
this._open = false;
|
|
13
14
|
this._manageFocus = false;
|
|
14
15
|
this._animationType = PopupAnimationType.None;
|
|
@@ -166,6 +167,12 @@ export class PopupFoundation {
|
|
|
166
167
|
this._adapter.setAttribute(POPUP_CONSTANTS.attributes.PLACEMENT, this._placement);
|
|
167
168
|
}
|
|
168
169
|
}
|
|
170
|
+
get fallbackPlacements() {
|
|
171
|
+
return this._fallbackPlacements;
|
|
172
|
+
}
|
|
173
|
+
set fallbackPlacements(value) {
|
|
174
|
+
this._fallbackPlacements = Array.isArray(value) ? value : [];
|
|
175
|
+
}
|
|
169
176
|
get open() {
|
|
170
177
|
return this._open;
|
|
171
178
|
}
|
package/esm/popup/popup.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { IPopupPosition, IPopupPositionEventData, PopupAnimationType, PopupPlace
|
|
|
8
8
|
export interface IPopupComponent extends IBaseComponent {
|
|
9
9
|
targetElement: HTMLElement;
|
|
10
10
|
placement: PopupPlacement;
|
|
11
|
+
fallbackPlacements: PopupPlacement[];
|
|
11
12
|
open: boolean;
|
|
12
13
|
manageFocus: boolean;
|
|
13
14
|
animationType: `${PopupAnimationType}`;
|
|
@@ -42,6 +43,7 @@ export declare class PopupComponent extends BaseComponent implements IPopupCompo
|
|
|
42
43
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
43
44
|
targetElement: HTMLElement;
|
|
44
45
|
placement: `${PopupPlacement}`;
|
|
46
|
+
fallbackPlacements: `${PopupPlacement}`[];
|
|
45
47
|
open: boolean;
|
|
46
48
|
manageFocus: boolean;
|
|
47
49
|
animationType: `${PopupAnimationType}`;
|
package/esm/popup/popup.js
CHANGED
|
@@ -10,7 +10,7 @@ import { PopupAdapter } from './popup-adapter';
|
|
|
10
10
|
import { POPUP_CONSTANTS } from './popup-constants';
|
|
11
11
|
import { PopupFoundation } from './popup-foundation';
|
|
12
12
|
const template = '<template><div class=\"forge-popup\" part=\"root\"><slot></slot></div></template>';
|
|
13
|
-
const styles = '.forge-popup{min-width:112px;min-width:var(--min-width,112px);background-color:#fff;background-color:var(--forge-theme-elevated-surface,#fff);-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);-webkit-box-shadow:var(--forge-theme-popup-elevation,0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12));box-shadow:var(--forge-theme-popup-elevation,0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12));color:#000;color:var(--mdc-theme-on-surface,#000);border-radius:4px;border-radius:var(--mdc-shape-medium,4px);display:none;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:100%;margin:0;padding:0;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 24px 0;transform-origin:50% 24px 0;opacity:0;will-change:transform,opacity;-webkit-transition:opacity 120ms linear,-webkit-transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,-webkit-transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,transform 120ms cubic-bezier(0, 0, .2, 1),-webkit-transform 120ms cubic-bezier(0, 0, .2, 1)}.forge-popup::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-popup::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-popup::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-popup::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-popup::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-popup::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}.forge-popup--opening{display:block;-webkit-transform:scale(.8);transform:scale(.8);opacity:0}.forge-popup--closed{display:block;opacity:0;-webkit-transition:opacity 120ms linear;transition:opacity 120ms linear}.forge-popup--open{display:block;-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-popup--select{border-top-left-radius:0;border-top-right-radius:0;max-height:256px;overflow-y:auto}:host{z-index:10;z-index:var(--forge-z-index-popup,10);border-radius:4px;border-radius:var(--mdc-shape-medium,4px);display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;position:absolute;overflow:visible}:host([hidden]){display:none}';
|
|
13
|
+
const styles = '.forge-popup{min-width:112px;min-width:var(--min-width,112px);background-color:#fff;background-color:var(--forge-theme-elevated-surface,#fff);-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);-webkit-box-shadow:var(--forge-theme-popup-elevation,0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12));box-shadow:var(--forge-theme-popup-elevation,0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12));color:#000;color:var(--mdc-theme-on-surface,#000);border-radius:4px;border-radius:var(--mdc-shape-medium,4px);display:none;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:100%;margin:0;padding:0;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 24px 0;transform-origin:50% 24px 0;opacity:0;will-change:transform,opacity;-webkit-transition:opacity 120ms linear,-webkit-transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,-webkit-transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,transform 120ms cubic-bezier(0, 0, .2, 1),-webkit-transform 120ms cubic-bezier(0, 0, .2, 1)}.forge-popup::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-popup::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-popup::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-popup::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-popup::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-popup::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}.forge-popup--opening{display:block;-webkit-transform:scale(.8);transform:scale(.8);opacity:0}.forge-popup--closed{display:block;opacity:0;-webkit-transition:opacity 120ms linear;transition:opacity 120ms linear}.forge-popup--open{display:block;-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-popup--select{border-top-left-radius:0;border-top-right-radius:0;max-height:256px;overflow-y:auto}:host{z-index:10;z-index:var(--forge-z-index-popup,10);border-radius:4px;border-radius:var(--mdc-shape-medium,4px);display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;position:absolute;overflow:visible}:host([hidden]){display:none}:host([constrain-viewport-width]){max-width:100vw}';
|
|
14
14
|
/**
|
|
15
15
|
* The web component class behind the `<forge-popup>` custom element.
|
|
16
16
|
*
|
|
@@ -67,6 +67,9 @@ __decorate([
|
|
|
67
67
|
__decorate([
|
|
68
68
|
FoundationProperty()
|
|
69
69
|
], PopupComponent.prototype, "placement", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
FoundationProperty()
|
|
72
|
+
], PopupComponent.prototype, "fallbackPlacements", void 0);
|
|
70
73
|
__decorate([
|
|
71
74
|
FoundationProperty()
|
|
72
75
|
], PopupComponent.prototype, "open", void 0);
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';
|
|
7
7
|
import { IQuantityFieldComponent } from './quantity-field';
|
|
8
8
|
export interface IQuantityFieldAdapter extends IBaseAdapter {
|
|
9
|
+
initializeButtons(): void;
|
|
9
10
|
addRootClass(name: string): void;
|
|
10
11
|
removeRootClass(name: string): void;
|
|
11
12
|
inputHasAttribute(name: string): boolean;
|
|
@@ -38,6 +39,7 @@ export declare class QuantityFieldAdapter extends BaseAdapter<IQuantityFieldComp
|
|
|
38
39
|
private _inputElement;
|
|
39
40
|
private _inputAttributeMutationObserver;
|
|
40
41
|
constructor(component: IQuantityFieldComponent);
|
|
42
|
+
initializeButtons(): void;
|
|
41
43
|
addRootClass(name: string): void;
|
|
42
44
|
removeRootClass(name: string): void;
|
|
43
45
|
inputHasAttribute(name: string): boolean;
|
|
@@ -13,6 +13,14 @@ export class QuantityFieldAdapter extends BaseAdapter {
|
|
|
13
13
|
this._incrementButtonSlot = getShadowElement(this._component, QUANTITY_FIELD_CONSTANTS.selectors.INCREMENT_BUTTON_SLOT);
|
|
14
14
|
this._decrementButtonSlot = getShadowElement(this._component, QUANTITY_FIELD_CONSTANTS.selectors.DECREMENT_BUTTON_SLOT);
|
|
15
15
|
}
|
|
16
|
+
initializeButtons() {
|
|
17
|
+
if (this._incrementButton && !this._incrementButton.hasAttribute('tabindex')) {
|
|
18
|
+
this._incrementButton.tabIndex = -1;
|
|
19
|
+
}
|
|
20
|
+
if (this._decrementButton && !this._decrementButton.hasAttribute('tabindex')) {
|
|
21
|
+
this._decrementButton.tabIndex = -1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
16
24
|
addRootClass(name) {
|
|
17
25
|
this._rootElement.classList.add(name);
|
|
18
26
|
}
|
|
@@ -17,6 +17,7 @@ export class QuantityFieldFoundation {
|
|
|
17
17
|
connect() {
|
|
18
18
|
this._adapter.addInputDisabledAttributeChangeListener(() => this._syncDisabledStateOfButtons());
|
|
19
19
|
this._syncDisabledStateOfButtons();
|
|
20
|
+
this._adapter.initializeButtons();
|
|
20
21
|
}
|
|
21
22
|
disconnect() {
|
|
22
23
|
this._removeIncrementEventListener();
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { CustomElement, attachShadowTemplate, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';
|
|
8
|
+
import { tylIconRemoveCircleOutline, tylIconControlPoint } from '@tylertech/tyler-icons/standard';
|
|
8
9
|
import { QuantityFieldAdapter } from './quantity-field-adapter';
|
|
9
10
|
import { QuantityFieldFoundation } from './quantity-field-foundation';
|
|
10
11
|
import { QUANTITY_FIELD_CONSTANTS } from './quantity-field-constants';
|
|
@@ -12,6 +13,7 @@ import { IconButtonComponent } from '../icon-button';
|
|
|
12
13
|
import { BaseComponent } from '../core/base/base-component';
|
|
13
14
|
const template = '<template><div class=\"forge-quantity-field\" part=\"root\"><slot name=\"label\"></slot><div class=\"forge-quantity-field__row\" part=\"row\"><slot name=\"decrement-button\"></slot><slot></slot><slot name=\"increment-button\"></slot></div><slot name=\"helper-text\"></slot></div></template>';
|
|
14
15
|
const styles = '.forge-quantity-field ::slotted([slot=label]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-quantity-field ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);height:1rem;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-quantity-field ::slotted([slot=helper-text])::before{display:inline-block;width:0;height:16px;content:\"\";vertical-align:0}.forge-quantity-field__row{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center}.forge-quantity-field ::slotted(forge-icon-button:first-of-type){color:var(--mdc-theme-text-secondary-on-light);margin-right:4px}.forge-quantity-field ::slotted(forge-icon-button:last-of-type){color:var(--mdc-theme-text-secondary-on-light);margin-left:4px}.forge-quantity-field ::slotted(forge-text-field){--forge-text-field-margin-top:0;--forge-text-field-margin-bottom:0}.forge-quantity-field--required ::slotted([slot=label])::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:\"*\";margin-right:4px}.forge-quantity-field--invalid ::slotted([slot=label]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-quantity-field--invalid ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);height:1rem;color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-quantity-field--invalid ::slotted([slot=helper-text])::before{display:inline-block;width:0;height:16px;content:\"\";vertical-align:0}:host{display:inline-block}:host([hidden]){display:none}';
|
|
16
|
+
import { IconRegistry } from '../icon';
|
|
15
17
|
/**
|
|
16
18
|
* The web component class behind the `<forge-quantity-field>` custom element.
|
|
17
19
|
*
|
|
@@ -22,6 +24,10 @@ let QuantityFieldComponent = class QuantityFieldComponent extends BaseComponent
|
|
|
22
24
|
super();
|
|
23
25
|
attachShadowTemplate(this, template, styles);
|
|
24
26
|
this._foundation = new QuantityFieldFoundation(new QuantityFieldAdapter(this));
|
|
27
|
+
IconRegistry.define([
|
|
28
|
+
tylIconRemoveCircleOutline,
|
|
29
|
+
tylIconControlPoint
|
|
30
|
+
]);
|
|
25
31
|
}
|
|
26
32
|
static get observedAttributes() {
|
|
27
33
|
return [
|
|
@@ -7,7 +7,7 @@ import { IRadioComponent } from './radio';
|
|
|
7
7
|
import { ForgeRippleCapableSurface } from '../ripple';
|
|
8
8
|
export interface IRadioAdapter {
|
|
9
9
|
connect(): void;
|
|
10
|
-
|
|
10
|
+
deferRippleInitialization(): Promise<void>;
|
|
11
11
|
destroyRipple(): void;
|
|
12
12
|
setHostAttribute(name: string, value?: string): void;
|
|
13
13
|
removeHostAttribute(name: string): void;
|
|
@@ -28,7 +28,7 @@ export interface IRadioAdapter {
|
|
|
28
28
|
}
|
|
29
29
|
export declare class RadioAdapter implements IRadioAdapter, ForgeRippleCapableSurface {
|
|
30
30
|
private _component;
|
|
31
|
-
private
|
|
31
|
+
private _rootElement;
|
|
32
32
|
private _containerElement;
|
|
33
33
|
private _nativeInputElement;
|
|
34
34
|
private _inputAttributeMutationObserver?;
|
|
@@ -38,7 +38,7 @@ export declare class RadioAdapter implements IRadioAdapter, ForgeRippleCapableSu
|
|
|
38
38
|
get unbounded(): boolean | undefined;
|
|
39
39
|
get disabled(): boolean | undefined;
|
|
40
40
|
connect(): void;
|
|
41
|
-
|
|
41
|
+
deferRippleInitialization(): Promise<void>;
|
|
42
42
|
destroyRipple(): void;
|
|
43
43
|
setHostAttribute(name: string, value?: string): void;
|
|
44
44
|
removeHostAttribute(name: string): void;
|
|
@@ -6,15 +6,16 @@
|
|
|
6
6
|
import { addClass, getShadowElement, removeClass, getActiveElement } from '@tylertech/forge-core';
|
|
7
7
|
import { RADIO_CONSTANTS } from './radio-constants';
|
|
8
8
|
import { ForgeRipple, ForgeRippleFoundation } from '../ripple';
|
|
9
|
+
import { userInteractionListener } from '../core/utils';
|
|
9
10
|
export class RadioAdapter {
|
|
10
11
|
constructor(_component) {
|
|
11
12
|
this._component = _component;
|
|
12
|
-
this.
|
|
13
|
+
this._rootElement = getShadowElement(this._component, RADIO_CONSTANTS.selectors.RADIO);
|
|
13
14
|
this._containerElement = getShadowElement(this._component, RADIO_CONSTANTS.selectors.WRAPPER);
|
|
14
15
|
}
|
|
15
16
|
// ForgeRippleCapableSurface
|
|
16
17
|
get root() {
|
|
17
|
-
return this.
|
|
18
|
+
return this._rootElement;
|
|
18
19
|
}
|
|
19
20
|
get unbounded() {
|
|
20
21
|
return true;
|
|
@@ -28,18 +29,19 @@ export class RadioAdapter {
|
|
|
28
29
|
labelElement.setAttribute(RADIO_CONSTANTS.attributes.SLOT, RADIO_CONSTANTS.selectors.LABEL);
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
async deferRippleInitialization() {
|
|
33
|
+
const type = await userInteractionListener(this._rootElement);
|
|
34
|
+
if (!this._rippleInstance) {
|
|
35
|
+
this._rippleInstance = this._createRipple();
|
|
36
|
+
if (type === 'focusin') {
|
|
37
|
+
this._rippleInstance.handleFocus();
|
|
36
38
|
}
|
|
37
|
-
}
|
|
39
|
+
}
|
|
38
40
|
}
|
|
39
41
|
destroyRipple() {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
var _a;
|
|
43
|
+
(_a = this._rippleInstance) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
44
|
+
this._rippleInstance = undefined;
|
|
43
45
|
}
|
|
44
46
|
setHostAttribute(name, value = '') {
|
|
45
47
|
this._component.setAttribute(name, value);
|
|
@@ -48,10 +50,10 @@ export class RadioAdapter {
|
|
|
48
50
|
this._component.removeAttribute(name);
|
|
49
51
|
}
|
|
50
52
|
addRootClass(className) {
|
|
51
|
-
this.
|
|
53
|
+
this._rootElement.classList.add(className);
|
|
52
54
|
}
|
|
53
55
|
removeRootClass(className) {
|
|
54
|
-
this.
|
|
56
|
+
this._rootElement.classList.remove(className);
|
|
55
57
|
}
|
|
56
58
|
addContainerClass(className) {
|
|
57
59
|
this._containerElement.classList.add(className);
|
|
@@ -244,7 +246,7 @@ export class RadioAdapter {
|
|
|
244
246
|
if (this._inputElement) {
|
|
245
247
|
this._inputElement.addEventListener(evtType, handler, { passive: true });
|
|
246
248
|
}
|
|
247
|
-
}, isSurfaceDisabled: () => this._inputElement ? this._inputElement.disabled : false, addClass: (className) => addClass(className, this.
|
|
248
|
-
return new ForgeRipple(this.
|
|
249
|
+
}, isSurfaceDisabled: () => this._inputElement ? this._inputElement.disabled : false, addClass: (className) => addClass(className, this._rootElement), removeClass: (className) => removeClass(className, this._rootElement), updateCssVariable: (varName, value) => this._rootElement.style.setProperty(varName, value) });
|
|
250
|
+
return new ForgeRipple(this._rootElement, new ForgeRippleFoundation(adapter));
|
|
249
251
|
}
|
|
250
252
|
}
|
|
@@ -11,7 +11,7 @@ export class RadioFoundation {
|
|
|
11
11
|
}
|
|
12
12
|
connect() {
|
|
13
13
|
this._adapter.connect();
|
|
14
|
-
this._adapter.
|
|
14
|
+
this._adapter.deferRippleInitialization();
|
|
15
15
|
this._focusListenerCallback = () => this._adapter.syncFocusedStateWithInput();
|
|
16
16
|
this._disabledListenerCallback = () => this._adapter.syncDisabledStateWithInput();
|
|
17
17
|
this._syncRadiogroupCheckStyles = () => this._adapter.syncRadiogroupCheckStyles();
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { MDCRipple, type MDCRippleAdapter, MDCRippleFoundation, type MDCRippleCapableSurface } from '@material/ripple';
|
|
7
7
|
export declare class ForgeRipple extends MDCRipple {
|
|
8
|
+
handleFocus(): void;
|
|
8
9
|
}
|
|
9
10
|
export declare class ForgeRippleFoundation extends MDCRippleFoundation {
|
|
10
11
|
}
|
|
@@ -8,6 +8,7 @@ import { IRippleAdapter } from './ripple-adapter';
|
|
|
8
8
|
export interface IRippleFoundation extends ICustomElementFoundation {
|
|
9
9
|
target: string;
|
|
10
10
|
unbounded: boolean;
|
|
11
|
+
selected: boolean;
|
|
11
12
|
layout(): void;
|
|
12
13
|
activate(): void;
|
|
13
14
|
deactivate(): void;
|
|
@@ -16,6 +17,7 @@ export declare class RippleFoundation implements IRippleFoundation {
|
|
|
16
17
|
private _adapter;
|
|
17
18
|
private _target;
|
|
18
19
|
private _unbounded;
|
|
20
|
+
private _selected;
|
|
19
21
|
constructor(_adapter: IRippleAdapter);
|
|
20
22
|
initialize(): void;
|
|
21
23
|
disconnect(): void;
|
|
@@ -27,4 +29,6 @@ export declare class RippleFoundation implements IRippleFoundation {
|
|
|
27
29
|
set target(value: string);
|
|
28
30
|
get unbounded(): boolean;
|
|
29
31
|
set unbounded(value: boolean);
|
|
32
|
+
get selected(): boolean;
|
|
33
|
+
set selected(value: boolean);
|
|
30
34
|
}
|
|
@@ -7,6 +7,7 @@ export class RippleFoundation {
|
|
|
7
7
|
constructor(_adapter) {
|
|
8
8
|
this._adapter = _adapter;
|
|
9
9
|
this._unbounded = false;
|
|
10
|
+
this._selected = false;
|
|
10
11
|
}
|
|
11
12
|
initialize() {
|
|
12
13
|
this._adapter.initialize(this._target, this._unbounded);
|
|
@@ -45,4 +46,13 @@ export class RippleFoundation {
|
|
|
45
46
|
this._applyTarget();
|
|
46
47
|
}
|
|
47
48
|
}
|
|
49
|
+
get selected() {
|
|
50
|
+
return this._selected;
|
|
51
|
+
}
|
|
52
|
+
set selected(value) {
|
|
53
|
+
if (this._selected !== value) {
|
|
54
|
+
this._selected = value;
|
|
55
|
+
// this._applySelected();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
48
58
|
}
|
package/esm/ripple/ripple.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { BaseComponent, IBaseComponent } from '../core/base/base-component';
|
|
|
7
7
|
export interface IRippleComponent extends IBaseComponent {
|
|
8
8
|
target: string;
|
|
9
9
|
unbounded: boolean;
|
|
10
|
+
selected: boolean;
|
|
10
11
|
layout(): void;
|
|
11
12
|
activate(): void;
|
|
12
13
|
deactivate(): void;
|
|
@@ -33,4 +34,5 @@ export declare class RippleComponent extends BaseComponent implements IRippleCom
|
|
|
33
34
|
deactivate(): void;
|
|
34
35
|
target: string;
|
|
35
36
|
unbounded: boolean;
|
|
37
|
+
selected: boolean;
|
|
36
38
|
}
|