@tylertech/forge 2.21.1 → 2.21.3-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 +2059 -1221
- 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 +1 -1
- package/dist/esm/button-toggle/button-toggle/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/dist/esm/button-toggle/index.js +1 -1
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
- package/dist/esm/calendar/calendar-menu/index.js +1 -1
- package/dist/esm/calendar/index.js +1 -1
- package/dist/esm/card/index.js +1 -1
- package/dist/esm/checkbox/index.js +1 -1
- package/dist/esm/chip-field/index.js +1 -1
- package/dist/esm/chips/chip/index.js +1 -1
- package/dist/esm/chips/chip-set/index.js +1 -1
- package/dist/esm/chips/index.js +1 -1
- package/dist/esm/chunks/{chunk.6ATSOUJQ.js → chunk.2PPBLQZB.js} +2 -2
- package/dist/esm/chunks/{chunk.4R6NK524.js → chunk.2XZ6BY33.js} +2 -2
- package/dist/esm/chunks/{chunk.D43PPRFO.js → chunk.3463HRWW.js} +2 -2
- package/dist/esm/chunks/{chunk.L3SL4NW6.js → chunk.3JJ5BNQS.js} +2 -2
- package/dist/esm/chunks/{chunk.76PI42C5.js → chunk.3PWL5O53.js} +2 -2
- package/dist/esm/chunks/{chunk.NMKDIHFB.js → chunk.4OWKFHAE.js} +2 -2
- package/dist/esm/chunks/{chunk.2GDEYC4V.js → chunk.4TDZGLY4.js} +2 -2
- package/dist/esm/chunks/{chunk.TBSCULSM.js → chunk.4VOG3DHT.js} +2 -2
- package/dist/esm/chunks/{chunk.TBSCULSM.js.map → chunk.4VOG3DHT.js.map} +1 -1
- package/dist/esm/chunks/chunk.4W3D3MDK.js +7 -0
- package/dist/esm/chunks/chunk.4W3D3MDK.js.map +7 -0
- package/dist/esm/chunks/chunk.5ESMU755.js +7 -0
- package/dist/esm/chunks/chunk.5ESMU755.js.map +7 -0
- package/dist/esm/chunks/chunk.5QKZUMJK.js +7 -0
- package/dist/esm/chunks/chunk.5QKZUMJK.js.map +7 -0
- package/dist/esm/chunks/chunk.5YRBAF55.js +7 -0
- package/dist/esm/chunks/{chunk.45KYMP5J.js.map → chunk.5YRBAF55.js.map} +1 -1
- package/dist/esm/chunks/{chunk.5E2BG6O3.js → chunk.62E3LRCI.js} +2 -2
- package/dist/esm/chunks/{chunk.JCDIPDQR.js → chunk.6N2DTQEX.js} +2 -2
- package/dist/esm/chunks/{chunk.F5CFD2NG.js → chunk.6P5FHZUS.js} +2 -2
- package/dist/esm/chunks/{chunk.3FAYFYXF.js → chunk.6PDOZYVS.js} +2 -2
- package/dist/esm/chunks/chunk.6YHMCE3A.js +12 -0
- package/dist/esm/chunks/chunk.7BPT4PPX.js +7 -0
- package/dist/esm/chunks/{chunk.PWHMNJ5Y.js.map → chunk.7BPT4PPX.js.map} +3 -3
- package/dist/esm/chunks/{chunk.7IHNVPY5.js → chunk.A52AXPOG.js} +2 -2
- package/dist/esm/chunks/{chunk.7IHNVPY5.js.map → chunk.A52AXPOG.js.map} +3 -3
- package/dist/esm/chunks/{chunk.RUK5PIER.js → chunk.AAU5YRKV.js} +2 -2
- package/dist/esm/chunks/{chunk.NLXSZNQI.js → chunk.AP2U5NXZ.js} +2 -2
- package/dist/esm/chunks/{chunk.JD4APKZS.js → chunk.APHQBFX2.js} +2 -2
- package/dist/esm/chunks/chunk.AZIQUHDG.js +7 -0
- package/dist/esm/chunks/chunk.AZIQUHDG.js.map +7 -0
- package/dist/esm/chunks/{chunk.PKVY6EWM.js → chunk.BDIZD35A.js} +2 -2
- package/dist/esm/chunks/{chunk.3YT72ZWJ.js → chunk.BLXQYTBF.js} +2 -2
- package/dist/esm/chunks/chunk.BTJNWEJC.js +7 -0
- package/dist/esm/chunks/chunk.BTJNWEJC.js.map +7 -0
- package/dist/esm/chunks/{chunk.GQCUI7YS.js → chunk.BZOB3WK3.js} +2 -2
- package/dist/esm/chunks/{chunk.QOA2O575.js → chunk.CP3RUPXU.js} +2 -2
- package/dist/esm/chunks/chunk.D4DZUGEV.js +7 -0
- package/dist/esm/chunks/chunk.D4DZUGEV.js.map +7 -0
- package/dist/esm/chunks/{chunk.F5LXG5X7.js → chunk.DKTVITIN.js} +2 -2
- package/dist/esm/chunks/{chunk.OEZZ2NEY.js → chunk.DMNCQ65M.js} +2 -2
- package/dist/esm/chunks/chunk.DMVVKGUE.js +7 -0
- package/dist/esm/chunks/chunk.DMVVKGUE.js.map +7 -0
- package/dist/esm/chunks/chunk.DXKC3WSJ.js +7 -0
- package/dist/esm/chunks/chunk.DXKC3WSJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.Y2I2VRMF.js → chunk.EWODE3XY.js} +2 -2
- package/dist/esm/chunks/{chunk.G6GRI7UL.js → chunk.F2BTDJGX.js} +2 -2
- package/dist/esm/chunks/chunk.F44B5HVQ.js +7 -0
- package/dist/esm/chunks/chunk.F44B5HVQ.js.map +7 -0
- package/dist/esm/chunks/chunk.F4V3I2N6.js +7 -0
- package/dist/esm/chunks/chunk.F4V3I2N6.js.map +7 -0
- package/dist/esm/chunks/{chunk.42QTJZSF.js → chunk.FHVUINRK.js} +2 -2
- package/dist/esm/chunks/{chunk.44WDRTRR.js → chunk.FYRB5HEB.js} +2 -2
- package/dist/esm/chunks/{chunk.J2PHUKSR.js → chunk.G237CWYN.js} +2 -2
- package/dist/esm/chunks/{chunk.UQTJSPU4.js → chunk.G32SGSIY.js} +2 -2
- package/dist/esm/chunks/{chunk.PADHAJLS.js → chunk.H453YDP7.js} +2 -2
- package/dist/esm/chunks/{chunk.DPZU5F27.js → chunk.HANVBHOC.js} +2 -2
- package/dist/esm/chunks/{chunk.BL4IBI6G.js → chunk.HURHZXUW.js} +2 -2
- package/dist/esm/chunks/{chunk.XQ5CDWDY.js → chunk.HXNVTFM2.js} +2 -2
- package/dist/esm/chunks/{chunk.SAQSXX2T.js → chunk.I57ANSQV.js} +2 -2
- package/dist/esm/chunks/{chunk.Y7YPNMPI.js → chunk.IAIRKZA4.js} +2 -2
- package/dist/esm/chunks/{chunk.Y7YPNMPI.js.map → chunk.IAIRKZA4.js.map} +2 -2
- package/dist/esm/chunks/{chunk.73GVVX4K.js → chunk.IBUO2ECP.js} +2 -2
- package/dist/esm/chunks/{chunk.73GVVX4K.js.map → chunk.IBUO2ECP.js.map} +2 -2
- package/dist/esm/chunks/chunk.IEHJRFK3.js +7 -0
- package/dist/esm/chunks/chunk.IEHJRFK3.js.map +7 -0
- package/dist/esm/chunks/{chunk.6G4DOKR2.js → chunk.IF6EQQHS.js} +2 -2
- package/dist/esm/chunks/{chunk.6G4DOKR2.js.map → chunk.IF6EQQHS.js.map} +2 -2
- package/dist/esm/chunks/{chunk.FPLHVO6D.js → chunk.IXERIVWC.js} +2 -2
- package/dist/esm/chunks/{chunk.AIUIUCZH.js → chunk.J5RH7JNF.js} +2 -2
- package/dist/esm/chunks/{chunk.YJTE34LC.js → chunk.JS3EC7ZT.js} +2 -2
- package/dist/esm/chunks/{chunk.67G7HT5S.js → chunk.K256XE5K.js} +2 -2
- package/dist/esm/chunks/{chunk.APHMTBRQ.js → chunk.KXJTDCIF.js} +2 -2
- package/dist/esm/chunks/chunk.KZJYLYWN.js +7 -0
- package/dist/esm/chunks/chunk.KZJYLYWN.js.map +7 -0
- package/dist/esm/chunks/{chunk.IV2GMOPB.js → chunk.LDHCZ2XZ.js} +2 -2
- package/dist/esm/chunks/{chunk.6TTAKWXI.js → chunk.LFNRRMUA.js} +2 -2
- package/dist/esm/chunks/{chunk.FCTKNIBN.js → chunk.LLOJKGBZ.js} +2 -2
- package/dist/esm/chunks/{chunk.FCTKNIBN.js.map → chunk.LLOJKGBZ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.3C44DXZ2.js → chunk.LWKEQQSZ.js} +2 -2
- package/dist/esm/chunks/{chunk.7K44O5RO.js → chunk.LZRRQRLQ.js} +2 -2
- package/dist/esm/chunks/{chunk.LM57IEFE.js → chunk.MJRCAYWO.js} +2 -2
- package/dist/esm/chunks/{chunk.K7HRCGML.js → chunk.MQLALZA2.js} +2 -2
- package/dist/esm/chunks/chunk.MQMORXQE.js +7 -0
- package/dist/esm/chunks/chunk.MQMORXQE.js.map +7 -0
- package/dist/esm/chunks/{chunk.ON2K3O3I.js → chunk.N65R3467.js} +2 -2
- package/dist/esm/chunks/{chunk.3IXTRC6Z.js → chunk.NHG22ATF.js} +2 -2
- package/dist/esm/chunks/{chunk.7SULS4D2.js → chunk.OHFGFCWK.js} +2 -2
- package/dist/esm/chunks/{chunk.43RHBWGI.js → chunk.ONZWRAL2.js} +2 -2
- package/dist/esm/chunks/{chunk.TH7RLTJK.js → chunk.OSLPQH7C.js} +2 -2
- package/dist/esm/chunks/chunk.OWDH3AE3.js +7 -0
- package/dist/esm/chunks/chunk.OWDH3AE3.js.map +7 -0
- package/dist/esm/chunks/{chunk.XTMXGKUO.js → chunk.P2OQZWGG.js} +2 -2
- package/dist/esm/chunks/{chunk.L52XPVYZ.js → chunk.P4SR3CV7.js} +2 -2
- package/dist/esm/chunks/{chunk.KII37K76.js → chunk.P5ZQZKFX.js} +2 -2
- package/dist/esm/chunks/chunk.PDH27IKB.js +7 -0
- package/dist/esm/chunks/{chunk.VTB27IL7.js → chunk.Q7R5XWS7.js} +2 -2
- package/dist/esm/chunks/chunk.RX7IOKBK.js +7 -0
- package/dist/esm/chunks/chunk.RX7IOKBK.js.map +7 -0
- package/dist/esm/chunks/{chunk.COS4RDZB.js → chunk.SSJFLG7R.js} +2 -2
- package/dist/esm/chunks/{chunk.KQK2XX5H.js → chunk.TDF42HNZ.js} +2 -2
- package/dist/esm/chunks/chunk.TF4DRMEL.js +7 -0
- package/dist/esm/chunks/chunk.TF4DRMEL.js.map +7 -0
- package/dist/esm/chunks/{chunk.IZSUW7WG.js → chunk.TJDJHXUO.js} +2 -2
- package/dist/esm/chunks/{chunk.CX7MOSLM.js → chunk.TMLHKTB4.js} +2 -2
- package/dist/esm/chunks/{chunk.BINM3NUA.js → chunk.TNCZEZGT.js} +2 -2
- package/dist/esm/chunks/chunk.TQARIRN7.js +7 -0
- package/dist/esm/chunks/chunk.TQARIRN7.js.map +7 -0
- package/dist/esm/chunks/{chunk.AZFF62ZK.js → chunk.TTONWP6R.js} +2 -2
- package/dist/esm/chunks/{chunk.SFTWKDQV.js → chunk.TTZZQ2LC.js} +2 -2
- package/dist/esm/chunks/{chunk.N6XHXCZE.js → chunk.UJ4YJO2U.js} +2 -2
- package/dist/esm/chunks/chunk.V5DI7JR6.js +7 -0
- package/dist/esm/chunks/chunk.VJA7DAS7.js +29 -0
- package/dist/esm/chunks/chunk.VJA7DAS7.js.map +7 -0
- package/dist/esm/chunks/{chunk.UVL4TIK2.js → chunk.VPGS3ZWT.js} +2 -2
- package/dist/esm/chunks/{chunk.M6PJ3PNN.js → chunk.VPIPNSLG.js} +2 -2
- package/dist/esm/chunks/chunk.WFOTCL2T.js +7 -0
- package/dist/esm/chunks/chunk.WFOTCL2T.js.map +7 -0
- package/dist/esm/chunks/{chunk.M2ATVI24.js → chunk.WGYEDOPA.js} +2 -2
- package/dist/esm/chunks/chunk.WJ7SH5VI.js +7 -0
- package/dist/esm/chunks/{chunk.IWICN773.js → chunk.WMGXMDNO.js} +2 -2
- package/dist/esm/chunks/{chunk.H3IPTBWM.js → chunk.XNNDCXKG.js} +2 -2
- package/dist/esm/chunks/chunk.XPW5QMOA.js +7 -0
- package/dist/esm/chunks/{chunk.MXVJSEF3.js.map → chunk.XPW5QMOA.js.map} +1 -1
- package/dist/esm/chunks/{chunk.EMV7JGHB.js → chunk.Y5KHNONH.js} +2 -2
- package/dist/esm/chunks/{chunk.WOTVTBJS.js → chunk.ZA5NG3NP.js} +2 -2
- package/dist/esm/chunks/{chunk.2T6HVSO4.js → chunk.ZFXDVJUN.js} +2 -2
- package/dist/esm/chunks/{chunk.ZCQO3N25.js → chunk.ZIABFRW3.js} +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/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/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/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/esm/autocomplete/autocomplete.d.ts +8 -2
- package/esm/button/button.d.ts +1 -0
- package/esm/button/button.js +18 -7
- package/esm/button-area/button-area-adapter.d.ts +3 -1
- package/esm/button-area/button-area-adapter.js +14 -5
- package/esm/button-area/button-area-foundation.js +1 -0
- package/esm/calendar/calendar-foundation.js +22 -18
- package/esm/calendar/calendar.d.ts +1 -0
- package/esm/checkbox/checkbox-adapter.d.ts +1 -0
- package/esm/checkbox/checkbox-adapter.js +18 -7
- package/esm/core/base/base-adapter.d.ts +4 -2
- package/esm/core/base/base-adapter.js +3 -0
- package/esm/core/utils/utils.d.ts +5 -2
- package/esm/core/utils/utils.js +21 -6
- package/esm/date-picker/base/base-date-picker-adapter.js +1 -3
- package/esm/date-picker/base/base-date-picker-foundation.js +6 -0
- package/esm/dialog/dialog-adapter.d.ts +2 -0
- package/esm/dialog/dialog-adapter.js +14 -0
- package/esm/dialog/dialog-foundation.js +1 -0
- package/esm/icon-button/icon-button.d.ts +2 -0
- package/esm/icon-button/icon-button.js +31 -7
- package/esm/list/list/list-adapter.d.ts +2 -6
- package/esm/list/list/list-adapter.js +29 -18
- package/esm/list/list/list-constants.d.ts +2 -2
- package/esm/list/list/list-constants.js +3 -3
- package/esm/list/list/list-foundation.js +6 -0
- package/esm/list/list-item/list-item-adapter.d.ts +3 -3
- package/esm/list/list-item/list-item-adapter.js +3 -3
- package/esm/list/list-item/list-item-foundation.d.ts +1 -0
- package/esm/list/list-item/list-item-foundation.js +12 -2
- package/esm/menu/menu-foundation.js +1 -0
- package/esm/menu/menu.d.ts +4 -1
- package/esm/open-icon/open-icon.js +2 -2
- package/esm/paginator/paginator-adapter.d.ts +6 -2
- package/esm/paginator/paginator-adapter.js +34 -54
- package/esm/paginator/paginator-constants.d.ts +1 -1
- package/esm/paginator/paginator-foundation.js +7 -17
- package/esm/radio/radio-adapter.d.ts +1 -0
- package/esm/radio/radio-adapter.js +18 -7
- package/esm/ripple/forge-ripple.d.ts +2 -0
- package/esm/ripple/forge-ripple.js +4 -0
- package/esm/select/core/base-select.d.ts +4 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/switch/switch.js +15 -2
- package/esm/tooltip/tooltip.d.ts +1 -0
- package/package.json +3 -3
- package/dist/esm/chunks/chunk.45KYMP5J.js +0 -7
- package/dist/esm/chunks/chunk.4CWMNWZU.js +0 -7
- package/dist/esm/chunks/chunk.4CWMNWZU.js.map +0 -7
- package/dist/esm/chunks/chunk.5KC43VFL.js +0 -7
- package/dist/esm/chunks/chunk.5KC43VFL.js.map +0 -7
- package/dist/esm/chunks/chunk.7BAO5IED.js +0 -7
- package/dist/esm/chunks/chunk.7NHFZL6J.js +0 -7
- package/dist/esm/chunks/chunk.AHDIUCUB.js +0 -7
- package/dist/esm/chunks/chunk.AHDIUCUB.js.map +0 -7
- package/dist/esm/chunks/chunk.CE6NTUWI.js +0 -7
- package/dist/esm/chunks/chunk.CE6NTUWI.js.map +0 -7
- package/dist/esm/chunks/chunk.DLALEZ73.js +0 -7
- package/dist/esm/chunks/chunk.DLALEZ73.js.map +0 -7
- package/dist/esm/chunks/chunk.DYF2MREZ.js +0 -7
- package/dist/esm/chunks/chunk.DYF2MREZ.js.map +0 -7
- package/dist/esm/chunks/chunk.HOXFK44F.js +0 -7
- package/dist/esm/chunks/chunk.HOXFK44F.js.map +0 -7
- package/dist/esm/chunks/chunk.ITXUKOKJ.js +0 -7
- package/dist/esm/chunks/chunk.ITXUKOKJ.js.map +0 -7
- package/dist/esm/chunks/chunk.MXVJSEF3.js +0 -7
- package/dist/esm/chunks/chunk.PWHMNJ5Y.js +0 -7
- package/dist/esm/chunks/chunk.Q7HX26UO.js +0 -7
- package/dist/esm/chunks/chunk.Q7HX26UO.js.map +0 -7
- package/dist/esm/chunks/chunk.QZ2NXIGY.js +0 -7
- package/dist/esm/chunks/chunk.QZ2NXIGY.js.map +0 -7
- package/dist/esm/chunks/chunk.RD7SYOAI.js +0 -12
- package/dist/esm/chunks/chunk.RLWX5BFQ.js +0 -7
- package/dist/esm/chunks/chunk.RLWX5BFQ.js.map +0 -7
- package/dist/esm/chunks/chunk.SXTM6OK4.js +0 -7
- package/dist/esm/chunks/chunk.SXTM6OK4.js.map +0 -7
- package/dist/esm/chunks/chunk.UHU4FUIS.js +0 -7
- package/dist/esm/chunks/chunk.VT2QJ7SM.js +0 -29
- package/dist/esm/chunks/chunk.VT2QJ7SM.js.map +0 -7
- package/dist/esm/chunks/chunk.Y66GSZJB.js +0 -7
- package/dist/esm/chunks/chunk.Y66GSZJB.js.map +0 -7
- package/dist/esm/chunks/chunk.YG24YPYO.js +0 -7
- package/dist/esm/chunks/chunk.YG24YPYO.js.map +0 -7
- /package/dist/esm/chunks/{chunk.6ATSOUJQ.js.map → chunk.2PPBLQZB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4R6NK524.js.map → chunk.2XZ6BY33.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.D43PPRFO.js.map → chunk.3463HRWW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.L3SL4NW6.js.map → chunk.3JJ5BNQS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.76PI42C5.js.map → chunk.3PWL5O53.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NMKDIHFB.js.map → chunk.4OWKFHAE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2GDEYC4V.js.map → chunk.4TDZGLY4.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5E2BG6O3.js.map → chunk.62E3LRCI.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JCDIPDQR.js.map → chunk.6N2DTQEX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.F5CFD2NG.js.map → chunk.6P5FHZUS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3FAYFYXF.js.map → chunk.6PDOZYVS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RD7SYOAI.js.map → chunk.6YHMCE3A.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RUK5PIER.js.map → chunk.AAU5YRKV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NLXSZNQI.js.map → chunk.AP2U5NXZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JD4APKZS.js.map → chunk.APHQBFX2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PKVY6EWM.js.map → chunk.BDIZD35A.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3YT72ZWJ.js.map → chunk.BLXQYTBF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GQCUI7YS.js.map → chunk.BZOB3WK3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QOA2O575.js.map → chunk.CP3RUPXU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.F5LXG5X7.js.map → chunk.DKTVITIN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OEZZ2NEY.js.map → chunk.DMNCQ65M.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Y2I2VRMF.js.map → chunk.EWODE3XY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.G6GRI7UL.js.map → chunk.F2BTDJGX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.42QTJZSF.js.map → chunk.FHVUINRK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.44WDRTRR.js.map → chunk.FYRB5HEB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.J2PHUKSR.js.map → chunk.G237CWYN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UQTJSPU4.js.map → chunk.G32SGSIY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PADHAJLS.js.map → chunk.H453YDP7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DPZU5F27.js.map → chunk.HANVBHOC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BL4IBI6G.js.map → chunk.HURHZXUW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XQ5CDWDY.js.map → chunk.HXNVTFM2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SAQSXX2T.js.map → chunk.I57ANSQV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FPLHVO6D.js.map → chunk.IXERIVWC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AIUIUCZH.js.map → chunk.J5RH7JNF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YJTE34LC.js.map → chunk.JS3EC7ZT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.67G7HT5S.js.map → chunk.K256XE5K.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.APHMTBRQ.js.map → chunk.KXJTDCIF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IV2GMOPB.js.map → chunk.LDHCZ2XZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6TTAKWXI.js.map → chunk.LFNRRMUA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3C44DXZ2.js.map → chunk.LWKEQQSZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7K44O5RO.js.map → chunk.LZRRQRLQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LM57IEFE.js.map → chunk.MJRCAYWO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.K7HRCGML.js.map → chunk.MQLALZA2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ON2K3O3I.js.map → chunk.N65R3467.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3IXTRC6Z.js.map → chunk.NHG22ATF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7SULS4D2.js.map → chunk.OHFGFCWK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.43RHBWGI.js.map → chunk.ONZWRAL2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TH7RLTJK.js.map → chunk.OSLPQH7C.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XTMXGKUO.js.map → chunk.P2OQZWGG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.L52XPVYZ.js.map → chunk.P4SR3CV7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KII37K76.js.map → chunk.P5ZQZKFX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7NHFZL6J.js.map → chunk.PDH27IKB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VTB27IL7.js.map → chunk.Q7R5XWS7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.COS4RDZB.js.map → chunk.SSJFLG7R.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KQK2XX5H.js.map → chunk.TDF42HNZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IZSUW7WG.js.map → chunk.TJDJHXUO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CX7MOSLM.js.map → chunk.TMLHKTB4.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BINM3NUA.js.map → chunk.TNCZEZGT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AZFF62ZK.js.map → chunk.TTONWP6R.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SFTWKDQV.js.map → chunk.TTZZQ2LC.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.N6XHXCZE.js.map → chunk.UJ4YJO2U.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7BAO5IED.js.map → chunk.V5DI7JR6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UVL4TIK2.js.map → chunk.VPGS3ZWT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.M6PJ3PNN.js.map → chunk.VPIPNSLG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.M2ATVI24.js.map → chunk.WGYEDOPA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UHU4FUIS.js.map → chunk.WJ7SH5VI.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IWICN773.js.map → chunk.WMGXMDNO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.H3IPTBWM.js.map → chunk.XNNDCXKG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.EMV7JGHB.js.map → chunk.Y5KHNONH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WOTVTBJS.js.map → chunk.ZA5NG3NP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2T6HVSO4.js.map → chunk.ZFXDVJUN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZCQO3N25.js.map → chunk.ZIABFRW3.js.map} +0 -0
|
@@ -1170,21 +1170,16 @@ export class CalendarFoundation {
|
|
|
1170
1170
|
const year = date.getFullYear();
|
|
1171
1171
|
const month = date.getMonth();
|
|
1172
1172
|
this._focusedDate = date;
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
if (this._view !== 'date') {
|
|
1179
|
-
this._closeMenu(false, setFocus);
|
|
1180
|
-
}
|
|
1181
|
-
else {
|
|
1182
|
-
this._resetDateGrid();
|
|
1183
|
-
}
|
|
1184
|
-
}
|
|
1185
|
-
else if (this._view !== 'date') {
|
|
1173
|
+
this._month = month;
|
|
1174
|
+
this._setMonth();
|
|
1175
|
+
this._year = year;
|
|
1176
|
+
this._setYear();
|
|
1177
|
+
if (this._view !== 'date') {
|
|
1186
1178
|
this._closeMenu(false, setFocus);
|
|
1187
1179
|
}
|
|
1180
|
+
else {
|
|
1181
|
+
this._resetDateGrid();
|
|
1182
|
+
}
|
|
1188
1183
|
this._adapter.setActiveDate(date, setFocus, this._preventFocus);
|
|
1189
1184
|
this._emitFocusChangeEvent(this._focusedDate);
|
|
1190
1185
|
}
|
|
@@ -1471,9 +1466,13 @@ export class CalendarFoundation {
|
|
|
1471
1466
|
}
|
|
1472
1467
|
_applyMin() {
|
|
1473
1468
|
this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.MIN, !!this._minAttribute, this._minAttribute);
|
|
1474
|
-
if (this._min
|
|
1475
|
-
|
|
1476
|
-
|
|
1469
|
+
if (this._min) {
|
|
1470
|
+
const minFirstOfMonth = new Date(this._min.getFullYear(), this._min.getMonth(), 1);
|
|
1471
|
+
const currentFirstOfMonth = new Date(this._year, this._month, 1);
|
|
1472
|
+
if (minFirstOfMonth > currentFirstOfMonth) {
|
|
1473
|
+
this._year = this._min.getFullYear();
|
|
1474
|
+
this._month = this._min.getMonth();
|
|
1475
|
+
}
|
|
1477
1476
|
}
|
|
1478
1477
|
if (this._isInitialized) {
|
|
1479
1478
|
this._applyDisabledDates();
|
|
@@ -1487,8 +1486,13 @@ export class CalendarFoundation {
|
|
|
1487
1486
|
}
|
|
1488
1487
|
_applyMax() {
|
|
1489
1488
|
this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.MAX, !!this._maxAttribute, this._maxAttribute);
|
|
1490
|
-
if (this._max
|
|
1491
|
-
|
|
1489
|
+
if (this._max) {
|
|
1490
|
+
const maxFirstOfMonth = new Date(this._max.getFullYear(), this._max.getMonth(), 1);
|
|
1491
|
+
const currentFirstOfMonth = new Date(this._year, this._month, 1);
|
|
1492
|
+
if (maxFirstOfMonth < currentFirstOfMonth) {
|
|
1493
|
+
this._year = this._max.getFullYear();
|
|
1494
|
+
this._month = this._max.getMonth();
|
|
1495
|
+
}
|
|
1492
1496
|
}
|
|
1493
1497
|
if (this._isInitialized) {
|
|
1494
1498
|
this._applyDisabledDates();
|
|
@@ -53,6 +53,7 @@ export declare class CalendarComponent extends HTMLElement implements ICalendarC
|
|
|
53
53
|
connectedCallback(): void;
|
|
54
54
|
disconnectedCallback(): void;
|
|
55
55
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
56
|
+
/** readonly */
|
|
56
57
|
activeDate: Date;
|
|
57
58
|
allowSingleDateRange: boolean;
|
|
58
59
|
clearButton: boolean;
|
|
@@ -35,6 +35,7 @@ export declare class CheckboxAdapter extends BaseAdapter<ICheckboxComponent> imp
|
|
|
35
35
|
private _inputBlurHandler;
|
|
36
36
|
private _inputMutationObserver;
|
|
37
37
|
private _rippleInstance;
|
|
38
|
+
private _destroyUserInteractionListener;
|
|
38
39
|
constructor(component: ICheckboxComponent);
|
|
39
40
|
get root(): Element;
|
|
40
41
|
get unbounded(): boolean | undefined;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { addClass, getShadowElement, removeClass } from '@tylertech/forge-core';
|
|
7
|
-
import {
|
|
7
|
+
import { createUserInteractionListener } from '../core';
|
|
8
8
|
import { BaseAdapter } from '../core/base/base-adapter';
|
|
9
9
|
import { ForgeRipple, ForgeRippleFoundation } from '../ripple';
|
|
10
10
|
import { CHECKBOX_CONSTANTS } from './checkbox-constants';
|
|
@@ -28,12 +28,19 @@ export class CheckboxAdapter extends BaseAdapter {
|
|
|
28
28
|
this._deferRippleInitialization();
|
|
29
29
|
}
|
|
30
30
|
async _deferRippleInitialization() {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
if (typeof this._destroyUserInteractionListener === 'function') {
|
|
32
|
+
this._destroyUserInteractionListener();
|
|
33
|
+
}
|
|
34
|
+
const { userInteraction, destroy } = createUserInteractionListener(this._rootElement);
|
|
35
|
+
this._destroyUserInteractionListener = destroy;
|
|
36
|
+
const { type } = await userInteraction;
|
|
37
|
+
this._destroyUserInteractionListener = undefined;
|
|
38
|
+
if (!this.isConnected) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this._rippleInstance = this._createRipple();
|
|
42
|
+
if (type === 'focusin') {
|
|
43
|
+
this._rippleInstance.handleFocus();
|
|
37
44
|
}
|
|
38
45
|
}
|
|
39
46
|
setDense(value) {
|
|
@@ -71,6 +78,10 @@ export class CheckboxAdapter extends BaseAdapter {
|
|
|
71
78
|
this._component.removeAttribute(name);
|
|
72
79
|
}
|
|
73
80
|
disconnect() {
|
|
81
|
+
if (typeof this._destroyUserInteractionListener === 'function') {
|
|
82
|
+
this._destroyUserInteractionListener();
|
|
83
|
+
this._destroyUserInteractionListener = undefined;
|
|
84
|
+
}
|
|
74
85
|
if (this._labelElement) {
|
|
75
86
|
this._labelElement.removeAttribute(CHECKBOX_CONSTANTS.attributes.SLOT);
|
|
76
87
|
}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { IBaseComponent } from './base-component';
|
|
7
|
-
export interface IBaseAdapter {
|
|
7
|
+
export interface IBaseAdapter<T extends HTMLElement = HTMLElement> {
|
|
8
|
+
readonly hostElement: T;
|
|
8
9
|
readonly isConnected: boolean;
|
|
9
10
|
removeHostAttribute(name: string): void;
|
|
10
11
|
getHostAttribute(name: string): string | null;
|
|
@@ -21,9 +22,10 @@ export interface IBaseAdapter {
|
|
|
21
22
|
setBodyAttribute(name: string, value: string): void;
|
|
22
23
|
removeBodyAttribute(name: string): void;
|
|
23
24
|
}
|
|
24
|
-
export declare class BaseAdapter<T extends IBaseComponent> implements IBaseAdapter {
|
|
25
|
+
export declare class BaseAdapter<T extends IBaseComponent> implements IBaseAdapter<T> {
|
|
25
26
|
protected _component: T;
|
|
26
27
|
constructor(_component: T);
|
|
28
|
+
get hostElement(): T;
|
|
27
29
|
getHostAttribute(name: string): string | null;
|
|
28
30
|
setHostAttribute(name: string, value?: string): void;
|
|
29
31
|
removeHostAttribute(name: string): void;
|
|
@@ -18,11 +18,14 @@ export declare function highlightTextHTML(label: string, highlightText: string):
|
|
|
18
18
|
* @param capture Whether to use capturing listeners or not.
|
|
19
19
|
* @returns A `Promise` that will be resolved when either of the listeners has executed.
|
|
20
20
|
*/
|
|
21
|
-
export declare function
|
|
21
|
+
export declare function createUserInteractionListener(element: HTMLElement, { capture, pointerenter, focusin }?: {
|
|
22
22
|
capture?: boolean | undefined;
|
|
23
23
|
pointerenter?: boolean | undefined;
|
|
24
24
|
focusin?: boolean | undefined;
|
|
25
|
-
}):
|
|
25
|
+
}): {
|
|
26
|
+
userInteraction: Promise<Event>;
|
|
27
|
+
destroy: () => void;
|
|
28
|
+
};
|
|
26
29
|
/**
|
|
27
30
|
* Converts a percent value to pixels.
|
|
28
31
|
* @param amount A percent value.
|
package/esm/core/utils/utils.js
CHANGED
|
@@ -33,20 +33,34 @@ export function highlightTextHTML(label, highlightText) {
|
|
|
33
33
|
* @param capture Whether to use capturing listeners or not.
|
|
34
34
|
* @returns A `Promise` that will be resolved when either of the listeners has executed.
|
|
35
35
|
*/
|
|
36
|
-
export function
|
|
37
|
-
|
|
36
|
+
export function createUserInteractionListener(element, { capture = true, pointerenter = true, focusin = true } = {}) {
|
|
37
|
+
let destroyFn;
|
|
38
|
+
const destroy = () => {
|
|
39
|
+
if (typeof destroyFn === 'function') {
|
|
40
|
+
destroyFn();
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const userInteraction = new Promise(resolve => {
|
|
38
44
|
const listenerOpts = { once: true, capture };
|
|
39
|
-
const handlePointerenter = () => {
|
|
45
|
+
const handlePointerenter = (evt) => {
|
|
40
46
|
if (focusin) {
|
|
41
47
|
element.removeEventListener('focusin', handleFocusin, listenerOpts);
|
|
42
48
|
}
|
|
43
|
-
resolve(
|
|
49
|
+
resolve(evt);
|
|
50
|
+
};
|
|
51
|
+
const handleFocusin = (evt) => {
|
|
52
|
+
if (pointerenter) {
|
|
53
|
+
element.removeEventListener('pointerenter', handlePointerenter, listenerOpts);
|
|
54
|
+
}
|
|
55
|
+
resolve(evt);
|
|
44
56
|
};
|
|
45
|
-
|
|
57
|
+
destroyFn = () => {
|
|
46
58
|
if (pointerenter) {
|
|
47
59
|
element.removeEventListener('pointerenter', handlePointerenter, listenerOpts);
|
|
48
60
|
}
|
|
49
|
-
|
|
61
|
+
if (focusin) {
|
|
62
|
+
element.removeEventListener('focusin', handleFocusin, listenerOpts);
|
|
63
|
+
}
|
|
50
64
|
};
|
|
51
65
|
if (pointerenter) {
|
|
52
66
|
element.addEventListener('pointerenter', handlePointerenter, listenerOpts);
|
|
@@ -55,6 +69,7 @@ export function userInteractionListener(element, { capture = true, pointerenter
|
|
|
55
69
|
element.addEventListener('focusin', handleFocusin, listenerOpts);
|
|
56
70
|
}
|
|
57
71
|
});
|
|
72
|
+
return { userInteraction, destroy };
|
|
58
73
|
}
|
|
59
74
|
/**
|
|
60
75
|
* Converts a percent value to pixels.
|
|
@@ -37,9 +37,7 @@ export class BaseDatePickerAdapter extends BaseAdapter {
|
|
|
37
37
|
}
|
|
38
38
|
attachCalendar(calendarConfig, dropdownConfig) {
|
|
39
39
|
var _a, _b, _c;
|
|
40
|
-
|
|
41
|
-
(_a = this._calendarDropdown) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
42
|
-
}
|
|
40
|
+
(_a = this._calendarDropdown) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
43
41
|
this._initializeCalendarDropdown();
|
|
44
42
|
if (!this._calendarDropdown) {
|
|
45
43
|
throw new Error('CalendarDropdown was not initialized.');
|
|
@@ -132,6 +132,12 @@ export class BaseDatePickerFoundation {
|
|
|
132
132
|
closeCallback: this._dropdownCloseListener,
|
|
133
133
|
activeChangeCallback: this._activeChangeListener
|
|
134
134
|
};
|
|
135
|
+
// If the max date is in the past, set the calendar to the min date
|
|
136
|
+
const currentDate = new Date().getTime();
|
|
137
|
+
if (this._min && this._max && this._max.getTime() < currentDate) {
|
|
138
|
+
calendarConfig.year = this._min.getFullYear();
|
|
139
|
+
calendarConfig.month = this._min.getMonth();
|
|
140
|
+
}
|
|
135
141
|
this._adapter.attachCalendar(calendarConfig, dropdownConfig);
|
|
136
142
|
this._adapter.addDateSelectListener(this._dateSelectListener);
|
|
137
143
|
this._open = true;
|
|
@@ -26,6 +26,7 @@ export interface IDialogAdapter extends IBaseAdapter {
|
|
|
26
26
|
addRootClass(name: string): void;
|
|
27
27
|
setFullscreen(value: boolean): void;
|
|
28
28
|
setMoveable(value: boolean): void;
|
|
29
|
+
tryLayoutRippleChildren(): void;
|
|
29
30
|
setMoveTarget(selector: string): boolean;
|
|
30
31
|
setMoveTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;
|
|
31
32
|
removeDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;
|
|
@@ -63,6 +64,7 @@ export declare class DialogAdapter extends BaseAdapter<IDialogComponent> impleme
|
|
|
63
64
|
addRootClass(name: string): void;
|
|
64
65
|
setFullscreen(value: boolean): void;
|
|
65
66
|
setMoveable(value: boolean): void;
|
|
67
|
+
tryLayoutRippleChildren(): void;
|
|
66
68
|
setMoveTarget(selector: string): boolean;
|
|
67
69
|
setMoveTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;
|
|
68
70
|
removeDragTargetHandler(type: string, listener: (evt: MouseEvent) => void): void;
|
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { deepQuerySelectorAll, getActiveElement, getShadowElement, removeElement, toggleClass } from '@tylertech/forge-core';
|
|
7
7
|
import { BACKDROP_CONSTANTS } from '../backdrop';
|
|
8
|
+
import { CHECKBOX_CONSTANTS } from '../checkbox/checkbox-constants';
|
|
8
9
|
import { BaseAdapter } from '../core/base/base-adapter';
|
|
10
|
+
import { ICON_BUTTON_CONSTANTS } from '../icon-button/icon-button-constants';
|
|
11
|
+
import { RADIO_CONSTANTS } from '../radio/radio-constants';
|
|
12
|
+
import { SWITCH_CONSTANTS } from '../switch/switch-constants';
|
|
9
13
|
import { DIALOG_CONSTANTS } from './dialog-constants';
|
|
10
14
|
/**
|
|
11
15
|
* Provides facilities for interacting with the internal DOM of `DialogComponent`.
|
|
@@ -103,6 +107,16 @@ export class DialogAdapter extends BaseAdapter {
|
|
|
103
107
|
setMoveable(value) {
|
|
104
108
|
toggleClass(this._containerElement, value, DIALOG_CONSTANTS.classes.MOVEABLE);
|
|
105
109
|
}
|
|
110
|
+
tryLayoutRippleChildren() {
|
|
111
|
+
const selectors = [
|
|
112
|
+
ICON_BUTTON_CONSTANTS.elementName,
|
|
113
|
+
SWITCH_CONSTANTS.elementName,
|
|
114
|
+
CHECKBOX_CONSTANTS.elementName,
|
|
115
|
+
RADIO_CONSTANTS.elementName
|
|
116
|
+
];
|
|
117
|
+
const rippleChildren = deepQuerySelectorAll(this._component, selectors.join(':focus-within,'));
|
|
118
|
+
rippleChildren.filter(el => typeof el.layout === 'function').forEach(el => el.layout());
|
|
119
|
+
}
|
|
106
120
|
setMoveTarget(selector) {
|
|
107
121
|
if (!selector) {
|
|
108
122
|
return false;
|
|
@@ -168,6 +168,7 @@ export class DialogFoundation {
|
|
|
168
168
|
this._adapter.deregisterTransitionEndHandler(this._transitionEndHandler);
|
|
169
169
|
this._adapter.setAnimating(false);
|
|
170
170
|
this._adapter.emitHostEvent(DIALOG_CONSTANTS.events.READY);
|
|
171
|
+
this._adapter.tryLayoutRippleChildren();
|
|
171
172
|
if (this._moveable) {
|
|
172
173
|
this._initMoveTarget();
|
|
173
174
|
}
|
|
@@ -33,6 +33,8 @@ export declare class IconButtonComponent extends BaseComponent implements IIconB
|
|
|
33
33
|
private _dense;
|
|
34
34
|
private _densityLevel;
|
|
35
35
|
private _toggleHandler;
|
|
36
|
+
private _buttonAttrMutationObserver;
|
|
37
|
+
private _destroyUserInteractionListener;
|
|
36
38
|
constructor();
|
|
37
39
|
connectedCallback(): void;
|
|
38
40
|
disconnectedCallback(): void;
|
|
@@ -7,7 +7,7 @@ import { __decorate } from "tslib";
|
|
|
7
7
|
import { coerceBoolean, coerceNumber, CustomElement, emitEvent, ensureChild, toggleClass } from '@tylertech/forge-core';
|
|
8
8
|
import { BaseComponent } from '../core/base/base-component';
|
|
9
9
|
import { ForgeRipple } from '../ripple';
|
|
10
|
-
import {
|
|
10
|
+
import { createUserInteractionListener } from '../core/utils';
|
|
11
11
|
import { ICON_BUTTON_CONSTANTS } from './icon-button-constants';
|
|
12
12
|
/**
|
|
13
13
|
* The custom element class behind the `<forge-icon-button>` element.
|
|
@@ -39,6 +39,13 @@ let IconButtonComponent = class IconButtonComponent extends BaseComponent {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
disconnectedCallback() {
|
|
42
|
+
if (typeof this._destroyUserInteractionListener === 'function') {
|
|
43
|
+
this._destroyUserInteractionListener();
|
|
44
|
+
this._destroyUserInteractionListener = undefined;
|
|
45
|
+
}
|
|
46
|
+
if (this._buttonAttrMutationObserver) {
|
|
47
|
+
this._buttonAttrMutationObserver.disconnect();
|
|
48
|
+
}
|
|
42
49
|
if (this._rippleInstance) {
|
|
43
50
|
this._rippleInstance.destroy();
|
|
44
51
|
}
|
|
@@ -123,6 +130,16 @@ let IconButtonComponent = class IconButtonComponent extends BaseComponent {
|
|
|
123
130
|
this._toggleValue();
|
|
124
131
|
emitEvent(this, ICON_BUTTON_CONSTANTS.events.CHANGE, this._isOn, true);
|
|
125
132
|
};
|
|
133
|
+
// Watch attributes on the `<button>` element
|
|
134
|
+
this._buttonAttrMutationObserver = new MutationObserver(mutationList => {
|
|
135
|
+
var _a;
|
|
136
|
+
if (mutationList.some(mutation => mutation.attributeName === 'disabled')) {
|
|
137
|
+
if (this._buttonElement.hasAttribute('disabled')) {
|
|
138
|
+
(_a = this._rippleInstance) === null || _a === void 0 ? void 0 : _a.handleBlur();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
this._buttonAttrMutationObserver.observe(this._buttonElement, { attributes: true, attributeFilter: ['disabled'] });
|
|
126
143
|
if (this._toggle) {
|
|
127
144
|
this._initializeToggle();
|
|
128
145
|
}
|
|
@@ -130,12 +147,19 @@ let IconButtonComponent = class IconButtonComponent extends BaseComponent {
|
|
|
130
147
|
this._deferRippleInitialization();
|
|
131
148
|
}
|
|
132
149
|
async _deferRippleInitialization() {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
150
|
+
if (typeof this._destroyUserInteractionListener === 'function') {
|
|
151
|
+
this._destroyUserInteractionListener();
|
|
152
|
+
}
|
|
153
|
+
const { userInteraction, destroy } = createUserInteractionListener(this._buttonElement);
|
|
154
|
+
this._destroyUserInteractionListener = destroy;
|
|
155
|
+
const { type } = await userInteraction;
|
|
156
|
+
this._destroyUserInteractionListener = undefined;
|
|
157
|
+
if (!this.isConnected) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
this._rippleInstance = this._createRipple();
|
|
161
|
+
if (type === 'focusin') {
|
|
162
|
+
this._rippleInstance.handleFocus();
|
|
139
163
|
}
|
|
140
164
|
}
|
|
141
165
|
_createRipple() {
|
|
@@ -6,11 +6,10 @@
|
|
|
6
6
|
import { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';
|
|
7
7
|
import { IListItemComponent } from '../list-item';
|
|
8
8
|
import { IListComponent } from './list';
|
|
9
|
-
export interface IListAdapter extends IBaseAdapter {
|
|
9
|
+
export interface IListAdapter extends IBaseAdapter<IListComponent> {
|
|
10
10
|
initializeAccessibility(): void;
|
|
11
11
|
addListener(type: string, listener: (evt: Event) => void): void;
|
|
12
12
|
removeListener(type: string, listener: (evt: Event) => void): void;
|
|
13
|
-
getListItems(): IListItemComponent[];
|
|
14
13
|
focusNextListItem(): void;
|
|
15
14
|
focusPreviousListItem(): void;
|
|
16
15
|
focusFirstListItem(): void;
|
|
@@ -36,10 +35,6 @@ export declare class ListAdapter extends BaseAdapter<IListComponent> implements
|
|
|
36
35
|
* @param {Function} listener The event callback.
|
|
37
36
|
*/
|
|
38
37
|
removeListener(type: string, listener: (evt: Event) => void): void;
|
|
39
|
-
/**
|
|
40
|
-
* Returns all child `<forge-list-item>` elements.
|
|
41
|
-
*/
|
|
42
|
-
getListItems(): IListItemComponent[];
|
|
43
38
|
/**
|
|
44
39
|
* Sets focus to the next item in the list.
|
|
45
40
|
*/
|
|
@@ -58,4 +53,5 @@ export declare class ListAdapter extends BaseAdapter<IListComponent> implements
|
|
|
58
53
|
focusLastListItem(): void;
|
|
59
54
|
setSelectedListItems(values: any[]): void;
|
|
60
55
|
updateListItems(cb: (li: IListItemComponent) => void): void;
|
|
56
|
+
private _getOwnListItems;
|
|
61
57
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { deepQuerySelectorAll
|
|
6
|
+
import { deepQuerySelectorAll } from '@tylertech/forge-core';
|
|
7
7
|
import { BaseAdapter } from '../../core/base/base-adapter';
|
|
8
8
|
import { LIST_ITEM_CONSTANTS } from '../list-item';
|
|
9
9
|
import { LIST_CONSTANTS } from './list-constants';
|
|
@@ -35,19 +35,13 @@ export class ListAdapter extends BaseAdapter {
|
|
|
35
35
|
removeListener(type, listener) {
|
|
36
36
|
this._component.removeEventListener(type, listener);
|
|
37
37
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Returns all child `<forge-list-item>` elements.
|
|
40
|
-
*/
|
|
41
|
-
getListItems() {
|
|
42
|
-
return Array.from(this._component.children).filter(child => child.tagName === LIST_ITEM_CONSTANTS.elementName.toUpperCase());
|
|
43
|
-
}
|
|
44
38
|
/**
|
|
45
39
|
* Sets focus to the next item in the list.
|
|
46
40
|
*/
|
|
47
41
|
focusNextListItem() {
|
|
48
|
-
const listItems =
|
|
49
|
-
if (listItems
|
|
50
|
-
const focusedListItemIndex = listItems.
|
|
42
|
+
const listItems = this._getOwnListItems();
|
|
43
|
+
if (listItems.length > 0) {
|
|
44
|
+
const focusedListItemIndex = listItems.findIndex(li => li.matches(':focus-within'));
|
|
51
45
|
const nextIndex = focusedListItemIndex < listItems.length - 1 ? focusedListItemIndex + 1 : 0;
|
|
52
46
|
if (nextIndex <= listItems.length - 1) {
|
|
53
47
|
listItems[nextIndex].focus();
|
|
@@ -58,9 +52,9 @@ export class ListAdapter extends BaseAdapter {
|
|
|
58
52
|
* Sets focus to the previous item in the list.
|
|
59
53
|
*/
|
|
60
54
|
focusPreviousListItem() {
|
|
61
|
-
const listItems =
|
|
62
|
-
if (listItems
|
|
63
|
-
const focusedListItemIndex = listItems.
|
|
55
|
+
const listItems = this._getOwnListItems();
|
|
56
|
+
if (listItems.length > 0) {
|
|
57
|
+
const focusedListItemIndex = listItems.findIndex(li => li.matches(':focus-within'));
|
|
64
58
|
const nextIndex = focusedListItemIndex > 0 ? focusedListItemIndex - 1 : listItems.length - 1;
|
|
65
59
|
if (nextIndex >= 0) {
|
|
66
60
|
listItems[nextIndex].focus();
|
|
@@ -71,8 +65,8 @@ export class ListAdapter extends BaseAdapter {
|
|
|
71
65
|
* Sets focus to the first item in the list.
|
|
72
66
|
*/
|
|
73
67
|
focusFirstListItem() {
|
|
74
|
-
const listItems =
|
|
75
|
-
if (listItems
|
|
68
|
+
const listItems = this._getOwnListItems();
|
|
69
|
+
if (listItems.length > 0) {
|
|
76
70
|
listItems[0].focus();
|
|
77
71
|
}
|
|
78
72
|
}
|
|
@@ -80,8 +74,8 @@ export class ListAdapter extends BaseAdapter {
|
|
|
80
74
|
* Sets focus to the last item in the list.
|
|
81
75
|
*/
|
|
82
76
|
focusLastListItem() {
|
|
83
|
-
const listItems =
|
|
84
|
-
if (listItems
|
|
77
|
+
const listItems = this._getOwnListItems();
|
|
78
|
+
if (listItems.length > 0) {
|
|
85
79
|
listItems[listItems.length - 1].focus();
|
|
86
80
|
}
|
|
87
81
|
}
|
|
@@ -94,6 +88,23 @@ export class ListAdapter extends BaseAdapter {
|
|
|
94
88
|
}
|
|
95
89
|
}
|
|
96
90
|
updateListItems(cb) {
|
|
97
|
-
this.
|
|
91
|
+
this._getOwnListItems().forEach(li => cb(li));
|
|
92
|
+
}
|
|
93
|
+
_getOwnListItems() {
|
|
94
|
+
// Find all deeply nested list items
|
|
95
|
+
const allChildListItems = deepQuerySelectorAll(this._component, LIST_ITEM_CONSTANTS.elementName);
|
|
96
|
+
// Get all list items that are scoped to this component only (not within sub-lists).
|
|
97
|
+
const scopedListItems = [];
|
|
98
|
+
const listener = evt => {
|
|
99
|
+
const composedPath = evt.composedPath();
|
|
100
|
+
const composedBeforeUs = composedPath.slice(0, composedPath.indexOf(this._component));
|
|
101
|
+
if (!composedBeforeUs.some((el) => el.localName === LIST_CONSTANTS.elementName.toLowerCase())) {
|
|
102
|
+
scopedListItems.push(evt.target);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
this._component.addEventListener(LIST_CONSTANTS.events.SCOPE_TEST, listener);
|
|
106
|
+
allChildListItems.forEach(li => li.dispatchEvent(new CustomEvent(LIST_CONSTANTS.events.SCOPE_TEST, { bubbles: true, composed: true })));
|
|
107
|
+
this._component.removeEventListener(LIST_CONSTANTS.events.SCOPE_TEST, listener);
|
|
108
|
+
return scopedListItems;
|
|
98
109
|
}
|
|
99
110
|
}
|
|
@@ -12,11 +12,11 @@ const attributes = {
|
|
|
12
12
|
INDENTED: 'indented',
|
|
13
13
|
SELECTED_VALUE: 'selected-value'
|
|
14
14
|
};
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
const events = {
|
|
16
|
+
SCOPE_TEST: `${elementName}-item-scope-test`
|
|
17
17
|
};
|
|
18
18
|
export const LIST_CONSTANTS = {
|
|
19
19
|
elementName,
|
|
20
20
|
attributes,
|
|
21
|
-
|
|
21
|
+
events
|
|
22
22
|
};
|
|
@@ -28,6 +28,12 @@ export class ListFoundation {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
_onKeydown(evt) {
|
|
31
|
+
const path = evt.composedPath();
|
|
32
|
+
const composedBeforeUs = path.slice(0, path.indexOf(this._adapter.hostElement));
|
|
33
|
+
const fromListDescendant = composedBeforeUs.some((el) => el.localName === LIST_CONSTANTS.elementName.toLowerCase());
|
|
34
|
+
if (fromListDescendant) {
|
|
35
|
+
return; // We ignore keydown events coming from sub-lists because they are already handling it themselves
|
|
36
|
+
}
|
|
31
37
|
const isArrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40;
|
|
32
38
|
const isArrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38;
|
|
33
39
|
const isHome = evt.key === 'Home' || evt.keyCode === 36;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';
|
|
7
|
-
import {
|
|
7
|
+
import { createUserInteractionListener } from '../../core/utils';
|
|
8
8
|
import { IListItemComponent } from './list-item';
|
|
9
9
|
export interface IListItemAdapter extends IBaseAdapter {
|
|
10
10
|
initializeAccessibility(): void;
|
|
@@ -27,7 +27,7 @@ export interface IListItemAdapter extends IBaseAdapter {
|
|
|
27
27
|
setIndented(indented: boolean): void;
|
|
28
28
|
setWrap(value: boolean): void;
|
|
29
29
|
trySelect(value: unknown): boolean | null;
|
|
30
|
-
|
|
30
|
+
createUserInteractionListener(): ReturnType<typeof createUserInteractionListener>;
|
|
31
31
|
}
|
|
32
32
|
export declare class ListItemAdapter extends BaseAdapter<IListItemComponent> implements IListItemAdapter {
|
|
33
33
|
private _listItemElement;
|
|
@@ -105,5 +105,5 @@ export declare class ListItemAdapter extends BaseAdapter<IListItemComponent> imp
|
|
|
105
105
|
* @returns Returns whether the list item is selected or not
|
|
106
106
|
*/
|
|
107
107
|
trySelect(value: unknown): boolean | null;
|
|
108
|
-
|
|
108
|
+
createUserInteractionListener(): ReturnType<typeof createUserInteractionListener>;
|
|
109
109
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { addClass, getShadowElement, removeClass, requireParent, isDeepEqual, toggleClass } from '@tylertech/forge-core';
|
|
7
7
|
import { BaseAdapter } from '../../core/base/base-adapter';
|
|
8
|
-
import {
|
|
8
|
+
import { createUserInteractionListener } from '../../core/utils';
|
|
9
9
|
import { LIST_CONSTANTS } from '../list/list-constants';
|
|
10
10
|
import { LIST_ITEM_CONSTANTS } from './list-item-constants';
|
|
11
11
|
import { ForgeRipple } from '../../ripple';
|
|
@@ -179,7 +179,7 @@ export class ListItemAdapter extends BaseAdapter {
|
|
|
179
179
|
this.tryToggleCheckboxRadio(isSelected);
|
|
180
180
|
return isSelected;
|
|
181
181
|
}
|
|
182
|
-
|
|
183
|
-
return
|
|
182
|
+
createUserInteractionListener() {
|
|
183
|
+
return createUserInteractionListener(this._listItemElement);
|
|
184
184
|
}
|
|
185
185
|
}
|
|
@@ -43,6 +43,7 @@ export declare class ListItemFoundation implements IListItemFoundation {
|
|
|
43
43
|
private _clickListener;
|
|
44
44
|
private _mouseDownListener;
|
|
45
45
|
private _keydownListener;
|
|
46
|
+
private _destroyUserInteractionListener;
|
|
46
47
|
constructor(_adapter: IListItemAdapter);
|
|
47
48
|
initialize(): void;
|
|
48
49
|
disconnect(): void;
|
|
@@ -55,6 +55,10 @@ export class ListItemFoundation {
|
|
|
55
55
|
this._rippleInstance.destroy();
|
|
56
56
|
this._rippleInstance = undefined;
|
|
57
57
|
}
|
|
58
|
+
if (typeof this._destroyUserInteractionListener === 'function') {
|
|
59
|
+
this._destroyUserInteractionListener();
|
|
60
|
+
this._destroyUserInteractionListener = undefined;
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
63
|
_onMouseDown(evt) {
|
|
60
64
|
if (this._adapter.hasFocus() || !this._propagateClick) {
|
|
@@ -295,8 +299,14 @@ export class ListItemFoundation {
|
|
|
295
299
|
}
|
|
296
300
|
async _setRipple() {
|
|
297
301
|
if (this._ripple && !this._static && !this._rippleInstance) {
|
|
298
|
-
const
|
|
299
|
-
|
|
302
|
+
const { userInteraction, destroy } = await this._adapter.createUserInteractionListener();
|
|
303
|
+
this._destroyUserInteractionListener = destroy;
|
|
304
|
+
const { type } = await userInteraction;
|
|
305
|
+
this._destroyUserInteractionListener = undefined;
|
|
306
|
+
if (!this._adapter.isConnected) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
if (this._ripple && !this._static && !this._rippleInstance) {
|
|
300
310
|
this._rippleInstance = this._adapter.createRipple();
|
|
301
311
|
if (type === 'focusin') {
|
|
302
312
|
this._rippleInstance.handleFocus();
|
|
@@ -295,6 +295,7 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
|
|
|
295
295
|
if (this._open) {
|
|
296
296
|
if (results && isArray(results) && results.length) {
|
|
297
297
|
this._options = results;
|
|
298
|
+
this._mapIconToLeadingIcon();
|
|
298
299
|
this._adapter.setOptions(results);
|
|
299
300
|
const selectedValues = this._getSelectedValues();
|
|
300
301
|
if (selectedValues.length) {
|