@tylertech/forge 3.0.0-next.19 → 3.0.0-next.20
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 +33314 -31340
- package/dist/esm/accordion/index.js +1 -1
- package/dist/esm/app-bar/app-bar/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.WJ26N3FC.js → chunk.22C7GQLX.js} +2 -2
- package/dist/esm/chunks/{chunk.CPD4RUF2.js → chunk.24MZM3AY.js} +2 -2
- package/dist/esm/chunks/{chunk.O6WN2UP6.js → chunk.2537XOFQ.js} +2 -2
- package/dist/esm/chunks/{chunk.KZMXTOLO.js → chunk.2AM2BKEO.js} +2 -2
- package/dist/esm/chunks/chunk.2N5KNNQX.js +7 -0
- package/dist/esm/chunks/chunk.2N5KNNQX.js.map +7 -0
- package/dist/esm/chunks/chunk.2W276VOR.js +7 -0
- package/dist/esm/chunks/chunk.2W276VOR.js.map +7 -0
- package/dist/esm/chunks/{chunk.KD4DVSJR.js → chunk.2WRAXA3H.js} +2 -2
- package/dist/esm/chunks/{chunk.ZYYPOLIG.js → chunk.2XPAYTK4.js} +2 -2
- package/dist/esm/chunks/chunk.35MHQH7Z.js +7 -0
- package/dist/esm/chunks/chunk.35MHQH7Z.js.map +7 -0
- package/dist/esm/chunks/chunk.3L77JY5H.js +7 -0
- package/dist/esm/chunks/chunk.3TIBP6QT.js +7 -0
- package/dist/esm/chunks/chunk.3TIBP6QT.js.map +7 -0
- package/dist/esm/chunks/{chunk.W2W3NTFC.js → chunk.3U222LE4.js} +2 -2
- package/dist/esm/chunks/{chunk.W2W3NTFC.js.map → chunk.3U222LE4.js.map} +2 -2
- package/dist/esm/chunks/{chunk.JPOTN7LL.js → chunk.45PPQY45.js} +2 -2
- package/dist/esm/chunks/{chunk.JPOTN7LL.js.map → chunk.45PPQY45.js.map} +1 -1
- package/dist/esm/chunks/{chunk.MBXBM6UI.js → chunk.47U6GVGZ.js} +2 -2
- package/dist/esm/chunks/chunk.4AEQ7KVU.js +7 -0
- package/dist/esm/chunks/chunk.4AEQ7KVU.js.map +7 -0
- package/dist/esm/chunks/{chunk.KWP42KR7.js → chunk.4NABD6XG.js} +2 -2
- package/dist/esm/chunks/{chunk.KWP42KR7.js.map → chunk.4NABD6XG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.WKLDPPHS.js → chunk.4UU6PWR2.js} +2 -2
- package/dist/esm/chunks/{chunk.WKLDPPHS.js.map → chunk.4UU6PWR2.js.map} +1 -1
- package/dist/esm/chunks/{chunk.UYAP5GFT.js → chunk.5A34DJLZ.js} +2 -2
- package/dist/esm/chunks/{chunk.GAHE4QVB.js → chunk.5S7XNYRQ.js} +2 -2
- package/dist/esm/chunks/chunk.66YURKP2.js +7 -0
- package/dist/esm/chunks/chunk.66YURKP2.js.map +7 -0
- package/dist/esm/chunks/chunk.6GSVB5NB.js +7 -0
- package/dist/esm/chunks/chunk.6GSVB5NB.js.map +7 -0
- package/dist/esm/chunks/{chunk.DOAQODLZ.js → chunk.6XLTVIUD.js} +2 -2
- package/dist/esm/chunks/{chunk.4YKLCBP2.js → chunk.7IJUN75W.js} +2 -2
- package/dist/esm/chunks/chunk.7UBIT4NP.js +7 -0
- package/dist/esm/chunks/chunk.7UBIT4NP.js.map +7 -0
- package/dist/esm/chunks/{chunk.66RZ2CUB.js → chunk.A4UH52SA.js} +2 -2
- package/dist/esm/chunks/chunk.AFJ7QEVI.js +7 -0
- package/dist/esm/chunks/chunk.AFJ7QEVI.js.map +7 -0
- package/dist/esm/chunks/{chunk.KIQZLNDG.js → chunk.AN2E2SSN.js} +2 -2
- package/dist/esm/chunks/{chunk.XH63INIK.js → chunk.AOSBUJWW.js} +2 -2
- package/dist/esm/chunks/chunk.BETICEYY.js +7 -0
- package/dist/esm/chunks/chunk.BETICEYY.js.map +7 -0
- package/dist/esm/chunks/chunk.BEUQVZKZ.js +7 -0
- package/dist/esm/chunks/chunk.BEUQVZKZ.js.map +7 -0
- package/dist/esm/chunks/chunk.BIQTNLIF.js +7 -0
- package/dist/esm/chunks/chunk.BIQTNLIF.js.map +7 -0
- package/dist/esm/chunks/{chunk.CLODJYSW.js → chunk.BSV27GU7.js} +2 -2
- package/dist/esm/chunks/{chunk.FOQH2SSU.js → chunk.CBLUXYH2.js} +2 -2
- package/dist/esm/chunks/{chunk.L7BSLZCB.js → chunk.CIUPY66Y.js} +2 -2
- package/dist/esm/chunks/chunk.CSCZRSDT.js +7 -0
- package/dist/esm/chunks/chunk.CSCZRSDT.js.map +7 -0
- package/dist/esm/chunks/{chunk.OUIWXKO2.js → chunk.CSOKFDFQ.js} +2 -2
- package/dist/esm/chunks/{chunk.4HZ6SNRV.js → chunk.CWBDPBYO.js} +2 -2
- package/dist/esm/chunks/{chunk.4HZ6SNRV.js.map → chunk.CWBDPBYO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.E2FS4PJS.js → chunk.D7RH43XD.js} +2 -2
- package/dist/esm/chunks/{chunk.E2FS4PJS.js.map → chunk.D7RH43XD.js.map} +2 -2
- package/dist/esm/chunks/{chunk.HZUQXCOQ.js → chunk.DCCFF327.js} +2 -2
- package/dist/esm/chunks/{chunk.HZUQXCOQ.js.map → chunk.DCCFF327.js.map} +2 -2
- package/dist/esm/chunks/{chunk.YLJTJKN4.js → chunk.EO3HELQ2.js} +2 -2
- package/dist/esm/chunks/{chunk.YGXXWF52.js → chunk.FB4MXEIW.js} +2 -2
- package/dist/esm/chunks/{chunk.YGXXWF52.js.map → chunk.FB4MXEIW.js.map} +2 -2
- package/dist/esm/chunks/{chunk.RKG66YKS.js → chunk.FBDRM4YN.js} +2 -2
- package/dist/esm/chunks/{chunk.GAQ3POUT.js → chunk.FOSKVNVV.js} +2 -2
- package/dist/esm/chunks/{chunk.Z7JF5PPO.js → chunk.FRTSXX33.js} +2 -2
- package/dist/esm/chunks/{chunk.253H47GA.js → chunk.G2HRYIIZ.js} +2 -2
- package/dist/esm/chunks/chunk.G3GTO5ZC.js +7 -0
- package/dist/esm/chunks/chunk.G3GTO5ZC.js.map +7 -0
- package/dist/esm/chunks/{chunk.D7L2IMHJ.js → chunk.GA6AO6FJ.js} +2 -2
- package/dist/esm/chunks/{chunk.YOKBWEXF.js → chunk.GBGGUYTE.js} +2 -2
- package/dist/esm/chunks/{chunk.CISGGM56.js → chunk.GTKYO6VB.js} +2 -2
- package/dist/esm/chunks/{chunk.STIZCKQA.js → chunk.HBAC6E7O.js} +2 -2
- package/dist/esm/chunks/{chunk.WM6ZUVDR.js → chunk.IM36A2ZI.js} +2 -2
- package/dist/esm/chunks/{chunk.YHIHHGMQ.js → chunk.IWVAI6XM.js} +2 -2
- package/dist/esm/chunks/chunk.IZ63EJ32.js +7 -0
- package/dist/esm/chunks/{chunk.VN7JOJVU.js.map → chunk.IZ63EJ32.js.map} +1 -1
- package/dist/esm/chunks/{chunk.J5MWS2KZ.js → chunk.IZRURH7C.js} +2 -2
- package/dist/esm/chunks/chunk.JCEKCW4B.js +7 -0
- package/dist/esm/chunks/chunk.JCEKCW4B.js.map +7 -0
- package/dist/esm/chunks/{chunk.E7TIN4JS.js → chunk.JLSFTWPE.js} +2 -2
- package/dist/esm/chunks/{chunk.HP4333ZN.js → chunk.JSTCCUKZ.js} +2 -2
- package/dist/esm/chunks/chunk.JVWJHSPM.js +7 -0
- package/dist/esm/chunks/{chunk.JUXSSZ3B.js.map → chunk.JVWJHSPM.js.map} +1 -1
- package/dist/esm/chunks/chunk.KDUH2DUE.js +7 -0
- package/dist/esm/chunks/{chunk.54DNA2QP.js → chunk.KEFJZO5K.js} +2 -2
- package/dist/esm/chunks/{chunk.54DNA2QP.js.map → chunk.KEFJZO5K.js.map} +1 -1
- package/dist/esm/chunks/chunk.KRKKMTXR.js +7 -0
- package/dist/esm/chunks/chunk.KRKKMTXR.js.map +7 -0
- package/dist/esm/chunks/chunk.LGEZI5SZ.js +7 -0
- package/dist/esm/chunks/chunk.LGEZI5SZ.js.map +7 -0
- package/dist/esm/chunks/{chunk.M7RYU4HQ.js → chunk.LKA5HQQY.js} +2 -2
- package/dist/esm/chunks/{chunk.IC4DLKE3.js → chunk.MC3UAHWS.js} +2 -2
- package/dist/esm/chunks/chunk.MCR34SZQ.js +7 -0
- package/dist/esm/chunks/{chunk.5NHGVUVR.js.map → chunk.MCR34SZQ.js.map} +1 -1
- package/dist/esm/chunks/{chunk.B2RYZJGJ.js → chunk.MDDX4MJU.js} +2 -2
- package/dist/esm/chunks/{chunk.B2RYZJGJ.js.map → chunk.MDDX4MJU.js.map} +3 -3
- package/dist/esm/chunks/chunk.MPUP6QAP.js +7 -0
- package/dist/esm/chunks/chunk.MZRAL4MY.js +7 -0
- package/dist/esm/chunks/chunk.MZRAL4MY.js.map +7 -0
- package/dist/esm/chunks/{chunk.KPNGLSCU.js → chunk.N632SJ7X.js} +2 -2
- package/dist/esm/chunks/{chunk.WJLHVUHN.js → chunk.O56VP4OZ.js} +2 -2
- package/dist/esm/chunks/{chunk.ULZJYWM2.js → chunk.OFXSMOV6.js} +2 -2
- package/dist/esm/chunks/chunk.OT4AIOMN.js +7 -0
- package/dist/esm/chunks/chunk.OT4AIOMN.js.map +7 -0
- package/dist/esm/chunks/{chunk.SWDOKJUF.js → chunk.OY3TG55O.js} +2 -2
- package/dist/esm/chunks/chunk.PDDBNHVU.js +7 -0
- package/dist/esm/chunks/chunk.PDDBNHVU.js.map +7 -0
- package/dist/esm/chunks/{chunk.IO3A5OM6.js → chunk.PXRGQHWR.js} +2 -2
- package/dist/esm/chunks/chunk.QCRO5NSG.js +7 -0
- package/dist/esm/chunks/chunk.QCRO5NSG.js.map +7 -0
- package/dist/esm/chunks/chunk.QKYCMDLB.js +7 -0
- package/dist/esm/chunks/{chunk.WINWKU4K.js → chunk.QUWEAFGI.js} +2 -2
- package/dist/esm/chunks/{chunk.LNMQ5A25.js → chunk.R3AWIPPK.js} +2 -2
- package/dist/esm/chunks/{chunk.KYACLC66.js → chunk.R66CYS27.js} +2 -2
- package/dist/esm/chunks/chunk.R6VPRRTT.js +7 -0
- package/dist/esm/chunks/{chunk.4EBFMRTJ.js.map → chunk.R6VPRRTT.js.map} +1 -1
- package/dist/esm/chunks/{chunk.V7HN24VV.js → chunk.RFCIELJM.js} +2 -2
- package/dist/esm/chunks/chunk.RLQB7224.js +7 -0
- package/dist/esm/chunks/{chunk.EWT2PBEP.js.map → chunk.RLQB7224.js.map} +2 -2
- package/dist/esm/chunks/chunk.ROMRJIFR.js +7 -0
- package/dist/esm/chunks/chunk.ROMRJIFR.js.map +7 -0
- package/dist/esm/chunks/chunk.SB2LOK2R.js +7 -0
- package/dist/esm/chunks/{chunk.4SP42UG3.js.map → chunk.SB2LOK2R.js.map} +3 -3
- package/dist/esm/chunks/chunk.SHBDQPPH.js +7 -0
- package/dist/esm/chunks/chunk.SHBDQPPH.js.map +7 -0
- package/dist/esm/chunks/{chunk.LFLIYBAB.js → chunk.SIGRWU4V.js} +2 -2
- package/dist/esm/chunks/{chunk.LFLIYBAB.js.map → chunk.SIGRWU4V.js.map} +2 -2
- package/dist/esm/chunks/chunk.SKBOB2BD.js +7 -0
- package/dist/esm/chunks/chunk.SKBOB2BD.js.map +7 -0
- package/dist/esm/chunks/chunk.SOKORSUV.js +7 -0
- package/dist/esm/chunks/{chunk.GDKJ4RZX.js → chunk.STSAE2XP.js} +2 -2
- package/dist/esm/chunks/{chunk.CJUX3PL5.js → chunk.SWKKDBO6.js} +2 -2
- package/dist/esm/chunks/chunk.SYKZ74SL.js +7 -0
- package/dist/esm/chunks/chunk.SYKZ74SL.js.map +7 -0
- package/dist/esm/chunks/chunk.TPNZYEC7.js +12 -0
- package/dist/esm/chunks/chunk.TPNZYEC7.js.map +7 -0
- package/dist/esm/chunks/{chunk.QQUSMJIM.js → chunk.UEYPCCFG.js} +2 -2
- package/dist/esm/chunks/chunk.UKVC23E5.js +7 -0
- package/dist/esm/chunks/chunk.UKVC23E5.js.map +7 -0
- package/dist/esm/chunks/chunk.UOD3A7M4.js +7 -0
- package/dist/esm/chunks/{chunk.OXGCNOUY.js.map → chunk.UOD3A7M4.js.map} +1 -1
- package/dist/esm/chunks/{chunk.UVXKHQQZ.js → chunk.UQQQSJVM.js} +2 -2
- package/dist/esm/chunks/{chunk.UVXKHQQZ.js.map → chunk.UQQQSJVM.js.map} +2 -2
- package/dist/esm/chunks/chunk.USO2XVOI.js +7 -0
- package/dist/esm/chunks/{chunk.Y7ZZ7HDC.js.map → chunk.USO2XVOI.js.map} +1 -1
- package/dist/esm/chunks/chunk.USQEIRST.js +7 -0
- package/dist/esm/chunks/chunk.USQEIRST.js.map +7 -0
- package/dist/esm/chunks/chunk.V3X77TCO.js +7 -0
- package/dist/esm/chunks/chunk.V3X77TCO.js.map +7 -0
- package/dist/esm/chunks/{chunk.F3FWXBDS.js → chunk.VBJ4WUVH.js} +2 -2
- package/dist/esm/chunks/chunk.VOTT5COZ.js +7 -0
- package/dist/esm/chunks/chunk.VOTT5COZ.js.map +7 -0
- package/dist/esm/chunks/{chunk.AQOLBID6.js → chunk.VZ2XONDI.js} +2 -2
- package/dist/esm/chunks/{chunk.AQOLBID6.js.map → chunk.VZ2XONDI.js.map} +2 -2
- package/dist/esm/chunks/chunk.WAMFFIMP.js +7 -0
- package/dist/esm/chunks/chunk.WAMFFIMP.js.map +7 -0
- package/dist/esm/chunks/{chunk.U7S4DJTU.js → chunk.WBCQTZPS.js} +2 -2
- package/dist/esm/chunks/chunk.WBI34ZVP.js +7 -0
- package/dist/esm/chunks/chunk.WPVGFQNY.js +7 -0
- package/dist/esm/chunks/{chunk.RN634NOB.js.map → chunk.WPVGFQNY.js.map} +1 -1
- package/dist/esm/chunks/{chunk.SZETPZGY.js → chunk.WTUXAH7Z.js} +2 -2
- package/dist/esm/chunks/chunk.XAZ6EDIZ.js +7 -0
- package/dist/esm/chunks/{chunk.QIMAHW7V.js.map → chunk.XAZ6EDIZ.js.map} +1 -1
- package/dist/esm/chunks/{chunk.2F2N4WBN.js → chunk.XCI7O2KJ.js} +2 -2
- package/dist/esm/chunks/{chunk.2F2N4WBN.js.map → chunk.XCI7O2KJ.js.map} +2 -2
- package/dist/esm/chunks/chunk.XNJROSDZ.js +7 -0
- package/dist/esm/chunks/chunk.XNJROSDZ.js.map +7 -0
- package/dist/esm/chunks/chunk.XU3YSZPA.js +7 -0
- package/dist/esm/chunks/chunk.XYBVD3IE.js +7 -0
- package/dist/esm/chunks/chunk.XYBVD3IE.js.map +7 -0
- package/dist/esm/chunks/chunk.YNXWVL4B.js +7 -0
- package/dist/esm/chunks/chunk.YNXWVL4B.js.map +7 -0
- package/dist/esm/chunks/{chunk.5JSCGQ7H.js → chunk.YS5JZHJ6.js} +2 -2
- package/dist/esm/chunks/{chunk.QXZ3AAXD.js → chunk.YXHMD73U.js} +2 -2
- package/dist/esm/chunks/{chunk.6DPDC4ON.js → chunk.Z6GRWPPN.js} +2 -2
- package/dist/esm/chunks/chunk.ZAREP2QH.js +7 -0
- package/dist/esm/chunks/chunk.ZAREP2QH.js.map +7 -0
- package/dist/esm/chunks/{chunk.2K3T63I2.js → chunk.ZIGVO6FN.js} +2 -2
- package/dist/esm/chunks/{chunk.2K3T63I2.js.map → chunk.ZIGVO6FN.js.map} +2 -2
- package/dist/esm/chunks/{chunk.4JEBLMI3.js → chunk.ZLNI2M3F.js} +2 -2
- package/dist/esm/chunks/chunk.ZPXMKY72.js +7 -0
- package/dist/esm/chunks/chunk.ZPXMKY72.js.map +7 -0
- package/dist/esm/chunks/chunk.ZYKP23JP.js +7 -0
- package/dist/esm/chunks/chunk.ZYKP23JP.js.map +7 -0
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +1 -1
- package/dist/esm/core/base/index.js +1 -1
- package/dist/esm/core/delegates/index.js +1 -1
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/core/utils/index.js +1 -1
- package/dist/esm/date-picker/index.js +1 -1
- package/dist/esm/date-range-picker/index.js +1 -1
- package/dist/esm/deprecated/button/index.js +1 -1
- package/dist/esm/deprecated/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/field-next/base/index.js +7 -0
- package/dist/esm/field-next/index.js +7 -0
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/index.js +1 -1
- package/dist/esm/floating-label/index.js +1 -1
- package/dist/esm/focus-indicator/index.js +1 -1
- package/dist/esm/icon/index.js +1 -1
- package/dist/esm/icon-button/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inline-message/index.js +1 -1
- package/dist/esm/keyboard-shortcut/index.js +1 -1
- package/dist/esm/label/index.js +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/overlay/index.js +1 -1
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +1 -1
- package/dist/esm/popover/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/radio/radio/index.js +1 -1
- package/dist/esm/radio/radio-group/index.js +1 -1
- package/dist/esm/ripple/index.js +1 -1
- package/dist/esm/scaffold/index.js +1 -1
- package/dist/esm/select/core/index.js +1 -1
- package/dist/esm/select/index.js +1 -1
- package/dist/esm/select/option/index.js +1 -1
- package/dist/esm/select/option-group/index.js +1 -1
- package/dist/esm/select/select/index.js +1 -1
- package/dist/esm/select/select-dropdown/index.js +1 -1
- package/dist/esm/skeleton/index.js +1 -1
- package/dist/esm/slider/index.js +1 -1
- package/dist/esm/split-button/index.js +1 -1
- package/dist/esm/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view-panel/index.js +1 -1
- package/dist/esm/stack/index.js +1 -1
- package/dist/esm/state-layer/index.js +1 -1
- package/dist/esm/stepper/index.js +1 -1
- package/dist/esm/stepper/step/index.js +1 -1
- package/dist/esm/stepper/stepper/index.js +1 -1
- package/dist/esm/switch/index.js +1 -1
- package/dist/esm/table/index.js +1 -1
- package/dist/esm/tabs/index.js +1 -1
- package/dist/esm/tabs/tab/index.js +1 -1
- package/dist/esm/tabs/tab-bar/index.js +1 -1
- package/dist/esm/text-field/index.js +1 -1
- package/dist/esm/time-picker/index.js +1 -1
- package/dist/esm/toast/index.js +1 -1
- package/dist/esm/toolbar/index.js +1 -1
- package/dist/esm/tooltip/index.js +1 -1
- package/dist/esm/view-switcher/index.js +1 -1
- package/dist/esm/view-switcher/view/index.js +1 -1
- package/dist/forge-dark.css +1 -1
- package/dist/forge.css +1 -1
- package/dist/typography/forge-typography.css +1 -1
- package/esm/autocomplete/autocomplete-adapter.js +6 -9
- package/esm/autocomplete/autocomplete.d.ts +8 -2
- package/esm/badge/badge.js +1 -1
- package/esm/button-area/button-area-adapter.d.ts +20 -21
- package/esm/button-area/button-area-adapter.js +32 -74
- package/esm/button-area/button-area-constants.d.ts +3 -1
- package/esm/button-area/button-area-constants.js +5 -3
- package/esm/button-area/button-area-foundation.d.ts +2 -0
- package/esm/button-area/button-area-foundation.js +31 -11
- package/esm/button-area/button-area.d.ts +19 -2
- package/esm/button-area/button-area.js +25 -6
- package/esm/calendar/calendar-foundation.js +14 -6
- package/esm/calendar/calendar.d.ts +1 -0
- package/esm/card/card.js +1 -1
- package/esm/checkbox/checkbox.js +1 -1
- package/esm/chip-field/chip-field-foundation.js +1 -1
- package/esm/chips/chip/chip-adapter.d.ts +45 -50
- package/esm/chips/chip/chip-adapter.js +150 -129
- package/esm/chips/chip/chip-constants.d.ts +28 -20
- package/esm/chips/chip/chip-constants.js +14 -23
- package/esm/chips/chip/chip-foundation.d.ts +42 -34
- package/esm/chips/chip/chip-foundation.js +177 -171
- package/esm/chips/chip/chip.d.ts +106 -21
- package/esm/chips/chip/chip.js +142 -35
- package/esm/chips/chip-set/chip-set-constants.d.ts +9 -3
- package/esm/chips/chip-set/chip-set-constants.js +7 -8
- package/esm/chips/chip-set/chip-set.d.ts +46 -9
- package/esm/chips/chip-set/chip-set.js +128 -33
- package/esm/chips/chip-set/index.d.ts +0 -2
- package/esm/chips/chip-set/index.js +0 -2
- package/esm/constants.d.ts +8 -3
- package/esm/constants.js +8 -3
- package/esm/core/base/base-adapter.d.ts +2 -1
- package/esm/core/base/base-adapter.js +1 -0
- package/esm/core/utils/utils.d.ts +11 -0
- package/esm/core/utils/utils.js +35 -0
- package/esm/date-picker/base/base-date-picker-adapter.js +7 -12
- package/esm/date-picker/base/base-date-picker-foundation.js +6 -0
- package/esm/date-picker/base/base-date-picker-utils.js +1 -2
- package/esm/date-range-picker/date-range-picker-adapter.d.ts +1 -0
- package/esm/date-range-picker/date-range-picker-adapter.js +11 -1
- package/esm/date-range-picker/date-range-picker-component-delegate.d.ts +3 -3
- package/esm/date-range-picker/date-range-picker-component-delegate.js +2 -2
- 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/divider/divider-constants.d.ts +2 -2
- package/esm/divider/divider-constants.js +3 -3
- package/esm/divider/divider.d.ts +26 -5
- package/esm/divider/divider.js +42 -6
- package/esm/drawer/drawer/drawer.js +1 -1
- package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
- package/esm/expansion-panel/expansion-panel.js +1 -1
- package/esm/field-next/base/base-field-adapter.d.ts +27 -0
- package/esm/field-next/base/base-field-adapter.js +14 -0
- package/esm/field-next/base/base-field-constants.d.ts +56 -0
- package/esm/field-next/base/base-field-constants.js +36 -0
- package/esm/field-next/base/base-field-foundation.d.ts +79 -0
- package/esm/field-next/base/base-field-foundation.js +176 -0
- package/esm/field-next/base/base-field.d.ts +52 -0
- package/esm/field-next/base/base-field.js +116 -0
- package/esm/field-next/base/index.d.ts +9 -0
- package/esm/field-next/base/index.js +9 -0
- package/esm/field-next/field-adapter.d.ts +56 -0
- package/esm/field-next/field-adapter.js +132 -0
- package/esm/field-next/field-constants.d.ts +95 -0
- package/esm/field-next/field-constants.js +64 -0
- package/esm/field-next/field-foundation.d.ts +86 -0
- package/esm/field-next/field-foundation.js +221 -0
- package/esm/field-next/field.d.ts +205 -0
- package/esm/field-next/field.js +287 -0
- package/esm/field-next/index.d.ts +11 -0
- package/esm/field-next/index.js +15 -0
- package/esm/file-picker/file-picker-adapter.js +1 -1
- package/esm/file-picker/file-picker.d.ts +46 -2
- package/esm/file-picker/file-picker.js +48 -4
- package/esm/index.d.ts +1 -1
- package/esm/index.js +3 -3
- package/esm/label/label-constants.d.ts +9 -3
- package/esm/label/label-constants.js +5 -3
- package/esm/label/label-foundation.d.ts +7 -4
- package/esm/label/label-foundation.js +20 -10
- package/esm/label/label.d.ts +6 -4
- package/esm/label/label.js +11 -12
- package/esm/list/list/list-adapter.d.ts +1 -1
- package/esm/list/list/list-adapter.js +22 -9
- package/esm/list/list/list-constants.d.ts +3 -0
- package/esm/list/list/list-constants.js +5 -1
- package/esm/list/list/list-foundation.js +6 -0
- package/esm/list/list-item/list-item-constants.js +1 -1
- package/esm/list/list-item/list-item.d.ts +33 -38
- package/esm/list/list-item/list-item.js +34 -39
- package/esm/menu/menu-foundation.js +1 -0
- package/esm/menu/menu.d.ts +4 -1
- package/esm/page-state/page-state.d.ts +24 -1
- package/esm/page-state/page-state.js +26 -3
- 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/popover/popover-constants.d.ts +2 -0
- package/esm/popover/popover-constants.js +3 -1
- package/esm/popover/popover-foundation.d.ts +5 -0
- package/esm/popover/popover-foundation.js +26 -1
- package/esm/popover/popover.d.ts +4 -0
- package/esm/popover/popover.js +9 -0
- package/esm/profile-card/profile-card.js +1 -1
- package/esm/radio/radio/radio.js +2 -2
- package/esm/radio/radio-group/radio-group-adapter.js +1 -1
- package/{styles/stack/_variables.scss → esm/radio/radio-group/radio-group-component-delegate.d.ts} +0 -1
- package/{styles/chips/chip-set/_variables.scss → esm/radio/radio-group/radio-group-component-delegate.js} +0 -1
- package/esm/ripple/forge-ripple.d.ts +1 -1
- package/esm/ripple/forge-ripple.js +1 -1
- package/esm/select/core/base-select.d.ts +4 -1
- package/esm/skeleton/skeleton.d.ts +32 -2
- package/esm/skeleton/skeleton.js +33 -3
- package/esm/slider/slider.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/stack/stack-constants.d.ts +1 -0
- package/esm/stack/stack-constants.js +2 -1
- package/esm/stack/stack-foundation.d.ts +6 -1
- package/esm/stack/stack-foundation.js +12 -1
- package/esm/stack/stack.d.ts +37 -3
- package/esm/stack/stack.js +42 -4
- package/esm/switch/switch.js +1 -1
- package/esm/text-field/index.d.ts +2 -2
- package/esm/text-field/index.js +2 -2
- package/esm/text-field/text-field-adapter.d.ts +42 -25
- package/esm/text-field/text-field-adapter.js +125 -84
- package/esm/text-field/text-field-component-delegate.d.ts +11 -3
- package/esm/text-field/text-field-component-delegate.js +66 -36
- package/esm/text-field/text-field-constants.d.ts +19 -8
- package/esm/text-field/text-field-constants.js +21 -11
- package/esm/text-field/text-field-foundation.d.ts +28 -6
- package/esm/text-field/text-field-foundation.js +97 -4
- package/esm/text-field/text-field.d.ts +43 -5
- package/esm/text-field/text-field.js +73 -9
- package/esm/time-picker/time-picker-adapter.js +8 -10
- package/esm/toolbar/toolbar-constants.d.ts +5 -5
- package/esm/toolbar/toolbar-constants.js +9 -10
- package/esm/toolbar/toolbar.d.ts +35 -6
- package/esm/toolbar/toolbar.js +44 -26
- package/esm/tooltip/tooltip.js +1 -1
- package/package.json +2 -2
- package/{dist/esm/chunks/chunk.SKLCDWYQ.js → styles/avatar/index.scss} +1 -1
- package/styles/badge/_core.scss +1 -1
- package/styles/button/button.scss +1 -1
- package/styles/button-area/_core.scss +25 -0
- package/styles/button-area/_token-utils.scss +30 -0
- package/styles/button-area/button-area.scss +48 -3
- package/styles/{divider/_variables.scss → button-area/index.scss} +1 -2
- package/styles/card/_mixins.scss +1 -0
- package/styles/checkbox/_core.scss +1 -1
- package/styles/chips/chip/_core.scss +137 -0
- package/styles/chips/chip/_token-utils.scss +30 -0
- package/styles/chips/chip/chip.scss +259 -7
- package/styles/chips/chip/index.scss +6 -0
- package/styles/chips/chip-set/_core.scss +22 -0
- package/styles/chips/chip-set/_token-utils.scss +30 -0
- package/styles/chips/chip-set/chip-set.scss +27 -3
- package/styles/chips/chip-set/index.scss +6 -0
- package/styles/core/styles/tokens/_token-utils.scss +3 -2
- package/styles/core/styles/tokens/button-area/_tokens.scss +28 -0
- package/styles/core/styles/tokens/chips/chip/_tokens.scss +87 -0
- package/styles/core/styles/tokens/chips/chip-set/_tokens.scss +16 -0
- package/styles/core/styles/tokens/divider/_tokens.scss +20 -0
- package/styles/core/styles/tokens/field/_tokens.scss +148 -0
- package/styles/core/styles/tokens/file-picker/_tokens.scss +42 -0
- package/styles/core/styles/tokens/list/list-item/_tokens.scss +5 -12
- package/styles/core/styles/tokens/page-state/_tokens.scss +43 -0
- package/styles/core/styles/tokens/skeleton/_tokens.scss +55 -0
- package/styles/core/styles/tokens/stack/_tokens.scss +21 -0
- package/styles/core/styles/tokens/toolbar/_tokens.scss +41 -0
- package/styles/core/styles/tokens/typography/_scale.scss +1 -0
- package/styles/core/styles/tokens/typography/_tokens.label.scss +9 -2
- package/styles/divider/_core.scss +39 -0
- package/styles/divider/_token-utils.scss +30 -0
- package/styles/divider/divider.scss +16 -9
- package/styles/divider/index.scss +6 -0
- package/styles/drawer/drawer/drawer.scss +2 -0
- package/styles/drawer/mini-drawer/mini-drawer.scss +2 -0
- package/styles/drawer/modal-drawer/modal-drawer.scss +5 -0
- package/styles/expansion-panel/_mixins.scss +1 -0
- package/styles/field-next/_core.layout.scss +350 -0
- package/styles/field-next/_core.scss +212 -0
- package/styles/field-next/_core.shape.scss +25 -0
- package/styles/field-next/_core.slotted.scss +60 -0
- package/styles/field-next/_core.state.scss +198 -0
- package/styles/field-next/_core.variant.scss +225 -0
- package/styles/field-next/_token-utils.scss +30 -0
- package/styles/field-next/field.scss +770 -0
- package/styles/{product-icon/_variables.scss → field-next/index.scss} +2 -2
- package/styles/file-picker/_core.scss +85 -0
- package/styles/file-picker/_token-utils.scss +30 -0
- package/styles/file-picker/file-picker.scss +68 -3
- package/styles/file-picker/index.scss +6 -0
- package/styles/label/_core.scss +1 -1
- package/styles/list/list-item/_core.scss +4 -20
- package/styles/list/list-item/list-item.scss +0 -12
- package/styles/page-state/_core.scss +79 -0
- package/styles/page-state/_token-utils.scss +30 -0
- package/styles/page-state/index.scss +6 -0
- package/styles/page-state/page-state.scss +51 -3
- package/styles/profile-card/profile-card.scss +10 -10
- package/styles/radio/radio/_core.scss +1 -1
- package/styles/radio/radio-group/_core.scss +5 -0
- package/styles/radio/radio-group/index.scss +5 -0
- package/styles/radio/radio-group/radio-group.scss +5 -0
- package/styles/skeleton/_animations.scss +10 -0
- package/styles/skeleton/_core.scss +78 -0
- package/styles/skeleton/_token-utils.scss +30 -0
- package/styles/skeleton/index.scss +6 -0
- package/styles/skeleton/skeleton.scss +55 -4
- package/styles/slider/_core.scss +1 -1
- package/styles/stack/_core.scss +29 -0
- package/styles/stack/_token-utils.scss +30 -0
- package/styles/stack/stack.scss +38 -12
- package/styles/switch/_core.scss +1 -1
- package/styles/text-field/_core.scss +5 -12
- package/styles/text-field/index.scss +6 -0
- package/styles/text-field/text-field.scss +14 -5
- package/styles/theme/_theme-dark.scss +6 -3
- package/styles/toolbar/_core.scss +73 -0
- package/styles/toolbar/_token-utils.scss +30 -0
- package/styles/toolbar/index.scss +6 -0
- package/styles/toolbar/toolbar.scss +64 -17
- package/styles/tooltip/_core.scss +1 -0
- package/styles/utils/_mixins-container.scss +38 -0
- package/dist/esm/chunks/chunk.2AVJJJNS.js +0 -7
- package/dist/esm/chunks/chunk.2AVJJJNS.js.map +0 -7
- package/dist/esm/chunks/chunk.2UVBQKJI.js +0 -7
- package/dist/esm/chunks/chunk.2UVBQKJI.js.map +0 -7
- package/dist/esm/chunks/chunk.3WT7HPA7.js +0 -12
- package/dist/esm/chunks/chunk.3WT7HPA7.js.map +0 -7
- package/dist/esm/chunks/chunk.4EBFMRTJ.js +0 -7
- package/dist/esm/chunks/chunk.4SP42UG3.js +0 -7
- package/dist/esm/chunks/chunk.5BQT3E7Y.js +0 -7
- package/dist/esm/chunks/chunk.5BQT3E7Y.js.map +0 -7
- package/dist/esm/chunks/chunk.5NHGVUVR.js +0 -7
- package/dist/esm/chunks/chunk.5PNJOQDZ.js +0 -7
- package/dist/esm/chunks/chunk.5PNJOQDZ.js.map +0 -7
- package/dist/esm/chunks/chunk.6P4G73VL.js +0 -7
- package/dist/esm/chunks/chunk.6P4G73VL.js.map +0 -7
- package/dist/esm/chunks/chunk.7AE3ATT3.js +0 -7
- package/dist/esm/chunks/chunk.7AE3ATT3.js.map +0 -7
- package/dist/esm/chunks/chunk.AXBMJBED.js +0 -7
- package/dist/esm/chunks/chunk.DYBD4IRT.js +0 -7
- package/dist/esm/chunks/chunk.EWT2PBEP.js +0 -7
- package/dist/esm/chunks/chunk.F2327OUE.js +0 -7
- package/dist/esm/chunks/chunk.F2327OUE.js.map +0 -7
- package/dist/esm/chunks/chunk.FXDHZCID.js +0 -7
- package/dist/esm/chunks/chunk.FZC3WXSY.js +0 -7
- package/dist/esm/chunks/chunk.FZC3WXSY.js.map +0 -7
- package/dist/esm/chunks/chunk.GYGIU62J.js +0 -7
- package/dist/esm/chunks/chunk.GYGIU62J.js.map +0 -7
- package/dist/esm/chunks/chunk.IE42X2LV.js +0 -7
- package/dist/esm/chunks/chunk.IE42X2LV.js.map +0 -7
- package/dist/esm/chunks/chunk.JBQXD3FJ.js +0 -7
- package/dist/esm/chunks/chunk.JBQXD3FJ.js.map +0 -7
- package/dist/esm/chunks/chunk.JLDKNU5Q.js +0 -7
- package/dist/esm/chunks/chunk.JLDKNU5Q.js.map +0 -7
- package/dist/esm/chunks/chunk.JO6GPIMF.js +0 -7
- package/dist/esm/chunks/chunk.JO6GPIMF.js.map +0 -7
- package/dist/esm/chunks/chunk.JUXSSZ3B.js +0 -7
- package/dist/esm/chunks/chunk.LEN33O6V.js +0 -7
- package/dist/esm/chunks/chunk.LEN33O6V.js.map +0 -7
- package/dist/esm/chunks/chunk.N2DHFDXD.js +0 -7
- package/dist/esm/chunks/chunk.N2DHFDXD.js.map +0 -7
- package/dist/esm/chunks/chunk.NSKIEZWE.js +0 -7
- package/dist/esm/chunks/chunk.NY3N6KUZ.js +0 -7
- package/dist/esm/chunks/chunk.NY3N6KUZ.js.map +0 -7
- package/dist/esm/chunks/chunk.O5HBMTSZ.js +0 -7
- package/dist/esm/chunks/chunk.O5HBMTSZ.js.map +0 -7
- package/dist/esm/chunks/chunk.OJFSECZE.js +0 -7
- package/dist/esm/chunks/chunk.OR5GB6X3.js +0 -7
- package/dist/esm/chunks/chunk.OWYOZF53.js +0 -7
- package/dist/esm/chunks/chunk.OWYOZF53.js.map +0 -7
- package/dist/esm/chunks/chunk.OXGCNOUY.js +0 -7
- package/dist/esm/chunks/chunk.PZAL7VQF.js +0 -7
- package/dist/esm/chunks/chunk.PZAL7VQF.js.map +0 -7
- package/dist/esm/chunks/chunk.QIMAHW7V.js +0 -7
- package/dist/esm/chunks/chunk.RB435MRJ.js +0 -7
- package/dist/esm/chunks/chunk.RB435MRJ.js.map +0 -7
- package/dist/esm/chunks/chunk.RBG6AMLV.js +0 -7
- package/dist/esm/chunks/chunk.RBG6AMLV.js.map +0 -7
- package/dist/esm/chunks/chunk.RCYIHHYO.js +0 -7
- package/dist/esm/chunks/chunk.RCYIHHYO.js.map +0 -7
- package/dist/esm/chunks/chunk.RLOZYTNN.js +0 -7
- package/dist/esm/chunks/chunk.RLOZYTNN.js.map +0 -7
- package/dist/esm/chunks/chunk.RN634NOB.js +0 -7
- package/dist/esm/chunks/chunk.RQ3RHGLB.js +0 -7
- package/dist/esm/chunks/chunk.RQ3RHGLB.js.map +0 -7
- package/dist/esm/chunks/chunk.S2KPWTRW.js +0 -7
- package/dist/esm/chunks/chunk.S2KPWTRW.js.map +0 -7
- package/dist/esm/chunks/chunk.TPXXHX5J.js +0 -7
- package/dist/esm/chunks/chunk.TPXXHX5J.js.map +0 -7
- package/dist/esm/chunks/chunk.UCIVBX64.js +0 -7
- package/dist/esm/chunks/chunk.UCIVBX64.js.map +0 -7
- package/dist/esm/chunks/chunk.VGKNQYHG.js +0 -7
- package/dist/esm/chunks/chunk.VGKNQYHG.js.map +0 -7
- package/dist/esm/chunks/chunk.VN7JOJVU.js +0 -7
- package/dist/esm/chunks/chunk.VNFATHAQ.js +0 -7
- package/dist/esm/chunks/chunk.VNFATHAQ.js.map +0 -7
- package/dist/esm/chunks/chunk.VRTR7WMN.js +0 -7
- package/dist/esm/chunks/chunk.VRTR7WMN.js.map +0 -7
- package/dist/esm/chunks/chunk.WXFJYCGO.js +0 -7
- package/dist/esm/chunks/chunk.WXFJYCGO.js.map +0 -7
- package/dist/esm/chunks/chunk.Y7ZZ7HDC.js +0 -7
- package/dist/esm/chunks/chunk.YTBNAGLS.js +0 -7
- package/dist/esm/chunks/chunk.ZY3ETQ3D.js +0 -7
- package/dist/esm/chunks/chunk.ZY3ETQ3D.js.map +0 -7
- package/dist/esm/product-icon/index.js +0 -7
- package/esm/chips/chip-set/chip-set-adapter.d.ts +0 -27
- package/esm/chips/chip-set/chip-set-adapter.js +0 -57
- package/esm/chips/chip-set/chip-set-foundation.d.ts +0 -38
- package/esm/chips/chip-set/chip-set-foundation.js +0 -82
- package/esm/product-icon/index.d.ts +0 -10
- package/esm/product-icon/index.js +0 -14
- package/esm/product-icon/product-icon-adapter.d.ts +0 -27
- package/esm/product-icon/product-icon-adapter.js +0 -50
- package/esm/product-icon/product-icon-constants.d.ts +0 -38
- package/esm/product-icon/product-icon-constants.js +0 -46
- package/esm/product-icon/product-icon-foundation.d.ts +0 -40
- package/esm/product-icon/product-icon-foundation.js +0 -116
- package/esm/product-icon/product-icon.d.ts +0 -37
- package/esm/product-icon/product-icon.js +0 -70
- package/styles/button-area/_mixins.scss +0 -47
- package/styles/chips/chip/_mixins.scss +0 -306
- package/styles/chips/chip/_variables.scss +0 -8
- package/styles/chips/chip-set/_mixins.scss +0 -40
- package/styles/divider/_mixins.scss +0 -47
- package/styles/file-picker/_mixins.scss +0 -155
- package/styles/file-picker/_variables.scss +0 -8
- package/styles/page-state/_mixins.scss +0 -123
- package/styles/page-state/_variables.scss +0 -9
- package/styles/product-icon/_mixins.scss +0 -49
- package/styles/product-icon/product-icon.scss +0 -16
- package/styles/skeleton/_mixins.scss +0 -132
- package/styles/skeleton/_variables.scss +0 -45
- package/styles/stack/_mixins.scss +0 -49
- package/styles/text-field/_base.scss +0 -76
- package/styles/text-field/_mixins.scss +0 -28
- package/styles/text-field/_selector.scss +0 -57
- package/styles/text-field/_variables.scss +0 -20
- package/styles/toolbar/_mixins.scss +0 -78
- package/styles/toolbar/_variables.scss +0 -10
- /package/dist/esm/chunks/{chunk.WJ26N3FC.js.map → chunk.22C7GQLX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CPD4RUF2.js.map → chunk.24MZM3AY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.O6WN2UP6.js.map → chunk.2537XOFQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KZMXTOLO.js.map → chunk.2AM2BKEO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KD4DVSJR.js.map → chunk.2WRAXA3H.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZYYPOLIG.js.map → chunk.2XPAYTK4.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OJFSECZE.js.map → chunk.3L77JY5H.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MBXBM6UI.js.map → chunk.47U6GVGZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UYAP5GFT.js.map → chunk.5A34DJLZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GAHE4QVB.js.map → chunk.5S7XNYRQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DOAQODLZ.js.map → chunk.6XLTVIUD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4YKLCBP2.js.map → chunk.7IJUN75W.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.66RZ2CUB.js.map → chunk.A4UH52SA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KIQZLNDG.js.map → chunk.AN2E2SSN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XH63INIK.js.map → chunk.AOSBUJWW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CLODJYSW.js.map → chunk.BSV27GU7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FOQH2SSU.js.map → chunk.CBLUXYH2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.L7BSLZCB.js.map → chunk.CIUPY66Y.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OUIWXKO2.js.map → chunk.CSOKFDFQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YLJTJKN4.js.map → chunk.EO3HELQ2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RKG66YKS.js.map → chunk.FBDRM4YN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GAQ3POUT.js.map → chunk.FOSKVNVV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Z7JF5PPO.js.map → chunk.FRTSXX33.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.253H47GA.js.map → chunk.G2HRYIIZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.D7L2IMHJ.js.map → chunk.GA6AO6FJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YOKBWEXF.js.map → chunk.GBGGUYTE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CISGGM56.js.map → chunk.GTKYO6VB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.STIZCKQA.js.map → chunk.HBAC6E7O.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WM6ZUVDR.js.map → chunk.IM36A2ZI.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YHIHHGMQ.js.map → chunk.IWVAI6XM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.J5MWS2KZ.js.map → chunk.IZRURH7C.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.E7TIN4JS.js.map → chunk.JLSFTWPE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HP4333ZN.js.map → chunk.JSTCCUKZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AXBMJBED.js.map → chunk.KDUH2DUE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.M7RYU4HQ.js.map → chunk.LKA5HQQY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IC4DLKE3.js.map → chunk.MC3UAHWS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DYBD4IRT.js.map → chunk.MPUP6QAP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KPNGLSCU.js.map → chunk.N632SJ7X.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WJLHVUHN.js.map → chunk.O56VP4OZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ULZJYWM2.js.map → chunk.OFXSMOV6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SWDOKJUF.js.map → chunk.OY3TG55O.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IO3A5OM6.js.map → chunk.PXRGQHWR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FXDHZCID.js.map → chunk.QKYCMDLB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WINWKU4K.js.map → chunk.QUWEAFGI.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LNMQ5A25.js.map → chunk.R3AWIPPK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KYACLC66.js.map → chunk.R66CYS27.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.V7HN24VV.js.map → chunk.RFCIELJM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OR5GB6X3.js.map → chunk.SOKORSUV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GDKJ4RZX.js.map → chunk.STSAE2XP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CJUX3PL5.js.map → chunk.SWKKDBO6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QQUSMJIM.js.map → chunk.UEYPCCFG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.F3FWXBDS.js.map → chunk.VBJ4WUVH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.U7S4DJTU.js.map → chunk.WBCQTZPS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NSKIEZWE.js.map → chunk.WBI34ZVP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SZETPZGY.js.map → chunk.WTUXAH7Z.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YTBNAGLS.js.map → chunk.XU3YSZPA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5JSCGQ7H.js.map → chunk.YS5JZHJ6.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QXZ3AAXD.js.map → chunk.YXHMD73U.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6DPDC4ON.js.map → chunk.Z6GRWPPN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4JEBLMI3.js.map → chunk.ZLNI2M3F.js.map} +0 -0
- /package/dist/esm/{product-icon → field-next/base}/index.js.map +0 -0
- /package/dist/esm/{chunks/chunk.SKLCDWYQ.js.map → field-next/index.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/select/core/base-select-constants.ts", "../../src/select/core/select-utils.ts", "../../src/select/core/base-select-foundation.ts", "../../src/select/core/base-select.ts", "../../src/select/core/base-select-adapter.ts"],
|
|
4
|
-
"sourcesContent": ["import { IListDropdownOption, IListDropdownOptionGroup } from '../../list-dropdown/list-dropdown-constants';\n\nexport type SelectOptionBuilder = (option: ISelectOption, parentElement: HTMLElement) => HTMLElement;\nexport type SelectSelectedTextBuilder = (selectedOptions: IListDropdownOption[]) => string;\nexport type SelectOptionListenerDestructor = () => void;\nexport type SelectBeforeValueChangeCallback<T> = (value: T | T[]) => boolean | Promise<boolean>;\n\nexport interface ISelectOption extends IListDropdownOption {}\nexport interface ISelectOptionGroup extends IListDropdownOptionGroup {}\n\nconst observedAttributes = {\n VALUE: 'value',\n MULTIPLE: 'multiple',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold',\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n CONSTRAIN_POPUP_WIDTH: 'constrain-popup-width',\n WRAP_OPTION_TEXT: 'wrap-option-text'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nconst events = {\n CHANGE: 'change'\n};\n\nexport const BASE_SELECT_CONSTANTS = {\n attributes,\n events\n};\n", "import { isDefined, isObject } from '@tylertech/forge-core';\nimport { ISelectOption, ISelectOptionGroup } from './base-select-constants';\n\nexport enum SelectOptionType { Option, Group }\n\n/**\n * Determines if the provided options are of the specified type.\n * @param options The options either grouped or individual.\n * @param type The type of option to detect.\n */\nexport function isSelectOptionType(options: ISelectOption[] | ISelectOptionGroup[], type: SelectOptionType): boolean {\n const isOptionGroups = options.some((o: ISelectOption | ISelectOptionGroup) => isOptionGroupObject(o));\n const isOptionTypes = options.some((o: ISelectOption | ISelectOptionGroup) => isOptionObject(o));\n return (isOptionGroups && type === SelectOptionType.Group) || (isOptionTypes && type === SelectOptionType.Option);\n}\n\nexport function isOptionGroupObject(o: ISelectOption | ISelectOptionGroup): o is ISelectOptionGroup {\n return isDefined(o) && isObject(o) && o.hasOwnProperty('options');\n}\n\nexport function isOptionObject(o: ISelectOption | ISelectOptionGroup): o is ISelectOption {\n return isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value');\n}\n", "import { isDefined, isDeepEqual, randomChars } from '@tylertech/forge-core';\nimport { OptionListenerDestructor } from '../select/select-adapter';\nimport { ISelectOption, ISelectOptionGroup, SelectSelectedTextBuilder, SelectOptionBuilder, BASE_SELECT_CONSTANTS, SelectBeforeValueChangeCallback } from './base-select-constants';\nimport { isSelectOptionType, SelectOptionType } from './select-utils';\nimport { IListDropdownConfig, ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from '../../list-dropdown/list-dropdown-constants';\nimport { IBaseSelectAdapter } from './base-select-adapter';\nimport { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from '../../list-dropdown/list-dropdown-aware-foundation';\n\nexport interface IBaseSelectFoundation extends IListDropdownAwareFoundation {\n value: any;\n selectedIndex: number | number[];\n options: ISelectOption[] | ISelectOptionGroup[];\n multiple: boolean;\n open: boolean;\n popupElement: HTMLElement | undefined;\n optionBuilder: SelectOptionBuilder;\n selectedTextBuilder: SelectSelectedTextBuilder;\n beforeValueChange: SelectBeforeValueChangeCallback<any>;\n appendOptions(options: ISelectOption[] | ISelectOptionGroup[]): void;\n selectAll(): void;\n deselectAll(): void;\n initialize(): void;\n initializeTarget(): void;\n disconnect(): void;\n}\n\nexport abstract class BaseSelectFoundation<T extends IBaseSelectAdapter> extends ListDropdownAwareFoundation implements IBaseSelectFoundation {\n protected _options: ISelectOption[] | ISelectOptionGroup[] = [];\n protected _value: any = [];\n protected _multiple = false;\n protected _open = false;\n protected _optionBuilder: SelectOptionBuilder;\n protected _selectedTextBuilder: SelectSelectedTextBuilder;\n protected _selectedValues: string[] = [];\n protected _selectedLabels: string[] = [];\n protected _selectedIndexes: number[] = [];\n protected _filterTimeout: number | undefined;\n protected _filterString = '';\n protected _identifier: string;\n protected _targetWidthCallback: () => number;\n protected _beforeValueChange: SelectBeforeValueChangeCallback<unknown>;\n private _focusListener: (evt: Event) => void;\n private _blurListener: (evt: FocusEvent) => void;\n private _clickListener: (evt: MouseEvent) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _optionsChangedListener: (options: ISelectOption[] | ISelectOptionGroup[]) => void;\n private _optionListenerDestructor: OptionListenerDestructor;\n private _activeChangeListener: (id: string) => void;\n private _dropdownScrollEndListener: () => void;\n private _valueChanging: Promise<boolean> | undefined;\n private _dismissListener: () => void;\n\n constructor(protected _adapter: T) {\n super();\n this._focusListener = evt => this._onFocus(evt);\n this._blurListener = evt => this._onBlur(evt);\n this._clickListener = evt => this._onClick(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._optionsChangedListener = options => this._onOptionsChanged(options);\n this._activeChangeListener = id => this._onActiveOptionChanged(id);\n this._dropdownScrollEndListener = () => this._onDropdownScrollEnd();\n this._dismissListener = () => this._onDismiss();\n this._identifier = randomChars();\n }\n\n protected abstract _onDropdownScrollEnd(): void;\n protected _onFocus(evt: Event): void {}\n\n public initialize(): void {\n if (this._optionListenerDestructor) {\n this._optionListenerDestructor();\n }\n this._optionListenerDestructor = this._adapter.setOptionsListener(this._optionsChangedListener);\n this._initializeValue();\n }\n\n public initializeTarget(): void {\n this._adapter.initializeAccessibility();\n this._adapter.setMultiple(this._multiple);\n this._adapter.addClickListener(this._clickListener);\n this._adapter.addTargetListener('blur', this._blurListener);\n this._adapter.addTargetListener('focus', this._focusListener);\n this._adapter.addTargetListener('keydown', this._keydownListener);\n }\n\n public disconnect(): void {\n this._adapter.removeClickListener(this._clickListener);\n this._adapter.removeTargetListener('blur', this._blurListener);\n this._adapter.removeTargetListener('focus', this._focusListener);\n this._adapter.removeTargetListener('keydown', this._keydownListener);\n\n if (this._open) {\n this._closeDropdown();\n }\n\n if (this._optionListenerDestructor) {\n this._optionListenerDestructor();\n }\n }\n\n public appendOptions(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._adapter.setOptions(options, false);\n if (this._open) {\n this._adapter.appendDropdownOptions(options);\n }\n }\n\n public selectAll(): void {\n if (this._multiple) {\n this.value = this._flatOptions.map(o => o.value);\n }\n }\n\n public deselectAll(): void {\n if (this._multiple) {\n this.value = [];\n }\n }\n\n protected get _flatOptions(): ISelectOption[] {\n if (isSelectOptionType(this._options, SelectOptionType.Group)) {\n return [].concat.apply([], (this._options as ISelectOptionGroup[]).map(g => g.options)) as ISelectOption[];\n }\n return this._options as ISelectOption[];\n }\n\n private get _nonDividerOptions(): ISelectOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n\n protected _initializeValue(): void {\n const options = (this._options.length && this._options) || this._adapter.getOptions();\n if (isDefined(this._value) && options.length) {\n this._applyValue(this._value);\n }\n }\n\n protected _onClick(evt: MouseEvent): void {\n if (evt.button !== 0) {\n return;\n }\n if (!this._open) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n\n protected _onBlur(evt: FocusEvent): void {\n // If the blur event was triggered by an element within the popup then ignore it\n if (this._adapter.isFocusWithinPopup(evt.relatedTarget as HTMLElement)) {\n return;\n }\n\n if (this._open) {\n this._closeDropdown();\n }\n }\n\n\n protected _openDropdown(): void {\n this._options = this._adapter.getOptions();\n\n if (!this._flatOptions.length) {\n return;\n }\n\n this._open = true;\n const config: IListDropdownConfig = {\n options: this._options,\n multiple: this._multiple,\n selectedValues: [...this._selectedValues],\n id: this._identifier,\n optionBuilder: this._optionBuilder,\n syncWidth: this._syncPopupWidth,\n constrainViewportWidth: this._constrainPopupWidth,\n wrapOptionText: this._wrapOptionText,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n scrollEndListener: this._dropdownScrollEndListener,\n activeChangeCallback: this._activeChangeListener,\n targetWidthCallback: this._targetWidthCallback,\n popupClasses: this._popupClasses,\n optionLimit: this._optionLimit,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n closeCallback: () => this._closeDropdown(),\n selectCallback: (value: any) => {\n const flatOptions = this._flatOptions;\n const option = flatOptions.find(o => o.value === value);\n if (option) {\n const index = flatOptions.indexOf(option);\n this._onSelect(option, index, true);\n }\n }\n };\n this._adapter.open(config);\n this._adapter.setDismissListener(this._dismissListener);\n }\n\n /**\n * Closes the dropdown.\n */\n protected _closeDropdown(): void {\n this._open = false;\n this._adapter.close();\n }\n\n /**\n * Handles selecting an item in the dropdown.\n * @param {ISelectOption} option The selected option.\n * @param {number} optionIndex The index of the selected option.\n */\n protected async _onSelect(option: ISelectOption, optionIndex: number, closeDropdown = true): Promise<boolean> {\n return new Promise(async resolve => {\n if (this._valueChanging) {\n return Promise.resolve(false);\n }\n\n const value = option ? option.value : '';\n const label = option ? option.label : '';\n\n // Store the current selections in case we need to rollback (if the event was cancelled)\n const prevValues = [...this._value];\n const prevSelectedValues = [...this._selectedValues];\n const prevSelectedLabels = [...this._selectedLabels];\n const prevSelectedIndexes = [...this._selectedIndexes];\n\n if (this._multiple) {\n if (this._selectedValues.includes(value)) {\n const index = this._selectedValues.indexOf(value);\n this._selectedValues.splice(index, 1);\n this._selectedLabels.splice(index, 1);\n this._selectedIndexes.splice(index, 1);\n } else {\n this._selectedValues.push(value);\n this._selectedLabels.push(label);\n this._selectedIndexes.push(optionIndex);\n }\n } else {\n if (isDefined(value)) {\n this._selectedValues[0] = value;\n this._selectedLabels[0] = label;\n this._selectedIndexes[0] = optionIndex;\n } else {\n this._selectedValues = [];\n this._selectedLabels = [];\n this._selectedIndexes = [];\n }\n }\n\n this._value = [...this._selectedValues];\n\n const rollbackValue = (): void => {\n this._selectedValues = [...prevSelectedValues];\n this._selectedLabels = [...prevSelectedLabels];\n this._selectedIndexes = [...prevSelectedIndexes];\n this._value = [...prevValues];\n };\n\n const applyValue = (): void => {\n // If we're in multiselect mode, we need to toggle the selected option\n if (this._multiple) {\n const isSelected = this._selectedIndexes.includes(optionIndex);\n this._adapter.toggleOptionMultiple(optionIndex, isSelected);\n }\n\n this._applySelection();\n };\n\n const data = this.multiple ? [...this._selectedValues] : this._selectedValues[0];\n\n // We close the dropdown immediately if in single selection mode\n if (this._open && closeDropdown && !this._multiple) {\n this._closeDropdown();\n }\n\n // First we check to see if there is an before change callback and execute that\n if (typeof this._beforeValueChange === 'function') {\n this._valueChanging = Promise.resolve(this._beforeValueChange.call(null, data));\n const shouldContinue = await this._valueChanging;\n this._valueChanging = undefined;\n if (!shouldContinue) {\n rollbackValue();\n this._tryUpdateDropdownPosition();\n return resolve(false);\n }\n }\n\n // Now we can emit the change event AFTER the before change callback has been executed and returned true\n const cancelled = !this._adapter.emitHostEvent(BASE_SELECT_CONSTANTS.events.CHANGE, data, true, true);\n if (!cancelled) {\n applyValue();\n } else {\n rollbackValue();\n }\n\n this._tryUpdateDropdownPosition();\n resolve(!cancelled);\n });\n }\n\n private _selectActiveOption(): void {\n const activeOptionIndex = this._adapter.getActiveOptionIndex();\n if (activeOptionIndex >= 0 && this._nonDividerOptions[activeOptionIndex]) {\n this._onSelect(this._nonDividerOptions[activeOptionIndex], activeOptionIndex);\n }\n }\n\n protected _tryUpdateDropdownPosition(): void {\n if (this._open) {\n this._adapter.queueDropdownPositionUpdate();\n }\n }\n\n protected _reset(): void {\n this._selectedValues = [];\n this._selectedLabels = [];\n this._selectedIndexes = [];\n }\n\n protected _applyValue(value: string | string[]): void {\n this._selectedValues = [];\n this._selectedLabels = [];\n\n this._options = this._adapter.getOptions();\n\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n this._value = [];\n\n // Ensure that the values passed are actually existing options\n for (const val of value) {\n if (!this._value.includes(val)) {\n this._value.push(val);\n }\n const option = this._flatOptions.find(o => isDeepEqual(o.value, val));\n if (option) {\n this._selectedValues.push(option.value);\n this._selectedLabels.push(option.label);\n }\n }\n\n // Update the selected indexes based on the values that are now selected\n this._selectedIndexes = this._selectedValues.map(val => this._flatOptions.findIndex(o => o.value === val));\n\n // Update the selected options in the dropdown\n this._adapter.patchSelectedValues(this._selectedValues);\n }\n \n /**\n * Handles the user dismissing the dropdown.\n */\n protected _onDismiss(): void {\n this._closeDropdown();\n }\n\n /** Creates the selected text value from the selected label values. */\n protected _getSelectedText(): string {\n if (typeof this._selectedTextBuilder === 'function') {\n const selectedOptions = this._flatOptions.filter(o => this._selectedValues.includes(o.value));\n return this._selectedTextBuilder(selectedOptions);\n }\n\n if (this._multiple) {\n if (this._selectedLabels.length) {\n if (this._selectedLabels.length === 1) {\n return this._selectedLabels[0];\n } else {\n return `${this._selectedLabels.length} options selected`;\n }\n } else {\n return '';\n }\n }\n \n return this._selectedLabels\n .filter(v => v && v.length)\n .join(' ')\n .trim();\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const isEscapeKey = evt.key === 'Escape' || evt.keyCode === 27;\n const isEnter = evt.key === 'Enter' || evt.keyCode === 13;\n const isSpace = evt.key === 'Space' || evt.keyCode === 32;\n const isArrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40;\n const isArrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38;\n const isFilterableCharacter = evt.keyCode >= 48 && evt.keyCode <= 90;\n const isHomeKey = evt.key === 'Home' || evt.keyCode === 36;\n const isEndKey = evt.key === 'End' || evt.keyCode === 35;\n const isTabKey = evt.key === 'Tab';\n\n // We automatically select the active option if the dropdown is open and in single selection mode\n if (isTabKey && this._open && !this._multiple) {\n this._selectActiveOption();\n return;\n }\n\n // If an active filter was started, clear it now\n if (!isFilterableCharacter && this._filterTimeout) {\n window.clearTimeout(this._filterTimeout);\n this._filterString = '';\n this._filterTimeout = undefined;\n }\n\n if (isEscapeKey) {\n evt.preventDefault();\n evt.stopPropagation();\n if (this._open) {\n this._closeDropdown();\n return;\n }\n }\n\n if (isSpace) {\n evt.preventDefault();\n\n if (!this._open) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n } else if (isEnter) {\n if (this._open) {\n evt.stopPropagation();\n evt.preventDefault();\n this._options = this._adapter.getOptions();\n this._selectActiveOption();\n }\n } else if (isArrowUp || isArrowDown) {\n evt.preventDefault();\n\n if (!this._open) {\n this._openDropdown();\n this._adapter.activateFirstOption();\n return;\n }\n\n if (this._flatOptions.length === 0) {\n return;\n }\n\n let optionIndex = 0;\n if (this._open) {\n optionIndex = this._adapter.getActiveOptionIndex();\n if (optionIndex === -1) {\n optionIndex = this._getFirstSelectedOptionIndex();\n }\n } else {\n optionIndex = this._getFirstSelectedOptionIndex();\n }\n\n if (isArrowUp) {\n optionIndex = this._getPreviousHighlightableOptionIndex(optionIndex, this._nonDividerOptions);\n } else {\n optionIndex = this._getNextHighlightableOptionIndex(optionIndex, this._nonDividerOptions);\n }\n\n this._adapter.highlightActiveOption(optionIndex);\n } else if (isHomeKey) {\n if (this._open) {\n evt.preventDefault();\n this._adapter.highlightActiveOption(this._nonDividerOptions.findIndex(o => !o.disabled));\n }\n } else if (isEndKey) {\n if (this._open) {\n evt.preventDefault();\n const options = this._nonDividerOptions;\n for (let i = options.length - 1; i >= 0; i--) {\n if (!options[i].disabled) {\n this._adapter.highlightActiveOption(i);\n break;\n }\n }\n }\n } else if (isFilterableCharacter) {\n this._filter(evt.key);\n }\n }\n\n private _getFirstSelectedOptionIndex(): number {\n return this._nonDividerOptions.findIndex(option => this._selectedValues.includes(option.value));\n }\n\n private _getPreviousHighlightableOptionIndex(startIndex: number, options: ISelectOption[]): number {\n let index = startIndex;\n if (index <= 0) {\n index = options.length - 1;\n } else {\n index--;\n }\n if (options[index].disabled) {\n return this._getPreviousHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _getNextHighlightableOptionIndex(startIndex: number, options: ISelectOption[]): number {\n let index = startIndex;\n if (index === options.length - 1) {\n index = 0;\n } else {\n index++;\n }\n if (options[index].disabled) {\n return this._getNextHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _filter(key: string): void {\n // This allows for typing numbers and/or characters while the select is focused to auto-select the closest match\n if (this._filterTimeout) {\n window.clearTimeout(this._filterTimeout);\n this._filterTimeout = undefined;\n }\n this._filterString += key;\n this._filterTimeout = window.setTimeout(() => {\n this._filterString = '';\n this._filterTimeout = undefined;\n }, 300);\n this._options = this._adapter.getOptions();\n // TODO: Enhance this to cycle through closest matches (see the native select)\n const matchedOption = this._flatOptions.find(({ disabled, label }) => {\n return !disabled && label.trim().toLowerCase().startsWith(this._filterString.trim().toLowerCase());\n });\n if (matchedOption) {\n const optionIndex = this._flatOptions.indexOf(matchedOption);\n if (this._open) {\n this._adapter.highlightActiveOption(optionIndex);\n } else if (!this._multiple) {\n this._onSelect(matchedOption, optionIndex, false);\n }\n }\n }\n\n private _onOptionsChanged(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._options = options;\n this._applyValue(this._value);\n }\n\n private _onActiveOptionChanged(id: string): void {\n this._adapter.updateActiveDescendant(id);\n }\n\n /** Gets/sets the value of the component. */\n public get value(): any {\n return this._multiple ? [...this._value] : this._value[0];\n }\n public set value(value: any) {\n let _value: string | string[];\n \n if (Array.isArray(value)) {\n _value = [ ...value ];\n } else {\n _value = value;\n }\n\n this._applyValue(_value);\n }\n\n /** Gets/sets the selected index(s). */\n public get selectedIndex(): number | number[] {\n return this._multiple ? [ ...this._selectedIndexes ] : this._selectedIndexes[0];\n }\n public set selectedIndex(indexes: number | number[]) {\n this._options = this._adapter.getOptions();\n\n let indicies: number [];\n if (Array.isArray(indexes)) {\n indicies = [ ...indexes ];\n } else {\n indicies = [indexes];\n }\n\n indicies.sort();\n\n if (this.multiple) {\n this.value = indicies\n .map(index => this._flatOptions[index])\n .filter(o => o)\n .map(o => o.value);\n } else {\n const option = this._flatOptions[indicies[indicies.length - 1]];\n if (!option) {\n return;\n }\n this.value = option.value;\n }\n }\n\n /** Gets/sets the available options. */\n public get options(): ISelectOption[] | ISelectOptionGroup[] {\n return this._adapter.getOptions();\n }\n public set options(value: ISelectOption[] | ISelectOptionGroup[]) {\n let _value: ISelectOption[] | ISelectOptionGroup[];\n if (isSelectOptionType(value, SelectOptionType.Group)) {\n _value = (value as ISelectOptionGroup[]).map(v => ({ ...v }));\n } else {\n _value = (value as ISelectOption[]).map(v => ({ ...v }));\n }\n\n this._options = _value;\n this._adapter.setOptions(_value); // Must set options before intializing value\n this._initializeValue();\n\n if (this._open) {\n this._adapter.setDropdownOptions(_value);\n }\n }\n\n /** Gets/sets the multiple select state. */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n if (this._multiple !== value) {\n this._multiple = value;\n this._reset();\n if (this._open) {\n this._closeDropdown();\n }\n this._adapter.setMultiple(this._multiple);\n }\n }\n\n /** Gets/sets the open state of the dropdown. */\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n if (this._open !== value) {\n if (value) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n\n /** Gets/sets the builder callback to use when building options. */\n public get optionBuilder(): SelectOptionBuilder {\n return this._optionBuilder;\n }\n public set optionBuilder(value: SelectOptionBuilder) {\n this._optionBuilder = value;\n }\n\n /** Sets the selected text builder callback that will be executed when getting the selected text to display in the field. */\n public get selectedTextBuilder(): SelectSelectedTextBuilder {\n return this._selectedTextBuilder;\n }\n public set selectedTextBuilder(fn: SelectSelectedTextBuilder) {\n this._selectedTextBuilder = fn;\n }\n\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n this._optionLimit = value;\n }\n \n public get popupClasses(): string | string[] {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n this._popupClasses = value;\n }\n\n public get popupHeaderBuilder(): ListDropdownHeaderBuilder {\n return this._popupHeaderBuilder;\n }\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n public get popupFooterBuilder(): ListDropdownFooterBuilder {\n return this._popupFooterBuilder;\n }\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n /** Gets the currently active popup element when the dropdown is open. */\n public get popupElement(): HTMLElement | undefined {\n return this._adapter.popupElement;\n }\n\n /** Sets the callback to be executed when the user selects a value. */\n public get beforeValueChange(): SelectBeforeValueChangeCallback<any> {\n return this._beforeValueChange;\n }\n public set beforeValueChange(value: SelectBeforeValueChangeCallback<any>) {\n this._beforeValueChange = value;\n }\n}\n", "import { coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\n\nimport {\n SelectOptionBuilder,\n SelectSelectedTextBuilder,\n ISelectOption,\n ISelectOptionGroup,\n SelectBeforeValueChangeCallback,\n BASE_SELECT_CONSTANTS\n} from './base-select-constants';\nimport { IBaseSelectFoundation } from './base-select-foundation';\nimport { IListDropdownAware, ListDropdownAware } from '../../list-dropdown/list-dropdown-aware';\nimport { IPopupComponent } from '../../popup';\n\n\nexport interface IBaseSelectComponent extends IListDropdownAware {\n value: any;\n selectedIndex: number | number[];\n options: ISelectOption[] | ISelectOptionGroup[];\n multiple: boolean;\n open: boolean;\n optionBuilder: SelectOptionBuilder;\n selectedTextBuilder: SelectSelectedTextBuilder;\n popupElement: IPopupComponent | undefined;\n beforeValueChange: SelectBeforeValueChangeCallback<any>;\n appendOptions(options: ISelectOption[] | ISelectOption[]): void;\n selectAll(): void;\n deselectAll(): void;\n}\n\nexport abstract class BaseSelectComponent<T extends IBaseSelectFoundation> extends ListDropdownAware implements IBaseSelectComponent {\n protected _foundation: T;\n\n constructor() {\n super();\n }\n\n /** Gets/sets the value. */\n @FoundationProperty()\n public declare value: any;\n \n /** Gets/sets the selected index. */\n @FoundationProperty()\n public declare selectedIndex: number | number[];\n \n /** Gets/sets the available options. */\n @FoundationProperty()\n public declare options: ISelectOption[] | ISelectOptionGroup[];\n\n /** Gets/sets the multiple select state. */\n @FoundationProperty()\n public declare multiple: boolean;\n \n /** Gets the open state of the dropdown. */\n @FoundationProperty()\n public declare open: boolean;\n \n /** Sets the option builder callback that will be executed when building the option list in the dropdown. */\n @FoundationProperty()\n public declare optionBuilder: SelectOptionBuilder;\n \n /** Sets the selected text builder callback that will be executed when getting the selected text to display in the field. */\n @FoundationProperty()\n public declare selectedTextBuilder: SelectSelectedTextBuilder;\n\n /** Sets the callback to be executed when the user selects a value. */\n @FoundationProperty()\n public declare beforeValueChange: SelectBeforeValueChangeCallback<any>;\n\n /** Gets the popup element (when the dropdown is open). */\n @FoundationProperty({ set: false })\n public declare popupElement: IPopupComponent | undefined;\n \n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case BASE_SELECT_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case BASE_SELECT_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n }\n }\n\n public appendOptions(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._foundation.appendOptions(options);\n }\n\n public selectAll(): void {\n this._foundation.selectAll();\n }\n \n public deselectAll(): void {\n this._foundation.deselectAll();\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n}\n", "import { isDefined, isFunction, removeElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IBaseSelectComponent } from './base-select';\nimport { ListDropdown, IListDropdown } from '../../list-dropdown';\nimport { IListDropdownConfig, ListDropdownIconType } from '../../list-dropdown/list-dropdown-constants';\nimport { IOptionComponent, OPTION_CONSTANTS } from '../option';\nimport { IOptionGroupComponent, OPTION_GROUP_CONSTANTS } from '../option-group';\nimport { ISelectOption, ISelectOptionGroup, SelectOptionListenerDestructor } from './base-select-constants';\nimport { isOptionGroupObject } from './select-utils';\nimport { IPopupComponent, POPUP_CONSTANTS } from '../../popup';\n\nexport interface IBaseSelectAdapter extends IBaseAdapter {\n initializeAccessibility(): void;\n addClickListener(listener: (evt: Event) => void): void;\n removeClickListener(listener: (evt: Event) => void): void;\n addTargetListener(type: string, listener: (evt: Event) => void): void;\n removeTargetListener(type: string, listener: (evt: Event) => void): void;\n getOptions(): ISelectOption[] | ISelectOptionGroup[];\n setOptions(options: ISelectOption[] | ISelectOptionGroup[], clear?: boolean): void;\n open(config: IListDropdownConfig): void;\n close(): void;\n setDismissListener(listener: () => void): void;\n scrollSelectedOptionIntoView(): void;\n activateSelectedOption(): void;\n activateFirstOption(): void;\n getActiveOptionIndex(): number;\n highlightActiveOption(index: number): void;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n patchSelectedValues(selectedValues: string[]): void;\n updateActiveDescendant(id: string): void;\n setOptionsListener(listener: (options: ISelectOption[] | ISelectOptionGroup[]) => void): SelectOptionListenerDestructor;\n setDropdownOptions(options: ISelectOption[] | ISelectOptionGroup[]): void;\n appendDropdownOptions(options: ISelectOption[] | ISelectOptionGroup[]): void;\n setMultiple(multiple: boolean): void;\n isFocusWithinPopup(target: HTMLElement): boolean;\n queueDropdownPositionUpdate(): void;\n popupElement: HTMLElement | undefined;\n}\n\nexport abstract class BaseSelectAdapter extends BaseAdapter<IBaseSelectComponent> implements IBaseSelectAdapter {\n private _listDropdown?: IListDropdown;\n protected _targetElement: HTMLElement;\n\n constructor(component: IBaseSelectComponent) {\n super(component);\n }\n\n public abstract initializeAccessibility(): void;\n public abstract updateActiveDescendant(id: string): void;\n public abstract addClickListener(listener: (evt: Event) => void): void;\n public abstract removeClickListener(listener: (evt: Event) => void): void;\n public abstract addTargetListener(type: string, listener: (evt: Event) => void): void;\n public abstract removeTargetListener(type: string, listener: (evt: Event) => void): void;\n public abstract setMultiple(multiple: boolean): void;\n\n public get popupElement(): HTMLElement | undefined {\n return this._listDropdown?.dropdownElement;\n }\n\n public getOptions(): ISelectOption[] | ISelectOptionGroup[] {\n const optionGroupElements = Array.from(this._component.querySelectorAll(OPTION_GROUP_CONSTANTS.elementName)) as IOptionGroupComponent[];\n if (optionGroupElements.length) {\n return optionGroupElements.map(optionGroupElement => {\n const optionElements = Array.from(optionGroupElement.querySelectorAll(OPTION_CONSTANTS.elementName)) as IOptionComponent[];\n const options = this._createOptionsFromElements(optionElements);\n return {\n text: optionGroupElement.label,\n builder: optionGroupElement.builder,\n value: optionGroupElement.value,\n options\n } as ISelectOptionGroup;\n });\n } else {\n const optionElements = Array.from(this._component.querySelectorAll(OPTION_CONSTANTS.elementName)) as IOptionComponent[];\n return this._createOptionsFromElements(optionElements);\n }\n }\n\n private _createOptionsFromElements(optionElements: IOptionComponent[]): ISelectOption[] {\n return optionElements.map(o => {\n let optionClass = o.hasAttribute(OPTION_CONSTANTS.attributes.OPTION_CLASS) ? o.getAttribute(OPTION_CONSTANTS.attributes.OPTION_CLASS) as string : o.optionClass;\n if (typeof optionClass === 'string') {\n optionClass = optionClass.split(' ');\n }\n\n return {\n // eslint-disable-next-line @typescript-eslint/no-extra-parens\n label: o.hasAttribute(OPTION_CONSTANTS.attributes.LABEL) ? o.getAttribute(OPTION_CONSTANTS.attributes.LABEL) as string : (isDefined(o.label) ? o.label : o.innerText),\n secondaryLabel: o.hasAttribute(OPTION_CONSTANTS.attributes.SECONDARY_LABEL) ? o.getAttribute(OPTION_CONSTANTS.attributes.SECONDARY_LABEL) as string : isDefined(o.secondaryLabel) ? o.secondaryLabel : undefined,\n value: o.hasAttribute(OPTION_CONSTANTS.attributes.VALUE) ? o.getAttribute(OPTION_CONSTANTS.attributes.VALUE) : o.value,\n disabled: o.hasAttribute(OPTION_CONSTANTS.attributes.DISABLED),\n divider: o.hasAttribute(OPTION_CONSTANTS.attributes.DIVIDER),\n optionClass,\n leadingIcon: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON) as string : o.leadingIcon,\n leadingIconClass: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_CLASS) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_CLASS) as string : o.leadingIconClass,\n leadingIconType: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_TYPE) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_TYPE) as ListDropdownIconType : o.leadingIconType,\n leadingIconComponentProps: o.leadingIconComponentProps,\n trailingIcon: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON) as string : o.trailingIcon,\n trailingIconClass: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_CLASS) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_CLASS) as string : o.trailingIconClass,\n trailingIconType: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE) as ListDropdownIconType : o.trailingIconType,\n trailingIconComponentProps: o.trailingIconComponentProps,\n leadingBuilder: o.leadingBuilder,\n trailingBuilder: o.trailingBuilder\n };\n });\n }\n\n public open(config: IListDropdownConfig): void {\n this._listDropdown = new ListDropdown(this._targetElement, config);\n this._listDropdown.open();\n }\n\n public close(): void {\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n }\n\n public setDismissListener(listener: () => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n const dropdownElement = this._listDropdown.dropdownElement as IPopupComponent;\n if (dropdownElement.targetElement) {\n dropdownElement.targetElement.addEventListener(POPUP_CONSTANTS.events.BLUR, listener);\n }\n }\n\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n this._listDropdown?.toggleOptionMultiple(index, isSelected);\n }\n\n public getActiveOptionIndex(): number {\n return this._listDropdown?.getActiveOptionIndex() ?? -1;\n }\n\n public activateSelectedOption(): void {\n this._listDropdown?.activateSelectedOption();\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public highlightActiveOption(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public patchSelectedValues(selectedValues: string[]): void {\n this._listDropdown?.setSelectedValues(selectedValues);\n }\n\n public setOptionsListener(listener: (options: ISelectOption[] | ISelectOptionGroup[]) => void): SelectOptionListenerDestructor {\n // Watch for option value property changes\n const optionValueChangeListener: EventListener = evt => {\n evt.stopPropagation();\n listener(this.getOptions());\n };\n this._component.addEventListener(OPTION_CONSTANTS.events.VALUE_CHANGE, optionValueChangeListener);\n\n // Watch for DOM changes\n const observer = new MutationObserver(() => listener(this.getOptions()));\n observer.observe(this._component, { childList: true, subtree: true });\n\n return () => {\n this._component.removeEventListener(OPTION_CONSTANTS.events.VALUE_CHANGE, optionValueChangeListener);\n observer.disconnect();\n };\n }\n\n public setOptions(options: ISelectOption[] | ISelectOptionGroup[], clear = true): void {\n if (clear) {\n this._clearOptions();\n }\n\n for (const opt of options) {\n if (isOptionGroupObject(opt)) {\n const optionGroupElement = this._createOptionGroupElement(opt);\n for (const option of opt.options) {\n const optionElement = this._createOptionElement(option);\n optionGroupElement.appendChild(optionElement);\n }\n this._component.appendChild(optionGroupElement);\n } else {\n const optionElement = this._createOptionElement(opt);\n this._component.appendChild(optionElement);\n }\n }\n }\n\n public appendDropdownOptions(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._listDropdown?.appendOptions(options);\n }\n\n public setDropdownOptions(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._listDropdown?.setOptions(options);\n }\n\n public scrollSelectedOptionIntoView(): void {\n this._listDropdown?.scrollSelectedOptionIntoView();\n }\n\n public isFocusWithinPopup(target: HTMLElement): boolean {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._listDropdown.dropdownElement.contains(target);\n }\n\n public queueDropdownPositionUpdate(): void {\n if (!this.popupElement) {\n return;\n }\n // We need to wait for the next animation frame to ensure that the layout has been updated\n window.requestAnimationFrame(() => {\n const dropdownEl = this.popupElement as IPopupComponent | undefined;\n dropdownEl?.position();\n });\n }\n\n private _clearOptions(): void {\n // First we remove all option group elements\n const existingOptionGroupElements = Array.from(this._component.querySelectorAll(OPTION_GROUP_CONSTANTS.elementName));\n existingOptionGroupElements.forEach((optGroup: IOptionGroupComponent) => removeElement(optGroup));\n\n // Then find all top-level option elements that aren't inside of a group, and ensure that those are removed as well\n const existingOptionElements = Array.from(this._component.querySelectorAll(OPTION_CONSTANTS.elementName));\n existingOptionElements.forEach((o: HTMLElement) => removeElement(o));\n }\n\n private _createOptionGroupElement(group: ISelectOptionGroup): HTMLElement {\n const optionGroupElement = document.createElement('forge-option-group');\n Object.assign(optionGroupElement, group);\n return optionGroupElement;\n }\n\n private _createOptionElement(option: ISelectOption): HTMLElement {\n const optionElement = document.createElement('forge-option');\n Object.assign(optionElement, option);\n optionElement.textContent = option.label;\n return optionElement;\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { IListDropdownOption, IListDropdownOptionGroup } from '../../list-dropdown/list-dropdown-constants';\n\nexport type SelectOptionBuilder = (option: ISelectOption, parentElement: HTMLElement) => HTMLElement;\nexport type SelectSelectedTextBuilder = (selectedOptions: IListDropdownOption[]) => string;\nexport type SelectOptionListenerDestructor = () => void;\nexport type SelectBeforeValueChangeCallback<T> = (value: T | T[]) => boolean | Promise<boolean>;\n\nexport interface ISelectOption extends IListDropdownOption {}\nexport interface ISelectOptionGroup extends IListDropdownOptionGroup {}\n\nconst observedAttributes = {\n VALUE: 'value',\n MULTIPLE: 'multiple',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold',\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n CONSTRAIN_POPUP_WIDTH: 'constrain-popup-width',\n WRAP_OPTION_TEXT: 'wrap-option-text'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nconst events = {\n CHANGE: 'change'\n};\n\nexport const BASE_SELECT_CONSTANTS = {\n attributes,\n events\n};\n", "import { isDefined, isObject } from '@tylertech/forge-core';\nimport { ISelectOption, ISelectOptionGroup } from './base-select-constants';\n\nexport enum SelectOptionType { Option, Group }\n\n/**\n * Determines if the provided options are of the specified type.\n * @param options The options either grouped or individual.\n * @param type The type of option to detect.\n */\nexport function isSelectOptionType(options: ISelectOption[] | ISelectOptionGroup[], type: SelectOptionType): boolean {\n const isOptionGroups = options.some((o: ISelectOption | ISelectOptionGroup) => isOptionGroupObject(o));\n const isOptionTypes = options.some((o: ISelectOption | ISelectOptionGroup) => isOptionObject(o));\n return (isOptionGroups && type === SelectOptionType.Group) || (isOptionTypes && type === SelectOptionType.Option);\n}\n\nexport function isOptionGroupObject(o: ISelectOption | ISelectOptionGroup): o is ISelectOptionGroup {\n return isDefined(o) && isObject(o) && o.hasOwnProperty('options');\n}\n\nexport function isOptionObject(o: ISelectOption | ISelectOptionGroup): o is ISelectOption {\n return isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value');\n}\n", "import { isDefined, isDeepEqual, randomChars } from '@tylertech/forge-core';\nimport { OptionListenerDestructor } from '../select/select-adapter';\nimport { ISelectOption, ISelectOptionGroup, SelectSelectedTextBuilder, SelectOptionBuilder, BASE_SELECT_CONSTANTS, SelectBeforeValueChangeCallback } from './base-select-constants';\nimport { isSelectOptionType, SelectOptionType } from './select-utils';\nimport { IListDropdownConfig, ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from '../../list-dropdown/list-dropdown-constants';\nimport { IBaseSelectAdapter } from './base-select-adapter';\nimport { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from '../../list-dropdown/list-dropdown-aware-foundation';\n\nexport interface IBaseSelectFoundation extends IListDropdownAwareFoundation {\n value: any;\n selectedIndex: number | number[];\n options: ISelectOption[] | ISelectOptionGroup[];\n multiple: boolean;\n open: boolean;\n popupElement: HTMLElement | undefined;\n optionBuilder: SelectOptionBuilder;\n selectedTextBuilder: SelectSelectedTextBuilder;\n beforeValueChange: SelectBeforeValueChangeCallback<any>;\n appendOptions(options: ISelectOption[] | ISelectOptionGroup[]): void;\n selectAll(): void;\n deselectAll(): void;\n initialize(): void;\n initializeTarget(): void;\n disconnect(): void;\n}\n\nexport abstract class BaseSelectFoundation<T extends IBaseSelectAdapter> extends ListDropdownAwareFoundation implements IBaseSelectFoundation {\n protected _options: ISelectOption[] | ISelectOptionGroup[] = [];\n protected _value: any = [];\n protected _multiple = false;\n protected _open = false;\n protected _optionBuilder: SelectOptionBuilder;\n protected _selectedTextBuilder: SelectSelectedTextBuilder;\n protected _selectedValues: string[] = [];\n protected _selectedLabels: string[] = [];\n protected _selectedIndexes: number[] = [];\n protected _filterTimeout: number | undefined;\n protected _filterString = '';\n protected _identifier: string;\n protected _targetWidthCallback: () => number;\n protected _beforeValueChange: SelectBeforeValueChangeCallback<unknown>;\n private _focusListener: (evt: Event) => void;\n private _blurListener: (evt: FocusEvent) => void;\n private _clickListener: (evt: MouseEvent) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _optionsChangedListener: (options: ISelectOption[] | ISelectOptionGroup[]) => void;\n private _optionListenerDestructor: OptionListenerDestructor;\n private _activeChangeListener: (id: string) => void;\n private _dropdownScrollEndListener: () => void;\n private _valueChanging: Promise<boolean> | undefined;\n private _dismissListener: () => void;\n\n constructor(protected _adapter: T) {\n super();\n this._focusListener = evt => this._onFocus(evt);\n this._blurListener = evt => this._onBlur(evt);\n this._clickListener = evt => this._onClick(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._optionsChangedListener = options => this._onOptionsChanged(options);\n this._activeChangeListener = id => this._onActiveOptionChanged(id);\n this._dropdownScrollEndListener = () => this._onDropdownScrollEnd();\n this._dismissListener = () => this._onDismiss();\n this._identifier = randomChars();\n }\n\n protected abstract _onDropdownScrollEnd(): void;\n protected _onFocus(evt: Event): void {}\n\n public initialize(): void {\n if (this._optionListenerDestructor) {\n this._optionListenerDestructor();\n }\n this._optionListenerDestructor = this._adapter.setOptionsListener(this._optionsChangedListener);\n this._initializeValue();\n }\n\n public initializeTarget(): void {\n this._adapter.initializeAccessibility();\n this._adapter.setMultiple(this._multiple);\n this._adapter.addClickListener(this._clickListener);\n this._adapter.addTargetListener('blur', this._blurListener);\n this._adapter.addTargetListener('focus', this._focusListener);\n this._adapter.addTargetListener('keydown', this._keydownListener);\n }\n\n public disconnect(): void {\n this._adapter.removeClickListener(this._clickListener);\n this._adapter.removeTargetListener('blur', this._blurListener);\n this._adapter.removeTargetListener('focus', this._focusListener);\n this._adapter.removeTargetListener('keydown', this._keydownListener);\n\n if (this._open) {\n this._closeDropdown();\n }\n\n if (this._optionListenerDestructor) {\n this._optionListenerDestructor();\n }\n }\n\n public appendOptions(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._adapter.setOptions(options, false);\n if (this._open) {\n this._adapter.appendDropdownOptions(options);\n }\n }\n\n public selectAll(): void {\n if (this._multiple) {\n this.value = this._flatOptions.map(o => o.value);\n }\n }\n\n public deselectAll(): void {\n if (this._multiple) {\n this.value = [];\n }\n }\n\n protected get _flatOptions(): ISelectOption[] {\n if (isSelectOptionType(this._options, SelectOptionType.Group)) {\n return [].concat.apply([], (this._options as ISelectOptionGroup[]).map(g => g.options)) as ISelectOption[];\n }\n return this._options as ISelectOption[];\n }\n\n private get _nonDividerOptions(): ISelectOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n\n protected _initializeValue(): void {\n const options = (this._options.length && this._options) || this._adapter.getOptions();\n if (isDefined(this._value) && options.length) {\n this._applyValue(this._value);\n }\n }\n\n protected _onClick(evt: MouseEvent): void {\n if (evt.button !== 0) {\n return;\n }\n if (!this._open) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n\n protected _onBlur(evt: FocusEvent): void {\n // If the blur event was triggered by an element within the popup then ignore it\n if (this._adapter.isFocusWithinPopup(evt.relatedTarget as HTMLElement)) {\n return;\n }\n\n if (this._open) {\n this._closeDropdown();\n }\n }\n\n\n protected _openDropdown(): void {\n this._options = this._adapter.getOptions();\n\n if (!this._flatOptions.length) {\n return;\n }\n\n this._open = true;\n const config: IListDropdownConfig = {\n options: this._options,\n multiple: this._multiple,\n selectedValues: [...this._selectedValues],\n id: this._identifier,\n optionBuilder: this._optionBuilder,\n syncWidth: this._syncPopupWidth,\n constrainViewportWidth: this._constrainPopupWidth,\n wrapOptionText: this._wrapOptionText,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n scrollEndListener: this._dropdownScrollEndListener,\n activeChangeCallback: this._activeChangeListener,\n targetWidthCallback: this._targetWidthCallback,\n popupClasses: this._popupClasses,\n optionLimit: this._optionLimit,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n closeCallback: () => this._closeDropdown(),\n selectCallback: (value: any) => {\n const flatOptions = this._flatOptions;\n const option = flatOptions.find(o => o.value === value);\n if (option) {\n const index = flatOptions.indexOf(option);\n this._onSelect(option, index, true);\n }\n }\n };\n this._adapter.open(config);\n this._adapter.setDismissListener(this._dismissListener);\n }\n\n /**\n * Closes the dropdown.\n */\n protected _closeDropdown(): void {\n this._open = false;\n this._adapter.close();\n }\n\n /**\n * Handles selecting an item in the dropdown.\n * @param {ISelectOption} option The selected option.\n * @param {number} optionIndex The index of the selected option.\n */\n protected async _onSelect(option: ISelectOption, optionIndex: number, closeDropdown = true): Promise<boolean> {\n return new Promise(async resolve => {\n if (this._valueChanging) {\n return Promise.resolve(false);\n }\n\n const value = option ? option.value : '';\n const label = option ? option.label : '';\n\n // Store the current selections in case we need to rollback (if the event was cancelled)\n const prevValues = [...this._value];\n const prevSelectedValues = [...this._selectedValues];\n const prevSelectedLabels = [...this._selectedLabels];\n const prevSelectedIndexes = [...this._selectedIndexes];\n\n if (this._multiple) {\n if (this._selectedValues.includes(value)) {\n const index = this._selectedValues.indexOf(value);\n this._selectedValues.splice(index, 1);\n this._selectedLabels.splice(index, 1);\n this._selectedIndexes.splice(index, 1);\n } else {\n this._selectedValues.push(value);\n this._selectedLabels.push(label);\n this._selectedIndexes.push(optionIndex);\n }\n } else {\n if (isDefined(value)) {\n this._selectedValues[0] = value;\n this._selectedLabels[0] = label;\n this._selectedIndexes[0] = optionIndex;\n } else {\n this._selectedValues = [];\n this._selectedLabels = [];\n this._selectedIndexes = [];\n }\n }\n\n this._value = [...this._selectedValues];\n\n const rollbackValue = (): void => {\n this._selectedValues = [...prevSelectedValues];\n this._selectedLabels = [...prevSelectedLabels];\n this._selectedIndexes = [...prevSelectedIndexes];\n this._value = [...prevValues];\n };\n\n const applyValue = (): void => {\n // If we're in multiselect mode, we need to toggle the selected option\n if (this._multiple) {\n const isSelected = this._selectedIndexes.includes(optionIndex);\n this._adapter.toggleOptionMultiple(optionIndex, isSelected);\n }\n\n this._applySelection();\n };\n\n const data = this.multiple ? [...this._selectedValues] : this._selectedValues[0];\n\n // We close the dropdown immediately if in single selection mode\n if (this._open && closeDropdown && !this._multiple) {\n this._closeDropdown();\n }\n\n // First we check to see if there is an before change callback and execute that\n if (typeof this._beforeValueChange === 'function') {\n this._valueChanging = Promise.resolve(this._beforeValueChange.call(null, data));\n const shouldContinue = await this._valueChanging;\n this._valueChanging = undefined;\n if (!shouldContinue) {\n rollbackValue();\n this._tryUpdateDropdownPosition();\n return resolve(false);\n }\n }\n\n // Now we can emit the change event AFTER the before change callback has been executed and returned true\n const cancelled = !this._adapter.emitHostEvent(BASE_SELECT_CONSTANTS.events.CHANGE, data, true, true);\n if (!cancelled) {\n applyValue();\n } else {\n rollbackValue();\n }\n\n this._tryUpdateDropdownPosition();\n resolve(!cancelled);\n });\n }\n\n private _selectActiveOption(): void {\n const activeOptionIndex = this._adapter.getActiveOptionIndex();\n if (activeOptionIndex >= 0 && this._nonDividerOptions[activeOptionIndex]) {\n this._onSelect(this._nonDividerOptions[activeOptionIndex], activeOptionIndex);\n }\n }\n\n protected _tryUpdateDropdownPosition(): void {\n if (this._open) {\n this._adapter.queueDropdownPositionUpdate();\n }\n }\n\n protected _reset(): void {\n this._selectedValues = [];\n this._selectedLabels = [];\n this._selectedIndexes = [];\n }\n\n protected _applyValue(value: string | string[]): void {\n this._selectedValues = [];\n this._selectedLabels = [];\n\n this._options = this._adapter.getOptions();\n\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n this._value = [];\n\n // Ensure that the values passed are actually existing options\n for (const val of value) {\n if (!this._value.includes(val)) {\n this._value.push(val);\n }\n const option = this._flatOptions.find(o => isDeepEqual(o.value, val));\n if (option) {\n this._selectedValues.push(option.value);\n this._selectedLabels.push(option.label);\n }\n }\n\n // Update the selected indexes based on the values that are now selected\n this._selectedIndexes = this._selectedValues.map(val => this._flatOptions.findIndex(o => o.value === val));\n\n // Update the selected options in the dropdown\n this._adapter.patchSelectedValues(this._selectedValues);\n }\n \n /**\n * Handles the user dismissing the dropdown.\n */\n protected _onDismiss(): void {\n this._closeDropdown();\n }\n\n /** Creates the selected text value from the selected label values. */\n protected _getSelectedText(): string {\n if (typeof this._selectedTextBuilder === 'function') {\n const selectedOptions = this._flatOptions.filter(o => this._selectedValues.includes(o.value));\n return this._selectedTextBuilder(selectedOptions);\n }\n\n if (this._multiple) {\n if (this._selectedLabels.length) {\n if (this._selectedLabels.length === 1) {\n return this._selectedLabels[0];\n } else {\n return `${this._selectedLabels.length} options selected`;\n }\n } else {\n return '';\n }\n }\n \n return this._selectedLabels\n .filter(v => v && v.length)\n .join(' ')\n .trim();\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const isEscapeKey = evt.key === 'Escape' || evt.keyCode === 27;\n const isEnter = evt.key === 'Enter' || evt.keyCode === 13;\n const isSpace = evt.key === 'Space' || evt.keyCode === 32;\n const isArrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40;\n const isArrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38;\n const isFilterableCharacter = evt.keyCode >= 48 && evt.keyCode <= 90;\n const isHomeKey = evt.key === 'Home' || evt.keyCode === 36;\n const isEndKey = evt.key === 'End' || evt.keyCode === 35;\n const isTabKey = evt.key === 'Tab';\n\n // We automatically select the active option if the dropdown is open and in single selection mode\n if (isTabKey && this._open && !this._multiple) {\n this._selectActiveOption();\n return;\n }\n\n // If an active filter was started, clear it now\n if (!isFilterableCharacter && this._filterTimeout) {\n window.clearTimeout(this._filterTimeout);\n this._filterString = '';\n this._filterTimeout = undefined;\n }\n\n if (isEscapeKey) {\n evt.preventDefault();\n evt.stopPropagation();\n if (this._open) {\n this._closeDropdown();\n return;\n }\n }\n\n if (isSpace) {\n evt.preventDefault();\n\n if (!this._open) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n } else if (isEnter) {\n if (this._open) {\n evt.stopPropagation();\n evt.preventDefault();\n this._options = this._adapter.getOptions();\n this._selectActiveOption();\n }\n } else if (isArrowUp || isArrowDown) {\n evt.preventDefault();\n\n if (!this._open) {\n this._openDropdown();\n this._adapter.activateFirstOption();\n return;\n }\n\n if (this._flatOptions.length === 0) {\n return;\n }\n\n let optionIndex = 0;\n if (this._open) {\n optionIndex = this._adapter.getActiveOptionIndex();\n if (optionIndex === -1) {\n optionIndex = this._getFirstSelectedOptionIndex();\n }\n } else {\n optionIndex = this._getFirstSelectedOptionIndex();\n }\n\n if (isArrowUp) {\n optionIndex = this._getPreviousHighlightableOptionIndex(optionIndex, this._nonDividerOptions);\n } else {\n optionIndex = this._getNextHighlightableOptionIndex(optionIndex, this._nonDividerOptions);\n }\n\n this._adapter.highlightActiveOption(optionIndex);\n } else if (isHomeKey) {\n if (this._open) {\n evt.preventDefault();\n this._adapter.highlightActiveOption(this._nonDividerOptions.findIndex(o => !o.disabled));\n }\n } else if (isEndKey) {\n if (this._open) {\n evt.preventDefault();\n const options = this._nonDividerOptions;\n for (let i = options.length - 1; i >= 0; i--) {\n if (!options[i].disabled) {\n this._adapter.highlightActiveOption(i);\n break;\n }\n }\n }\n } else if (isFilterableCharacter) {\n this._filter(evt.key);\n }\n }\n\n private _getFirstSelectedOptionIndex(): number {\n return this._nonDividerOptions.findIndex(option => this._selectedValues.includes(option.value));\n }\n\n private _getPreviousHighlightableOptionIndex(startIndex: number, options: ISelectOption[]): number {\n let index = startIndex;\n if (index <= 0) {\n index = options.length - 1;\n } else {\n index--;\n }\n if (options[index].disabled) {\n return this._getPreviousHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _getNextHighlightableOptionIndex(startIndex: number, options: ISelectOption[]): number {\n let index = startIndex;\n if (index === options.length - 1) {\n index = 0;\n } else {\n index++;\n }\n if (options[index].disabled) {\n return this._getNextHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _filter(key: string): void {\n // This allows for typing numbers and/or characters while the select is focused to auto-select the closest match\n if (this._filterTimeout) {\n window.clearTimeout(this._filterTimeout);\n this._filterTimeout = undefined;\n }\n this._filterString += key;\n this._filterTimeout = window.setTimeout(() => {\n this._filterString = '';\n this._filterTimeout = undefined;\n }, 300);\n this._options = this._adapter.getOptions();\n // TODO: Enhance this to cycle through closest matches (see the native select)\n const matchedOption = this._flatOptions.find(({ disabled, label }) => {\n return !disabled && label.trim().toLowerCase().startsWith(this._filterString.trim().toLowerCase());\n });\n if (matchedOption) {\n const optionIndex = this._flatOptions.indexOf(matchedOption);\n if (this._open) {\n this._adapter.highlightActiveOption(optionIndex);\n } else if (!this._multiple) {\n this._onSelect(matchedOption, optionIndex, false);\n }\n }\n }\n\n private _onOptionsChanged(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._options = options;\n this._applyValue(this._value);\n }\n\n private _onActiveOptionChanged(id: string): void {\n this._adapter.updateActiveDescendant(id);\n }\n\n /** Gets/sets the value of the component. */\n public get value(): any {\n return this._multiple ? [...this._value] : this._value[0];\n }\n public set value(value: any) {\n let _value: string | string[];\n \n if (Array.isArray(value)) {\n _value = [ ...value ];\n } else {\n _value = value;\n }\n\n this._applyValue(_value);\n }\n\n /** Gets/sets the selected index(s). */\n public get selectedIndex(): number | number[] {\n return this._multiple ? [ ...this._selectedIndexes ] : this._selectedIndexes[0];\n }\n public set selectedIndex(indexes: number | number[]) {\n this._options = this._adapter.getOptions();\n\n let indicies: number [];\n if (Array.isArray(indexes)) {\n indicies = [ ...indexes ];\n } else {\n indicies = [indexes];\n }\n\n indicies.sort();\n\n if (this.multiple) {\n this.value = indicies\n .map(index => this._flatOptions[index])\n .filter(o => o)\n .map(o => o.value);\n } else {\n const option = this._flatOptions[indicies[indicies.length - 1]];\n if (!option) {\n return;\n }\n this.value = option.value;\n }\n }\n\n /** Gets/sets the available options. */\n public get options(): ISelectOption[] | ISelectOptionGroup[] {\n return this._adapter.getOptions();\n }\n public set options(value: ISelectOption[] | ISelectOptionGroup[]) {\n let _value: ISelectOption[] | ISelectOptionGroup[];\n if (isSelectOptionType(value, SelectOptionType.Group)) {\n _value = (value as ISelectOptionGroup[]).map(v => ({ ...v }));\n } else {\n _value = (value as ISelectOption[]).map(v => ({ ...v }));\n }\n\n this._options = _value;\n this._adapter.setOptions(_value); // Must set options before intializing value\n this._initializeValue();\n\n if (this._open) {\n this._adapter.setDropdownOptions(_value);\n }\n }\n\n /** Gets/sets the multiple select state. */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n if (this._multiple !== value) {\n this._multiple = value;\n this._reset();\n if (this._open) {\n this._closeDropdown();\n }\n this._adapter.setMultiple(this._multiple);\n }\n }\n\n /** Gets/sets the open state of the dropdown. */\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n if (this._open !== value) {\n if (value) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n\n /** Gets/sets the builder callback to use when building options. */\n public get optionBuilder(): SelectOptionBuilder {\n return this._optionBuilder;\n }\n public set optionBuilder(value: SelectOptionBuilder) {\n this._optionBuilder = value;\n }\n\n /** Sets the selected text builder callback that will be executed when getting the selected text to display in the field. */\n public get selectedTextBuilder(): SelectSelectedTextBuilder {\n return this._selectedTextBuilder;\n }\n public set selectedTextBuilder(fn: SelectSelectedTextBuilder) {\n this._selectedTextBuilder = fn;\n }\n\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n this._optionLimit = value;\n }\n \n public get popupClasses(): string | string[] {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n this._popupClasses = value;\n }\n\n public get popupHeaderBuilder(): ListDropdownHeaderBuilder {\n return this._popupHeaderBuilder;\n }\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n public get popupFooterBuilder(): ListDropdownFooterBuilder {\n return this._popupFooterBuilder;\n }\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n /** Gets the currently active popup element when the dropdown is open. */\n public get popupElement(): HTMLElement | undefined {\n return this._adapter.popupElement;\n }\n\n /** Sets the callback to be executed when the user selects a value. */\n public get beforeValueChange(): SelectBeforeValueChangeCallback<any> {\n return this._beforeValueChange;\n }\n public set beforeValueChange(value: SelectBeforeValueChangeCallback<any>) {\n this._beforeValueChange = value;\n }\n}\n", "import { coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\n\nimport {\n SelectOptionBuilder,\n SelectSelectedTextBuilder,\n ISelectOption,\n ISelectOptionGroup,\n SelectBeforeValueChangeCallback,\n BASE_SELECT_CONSTANTS\n} from './base-select-constants';\nimport { IBaseSelectFoundation } from './base-select-foundation';\nimport { IListDropdownAware, ListDropdownAware } from '../../list-dropdown/list-dropdown-aware';\nimport { IPopupComponent } from '../../popup';\n\n\nexport interface IBaseSelectComponent extends IListDropdownAware {\n value: any;\n selectedIndex: number | number[];\n options: ISelectOption[] | ISelectOptionGroup[];\n multiple: boolean;\n open: boolean;\n optionBuilder: SelectOptionBuilder;\n selectedTextBuilder: SelectSelectedTextBuilder;\n popupElement: IPopupComponent | undefined;\n beforeValueChange: SelectBeforeValueChangeCallback<any>;\n appendOptions(options: ISelectOption[] | ISelectOption[]): void;\n selectAll(): void;\n deselectAll(): void;\n}\n\nexport abstract class BaseSelectComponent<T extends IBaseSelectFoundation> extends ListDropdownAware implements IBaseSelectComponent {\n protected _foundation: T;\n\n constructor() {\n super();\n }\n\n /** Gets/sets the value. */\n @FoundationProperty()\n public declare value: any;\n \n /** Gets/sets the selected index. */\n @FoundationProperty()\n public declare selectedIndex: number | number[];\n \n /** Gets/sets the available options. */\n @FoundationProperty()\n public declare options: ISelectOption[] | ISelectOptionGroup[];\n\n /** Gets/sets the multiple select state. */\n @FoundationProperty()\n public declare multiple: boolean;\n \n /** Gets the open state of the dropdown. */\n @FoundationProperty()\n public declare open: boolean;\n \n /** Sets the option builder callback that will be executed when building the option list in the dropdown. */\n @FoundationProperty()\n public declare optionBuilder: SelectOptionBuilder;\n \n /** Sets the selected text builder callback that will be executed when getting the selected text to display in the field. */\n @FoundationProperty()\n public declare selectedTextBuilder: SelectSelectedTextBuilder;\n\n /** Sets the callback to be executed when the user selects a value. */\n @FoundationProperty()\n public declare beforeValueChange: SelectBeforeValueChangeCallback<any>;\n\n /**\n * Gets the popup element (when the dropdown is open).\n * @readonly\n */\n @FoundationProperty({ set: false })\n public declare popupElement: IPopupComponent | undefined;\n \n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case BASE_SELECT_CONSTANTS.attributes.MULTIPLE:\n this.multiple = coerceBoolean(newValue);\n break;\n case BASE_SELECT_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n }\n }\n\n public appendOptions(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._foundation.appendOptions(options);\n }\n\n public selectAll(): void {\n this._foundation.selectAll();\n }\n \n public deselectAll(): void {\n this._foundation.deselectAll();\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n}\n", "import { isDefined, isFunction, removeElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IBaseSelectComponent } from './base-select';\nimport { ListDropdown, IListDropdown } from '../../list-dropdown';\nimport { IListDropdownConfig, ListDropdownIconType } from '../../list-dropdown/list-dropdown-constants';\nimport { IOptionComponent, OPTION_CONSTANTS } from '../option';\nimport { IOptionGroupComponent, OPTION_GROUP_CONSTANTS } from '../option-group';\nimport { ISelectOption, ISelectOptionGroup, SelectOptionListenerDestructor } from './base-select-constants';\nimport { isOptionGroupObject } from './select-utils';\nimport { IPopupComponent, POPUP_CONSTANTS } from '../../popup';\n\nexport interface IBaseSelectAdapter extends IBaseAdapter {\n initializeAccessibility(): void;\n addClickListener(listener: (evt: Event) => void): void;\n removeClickListener(listener: (evt: Event) => void): void;\n addTargetListener(type: string, listener: (evt: Event) => void): void;\n removeTargetListener(type: string, listener: (evt: Event) => void): void;\n getOptions(): ISelectOption[] | ISelectOptionGroup[];\n setOptions(options: ISelectOption[] | ISelectOptionGroup[], clear?: boolean): void;\n open(config: IListDropdownConfig): void;\n close(): void;\n setDismissListener(listener: () => void): void;\n scrollSelectedOptionIntoView(): void;\n activateSelectedOption(): void;\n activateFirstOption(): void;\n getActiveOptionIndex(): number;\n highlightActiveOption(index: number): void;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n patchSelectedValues(selectedValues: string[]): void;\n updateActiveDescendant(id: string): void;\n setOptionsListener(listener: (options: ISelectOption[] | ISelectOptionGroup[]) => void): SelectOptionListenerDestructor;\n setDropdownOptions(options: ISelectOption[] | ISelectOptionGroup[]): void;\n appendDropdownOptions(options: ISelectOption[] | ISelectOptionGroup[]): void;\n setMultiple(multiple: boolean): void;\n isFocusWithinPopup(target: HTMLElement): boolean;\n queueDropdownPositionUpdate(): void;\n popupElement: HTMLElement | undefined;\n}\n\nexport abstract class BaseSelectAdapter extends BaseAdapter<IBaseSelectComponent> implements IBaseSelectAdapter {\n private _listDropdown?: IListDropdown;\n protected _targetElement: HTMLElement;\n\n constructor(component: IBaseSelectComponent) {\n super(component);\n }\n\n public abstract initializeAccessibility(): void;\n public abstract updateActiveDescendant(id: string): void;\n public abstract addClickListener(listener: (evt: Event) => void): void;\n public abstract removeClickListener(listener: (evt: Event) => void): void;\n public abstract addTargetListener(type: string, listener: (evt: Event) => void): void;\n public abstract removeTargetListener(type: string, listener: (evt: Event) => void): void;\n public abstract setMultiple(multiple: boolean): void;\n\n public get popupElement(): HTMLElement | undefined {\n return this._listDropdown?.dropdownElement;\n }\n\n public getOptions(): ISelectOption[] | ISelectOptionGroup[] {\n const optionGroupElements = Array.from(this._component.querySelectorAll(OPTION_GROUP_CONSTANTS.elementName)) as IOptionGroupComponent[];\n if (optionGroupElements.length) {\n return optionGroupElements.map(optionGroupElement => {\n const optionElements = Array.from(optionGroupElement.querySelectorAll(OPTION_CONSTANTS.elementName)) as IOptionComponent[];\n const options = this._createOptionsFromElements(optionElements);\n return {\n text: optionGroupElement.label,\n builder: optionGroupElement.builder,\n value: optionGroupElement.value,\n options\n } as ISelectOptionGroup;\n });\n } else {\n const optionElements = Array.from(this._component.querySelectorAll(OPTION_CONSTANTS.elementName)) as IOptionComponent[];\n return this._createOptionsFromElements(optionElements);\n }\n }\n\n private _createOptionsFromElements(optionElements: IOptionComponent[]): ISelectOption[] {\n return optionElements.map(o => {\n let optionClass = o.hasAttribute(OPTION_CONSTANTS.attributes.OPTION_CLASS) ? o.getAttribute(OPTION_CONSTANTS.attributes.OPTION_CLASS) as string : o.optionClass;\n if (typeof optionClass === 'string') {\n optionClass = optionClass.split(' ');\n }\n\n return {\n // eslint-disable-next-line @typescript-eslint/no-extra-parens\n label: o.hasAttribute(OPTION_CONSTANTS.attributes.LABEL) ? o.getAttribute(OPTION_CONSTANTS.attributes.LABEL) as string : (isDefined(o.label) ? o.label : o.innerText),\n secondaryLabel: o.hasAttribute(OPTION_CONSTANTS.attributes.SECONDARY_LABEL) ? o.getAttribute(OPTION_CONSTANTS.attributes.SECONDARY_LABEL) as string : isDefined(o.secondaryLabel) ? o.secondaryLabel : undefined,\n value: o.hasAttribute(OPTION_CONSTANTS.attributes.VALUE) ? o.getAttribute(OPTION_CONSTANTS.attributes.VALUE) : o.value,\n disabled: o.hasAttribute(OPTION_CONSTANTS.attributes.DISABLED),\n divider: o.hasAttribute(OPTION_CONSTANTS.attributes.DIVIDER),\n optionClass,\n leadingIcon: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON) as string : o.leadingIcon,\n leadingIconClass: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_CLASS) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_CLASS) as string : o.leadingIconClass,\n leadingIconType: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_TYPE) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_TYPE) as ListDropdownIconType : o.leadingIconType,\n leadingIconComponentProps: o.leadingIconComponentProps,\n trailingIcon: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON) as string : o.trailingIcon,\n trailingIconClass: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_CLASS) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_CLASS) as string : o.trailingIconClass,\n trailingIconType: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE) as ListDropdownIconType : o.trailingIconType,\n trailingIconComponentProps: o.trailingIconComponentProps,\n leadingBuilder: o.leadingBuilder,\n trailingBuilder: o.trailingBuilder\n };\n });\n }\n\n public open(config: IListDropdownConfig): void {\n this._listDropdown = new ListDropdown(this._targetElement, config);\n this._listDropdown.open();\n }\n\n public close(): void {\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n }\n\n public setDismissListener(listener: () => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n const dropdownElement = this._listDropdown.dropdownElement as IPopupComponent;\n if (dropdownElement.targetElement) {\n dropdownElement.targetElement.addEventListener(POPUP_CONSTANTS.events.BLUR, listener);\n }\n }\n\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n this._listDropdown?.toggleOptionMultiple(index, isSelected);\n }\n\n public getActiveOptionIndex(): number {\n return this._listDropdown?.getActiveOptionIndex() ?? -1;\n }\n\n public activateSelectedOption(): void {\n this._listDropdown?.activateSelectedOption();\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public highlightActiveOption(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public patchSelectedValues(selectedValues: string[]): void {\n this._listDropdown?.setSelectedValues(selectedValues);\n }\n\n public setOptionsListener(listener: (options: ISelectOption[] | ISelectOptionGroup[]) => void): SelectOptionListenerDestructor {\n // Watch for option value property changes\n const optionValueChangeListener: EventListener = evt => {\n evt.stopPropagation();\n listener(this.getOptions());\n };\n this._component.addEventListener(OPTION_CONSTANTS.events.VALUE_CHANGE, optionValueChangeListener);\n\n // Watch for DOM changes\n const observer = new MutationObserver(() => listener(this.getOptions()));\n observer.observe(this._component, { childList: true, subtree: true });\n\n return () => {\n this._component.removeEventListener(OPTION_CONSTANTS.events.VALUE_CHANGE, optionValueChangeListener);\n observer.disconnect();\n };\n }\n\n public setOptions(options: ISelectOption[] | ISelectOptionGroup[], clear = true): void {\n if (clear) {\n this._clearOptions();\n }\n\n for (const opt of options) {\n if (isOptionGroupObject(opt)) {\n const optionGroupElement = this._createOptionGroupElement(opt);\n for (const option of opt.options) {\n const optionElement = this._createOptionElement(option);\n optionGroupElement.appendChild(optionElement);\n }\n this._component.appendChild(optionGroupElement);\n } else {\n const optionElement = this._createOptionElement(opt);\n this._component.appendChild(optionElement);\n }\n }\n }\n\n public appendDropdownOptions(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._listDropdown?.appendOptions(options);\n }\n\n public setDropdownOptions(options: ISelectOption[] | ISelectOptionGroup[]): void {\n this._listDropdown?.setOptions(options);\n }\n\n public scrollSelectedOptionIntoView(): void {\n this._listDropdown?.scrollSelectedOptionIntoView();\n }\n\n public isFocusWithinPopup(target: HTMLElement): boolean {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._listDropdown.dropdownElement.contains(target);\n }\n\n public queueDropdownPositionUpdate(): void {\n if (!this.popupElement) {\n return;\n }\n // We need to wait for the next animation frame to ensure that the layout has been updated\n window.requestAnimationFrame(() => {\n const dropdownEl = this.popupElement as IPopupComponent | undefined;\n dropdownEl?.position();\n });\n }\n\n private _clearOptions(): void {\n // First we remove all option group elements\n const existingOptionGroupElements = Array.from(this._component.querySelectorAll(OPTION_GROUP_CONSTANTS.elementName));\n existingOptionGroupElements.forEach((optGroup: IOptionGroupComponent) => removeElement(optGroup));\n\n // Then find all top-level option elements that aren't inside of a group, and ensure that those are removed as well\n const existingOptionElements = Array.from(this._component.querySelectorAll(OPTION_CONSTANTS.elementName));\n existingOptionElements.forEach((o: HTMLElement) => removeElement(o));\n }\n\n private _createOptionGroupElement(group: ISelectOptionGroup): HTMLElement {\n const optionGroupElement = document.createElement('forge-option-group');\n Object.assign(optionGroupElement, group);\n return optionGroupElement;\n }\n\n private _createOptionElement(option: ISelectOption): HTMLElement {\n const optionElement = document.createElement('forge-option');\n Object.assign(optionElement, option);\n optionElement.textContent = option.label;\n return optionElement;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["observedAttributes", "attributes", "__spreadValues", "events", "BASE_SELECT_CONSTANTS", "SelectOptionType", "isSelectOptionType", "options", "type", "isOptionGroups", "o", "isOptionGroupObject", "isOptionTypes", "isOptionObject", "isDefined", "isObject", "BaseSelectFoundation", "ListDropdownAwareFoundation", "_adapter", "evt", "options", "id", "randomChars", "o", "isSelectOptionType", "g", "isDefined", "config", "value", "flatOptions", "option", "index", "optionIndex", "closeDropdown", "resolve", "label", "prevValues", "prevSelectedValues", "prevSelectedLabels", "prevSelectedIndexes", "rollbackValue", "applyValue", "isSelected", "data", "shouldContinue", "cancelled", "BASE_SELECT_CONSTANTS", "activeOptionIndex", "val", "isDeepEqual", "selectedOptions", "v", "isEscapeKey", "isEnter", "isSpace", "isArrowDown", "isArrowUp", "isFilterableCharacter", "isHomeKey", "isEndKey", "i", "startIndex", "key", "matchedOption", "disabled", "_value", "indexes", "indicies", "__spreadValues", "fn", "BaseSelectComponent", "ListDropdownAware", "name", "oldValue", "newValue", "BASE_SELECT_CONSTANTS", "coerceBoolean", "options", "__decorateClass", "FoundationProperty", "BaseSelectAdapter", "BaseAdapter", "component", "_a", "optionGroupElements", "OPTION_GROUP_CONSTANTS", "optionGroupElement", "optionElements", "OPTION_CONSTANTS", "options", "o", "optionClass", "isDefined", "config", "ListDropdown", "listener", "dropdownElement", "POPUP_CONSTANTS", "index", "isSelected", "_b", "selectedValues", "optionValueChangeListener", "evt", "observer", "clear", "opt", "isOptionGroupObject", "option", "optionElement", "target", "dropdownEl", "optGroup", "removeElement", "group"]
|
|
7
7
|
}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import{i as a}from"./chunk.J2M2MXP2.js";function u(t){return t.ownerDocument||document}function p(t){return t&&t.nodeType===1}function L(t,e){if(!p(t))throw new Error("DOMUtils - elementParents: invalid element argument");let o=[];for(;t.parentElement&&(o.push(t.parentElement),!(t.parentElement===e||t.parentElement===u(t).body));)t.parentElement&&t.parentElement.parentNode&&t.parentElement.parentNode.nodeType===11?t=t.parentElement.parentNode.host:t=t.parentElement;return o}function g(t,e){if(!p(t))throw new Error("DOMUtils - offset: invalid element argument");let o=t.getBoundingClientRect(),n=u(t).defaultView,r=e||n.document.documentElement,i={width:o.width,height:o.width,top:0,left:0,bottom:0,right:0};if(!e||r===n.document.documentElement||r===n.document.body)i.top=n.scrollY+o.top,i.bottom=r.clientHeight-n.scrollY-o.bottom,i.left=n.scrollX+o.left,i.right=r.clientWidth-n.scrollX-o.right;else{if(!p(e))throw new Error("DOMUtils - offset: invalid parentElement argument");let s=e.getBoundingClientRect();i.top=o.top-s.top,i.bottom=s.bottom-o.bottom,i.left=o.left-s.left,i.right=s.right-o.right}return{width:Math.round(o.width),height:Math.round(o.height),top:Math.round(i.top),bottom:Math.round(i.bottom),left:Math.round(i.left),right:Math.round(i.right)}}function M(t,e,o){let n=i=>{let s=()=>{i.stopPropagation(),i.cancelable&&i.preventDefault();let l=i.type==="touchstart"?i.target:u(t).activeElement;t.contains(l)||e(l)};o?window.requestAnimationFrame(()=>s()):s()},r=u(t);return r.addEventListener("blur",n,!0),r.addEventListener("touchstart",n,!0),()=>{r.removeEventListener("blur",n,!0),r.removeEventListener("touchstart",n,!0)}}function N(t){for(;t.lastChild;)t.removeChild(t.lastChild)}function P(t,e){return e.parentNode.replaceChild(t,e)}function b(t,e){a(t)?t.forEach(o=>e.classList.add(o)):e.classList.add(t)}function v(t,e){a(t)?t.forEach(o=>e.classList.remove(o)):e.classList.remove(t)}function x(){let t=document.createElement("fakeelement"),e={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(let o in e)if(t.style[o]!==void 0)return e[o]}async function W(t,e,o=!0){return t.classList.add(e),new Promise(n=>{let r=x(),i=()=>{o&&t.classList.remove(e),t.removeEventListener(r,i),n()};t.addEventListener(r,i)})}function E(t){t.removeNode?t.removeNode(!0):t.remove?t.remove():t.parentNode.removeChild(t)}function O(t){if(typeof t=="string"){if(t[t.length-1]==="%")return t;if(t.slice(-2)==="px")return t;if(Number(t)>=0)return`${t}px`}else if(typeof t=="number"&&t>=0)return`${t}px`}function R(t){let e=document.createElement("div");e.style.position="absolute",e.style.top="-99999px",e.style.left="-99999px",e.style.visibility="hidden",e.appendChild(t.cloneNode(!0)),document.body.appendChild(e);let o={width:e.scrollWidth,height:e.scrollHeight};return E(e),e=void 0,o}function H(t){return t.children.length?Promise.resolve():new Promise(e=>{let o=new MutationObserver(n=>{t.children.length&&(o.disconnect(),e())});o.observe(t,{childList:!0})})}function T(t,e){let o=f(t,e);return o.length?Promise.resolve(o[0]):new Promise(n=>{let r=new MutationObserver(i=>{if(i.reduce((l,c)=>l+c.addedNodes.length,0)>0){let l=f(t,e);l.length&&(r.disconnect(),n(l[0]))}});r.observe(t,{childList:!0,subtree:!0})})}function D(t){return new Promise(e=>{let o=t.querySelector("input");o&&e(o);let n=new MutationObserver(r=>{if(r.reduce((s,l)=>s+l.addedNodes.length,0)>0){let s=t.querySelector("input");s&&(n.disconnect(),e(s))}});n.observe(t,{childList:!0,subtree:!0})})}function U(t,e){let o=t&&t.parentNode;for(;o;){if(e(o))return o;o=o.parentNode}return null}function V(t,e){let n=document.createElement("canvas").getContext("2d"),r=e?e.fontSize:16,i=e?e.fontFamily:"Roboto";return n.font=`${r}px ${i}`,n.measureText(t).width}function
|
|
7
|
-
//# sourceMappingURL=chunk.
|
|
6
|
+
import{i as a}from"./chunk.J2M2MXP2.js";function u(t){return t.ownerDocument||document}function p(t){return t&&t.nodeType===1}function L(t,e){if(!p(t))throw new Error("DOMUtils - elementParents: invalid element argument");let o=[];for(;t.parentElement&&(o.push(t.parentElement),!(t.parentElement===e||t.parentElement===u(t).body));)t.parentElement&&t.parentElement.parentNode&&t.parentElement.parentNode.nodeType===11?t=t.parentElement.parentNode.host:t=t.parentElement;return o}function g(t,e){if(!p(t))throw new Error("DOMUtils - offset: invalid element argument");let o=t.getBoundingClientRect(),n=u(t).defaultView,r=e||n.document.documentElement,i={width:o.width,height:o.width,top:0,left:0,bottom:0,right:0};if(!e||r===n.document.documentElement||r===n.document.body)i.top=n.scrollY+o.top,i.bottom=r.clientHeight-n.scrollY-o.bottom,i.left=n.scrollX+o.left,i.right=r.clientWidth-n.scrollX-o.right;else{if(!p(e))throw new Error("DOMUtils - offset: invalid parentElement argument");let s=e.getBoundingClientRect();i.top=o.top-s.top,i.bottom=s.bottom-o.bottom,i.left=o.left-s.left,i.right=s.right-o.right}return{width:Math.round(o.width),height:Math.round(o.height),top:Math.round(i.top),bottom:Math.round(i.bottom),left:Math.round(i.left),right:Math.round(i.right)}}function M(t,e,o){let n=i=>{let s=()=>{i.stopPropagation(),i.cancelable&&i.preventDefault();let l=i.type==="touchstart"?i.target:u(t).activeElement;t.contains(l)||e(l)};o?window.requestAnimationFrame(()=>s()):s()},r=u(t);return r.addEventListener("blur",n,!0),r.addEventListener("touchstart",n,!0),()=>{r.removeEventListener("blur",n,!0),r.removeEventListener("touchstart",n,!0)}}function N(t){for(;t.lastChild;)t.removeChild(t.lastChild)}function P(t,e){return e.parentNode.replaceChild(t,e)}function b(t,e){a(t)?t.forEach(o=>e.classList.add(o)):e.classList.add(t)}function v(t,e){a(t)?t.forEach(o=>e.classList.remove(o)):e.classList.remove(t)}function x(){let t=document.createElement("fakeelement"),e={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(let o in e)if(t.style[o]!==void 0)return e[o]}async function W(t,e,o=!0){return t.classList.add(e),new Promise(n=>{let r=x(),i=()=>{o&&t.classList.remove(e),t.removeEventListener(r,i),n()};t.addEventListener(r,i)})}function E(t){t.removeNode?t.removeNode(!0):t.remove?t.remove():t.parentNode.removeChild(t)}function O(t){if(typeof t=="string"){if(t[t.length-1]==="%")return t;if(t.slice(-2)==="px")return t;if(Number(t)>=0)return`${t}px`}else if(typeof t=="number"&&t>=0)return`${t}px`}function R(t){let e=document.createElement("div");e.style.position="absolute",e.style.top="-99999px",e.style.left="-99999px",e.style.visibility="hidden",e.appendChild(t.cloneNode(!0)),document.body.appendChild(e);let o={width:e.scrollWidth,height:e.scrollHeight};return E(e),e=void 0,o}function H(t){return t.children.length?Promise.resolve():new Promise(e=>{let o=new MutationObserver(n=>{t.children.length&&(o.disconnect(),e())});o.observe(t,{childList:!0})})}function T(t,e){let o=f(t,e);return o.length?Promise.resolve(o[0]):new Promise(n=>{let r=new MutationObserver(i=>{if(i.reduce((l,c)=>l+c.addedNodes.length,0)>0){let l=f(t,e);l.length&&(r.disconnect(),n(l[0]))}});r.observe(t,{childList:!0,subtree:!0})})}function D(t){return new Promise(e=>{let o=t.querySelector("input");o&&e(o);let n=new MutationObserver(r=>{if(r.reduce((s,l)=>s+l.addedNodes.length,0)>0){let s=t.querySelector("input");s&&(n.disconnect(),e(s))}});n.observe(t,{childList:!0,subtree:!0})})}function U(t,e){let o=t&&t.parentNode;for(;o;){if(e(o))return o;o=o.parentNode}return null}function V(t,e){let n=document.createElement("canvas").getContext("2d"),r=e?e.fontSize:16,i=e?e.fontFamily:"Roboto";return n.font=`${r}px ${i}`,n.measureText(t).width}function y(t,e){if(t.nodeType!==Node.ELEMENT_NODE)return!1;typeof e=="string"&&(e=e.replace(/\s+/,"").split(","));let o=Element.prototype.matches;return e.some(n=>o.call(t,n))}function f(t,e,o=!1){let n=[];if(!t)return n;if(typeof e=="string"&&(e=e.replace(/\s+/,"").split(",")),o&&y(t,e)&&n.indexOf(t)===-1&&n.push(t),t.tagName==="SLOT")t.assignedNodes().forEach(i=>n=n.concat(f(i,e,!0)));else{let r=t.shadowRoot?t.shadowRoot.firstElementChild:t.firstElementChild;for(;r;)n=n.concat(f(r,e,!0)),r=r.nextElementSibling}return n}function $(t=document){let e=t.activeElement;return!e||e===t.body?e:m(e)}function m(t){return t.shadowRoot&&t.shadowRoot.activeElement&&(t=m(t.shadowRoot.activeElement)),t}function B(t,e,o){e?b(o,t):v(o,t)}function F(t,e,o,n=""){e?t.setAttribute(o,n):t.removeAttribute(o)}function I(t,e,o,n){let r=t.getAttribute(e);(n===void 0||n===!0)&&(!r||!r.includes(o))?A(t,e,o):n||C(t,e,o)}function A(t,e,o){let n=t.getAttribute(e);!n||!n.length?t.setAttribute(e,o):t.setAttribute(e,`${n} ${o}`)}function C(t,e,o){if(!t.hasAttribute(e))return;let n=t.getAttribute(e);if(n){let r=n==null?void 0:n.replace(o,"");r=r.replace(/\s+/g," ").trim(),r.length?t.setAttribute(e,r):t.removeAttribute(e)}}function X(t,e,o="auto",n="nearest"){if(!t)return;if(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth){let i=g(e,t),s=i.top<=e.clientHeight,l=i.bottom<=e.clientHeight;if(s||l){let d=h(n,s,e.offsetTop,e.clientHeight,t.offsetTop,t.offsetHeight);t.scrollTo({top:d,behavior:o});return}let c=i.left<=e.clientWidth,w=i.right<=e.clientWidth;if(c||w){let d=h(n,c,e.offsetLeft,e.clientWidth,t.offsetLeft,t.offsetWidth);t.scrollTo({left:d,behavior:o})}}}function h(t,e,o,n,r,i){return t==="nearest"?e?o-r-n:o-i+n*2:o-r-i/2+n/2}function k(t){let e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstElementChild}function Y(t,e,o){let n=new MutationObserver(r=>{for(let i of r)i.attributeName&&e(i.attributeName,t.getAttribute(i.attributeName))});return n.observe(t,{attributes:!0,attributeFilter:o}),n}export{p as a,L as b,M as c,N as d,P as e,b as f,v as g,W as h,E as i,O as j,R as k,H as l,T as m,D as n,U as o,V as p,y as q,f as r,$ as s,B as t,F as u,I as v,A as w,X as x,k as y,Y as z};
|
|
7
|
+
//# sourceMappingURL=chunk.DCCFF327.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../node_modules/@tylertech/forge-core/esm/utils/dom-utils.js"],
|
|
4
4
|
"sourcesContent": ["import { isArray } from './utils';\n/**\n * Holds regular expressions\n */\n/* tslint:disable-next-line:require-private-underscore */\nconst REGULAR_EXPRESSIONS = {\n placement: {\n auto: /\\s?auto?\\s?/i,\n primary: /^(top|bottom|left|right)$/,\n secondary: /^(top|bottom|left|right|center)$/,\n topBottom: /^(top|bottom)$/\n },\n overflow: /(auto|scroll)/\n};\n/**\n * Holds the browser scrollbar width.\n */\n/* tslint:disable-next-line:require-private-underscore */\nlet SCROLLBAR_WIDTH;\n/**\n * Gets the ownerDocument for an element, if null, than returns the document element.\n * @param {Element} element The element to get the ownerDocument for\n * @returns {Document}\n */\nfunction _ownerDocument(element) {\n return element.ownerDocument || document;\n}\n/**\n * Retrieves an element based on the provided root and selector.\n * @param {Element} root The root element to search within.\n * @param {string} selector The selector for the child element.\n * @param {boolean} [allowNull=false] Should the method allow the element to be not found? Default is false.\n * @returns {HTMLElement}\n */\nexport function getElement(root, selector, allowNull = false) {\n const element = root.querySelector(selector);\n if (!element && !allowNull) {\n throw new Error(`Element not found with selector: ${selector}`);\n }\n return element;\n}\n/**\n * Checks if an element is a valid element.\n * @param {Element} element The node to test\n * @returns {boolean}\n */\nexport function isElement(element) {\n return element && element.nodeType === 1;\n}\n/**\n * Checks if an element is statically positioned.\n * @param {Element} element The node to test.\n * @returns {boolean}\n */\nexport function isPositionStatic(element) {\n return (window.getComputedStyle(element).position || 'static') === 'static';\n}\n/**\n * Parses a style string to a numeric value (removes 'px').\n * @param {string} value The style string to parse.\n * @returns {number}\n */\nexport function parseStyle(value) {\n if (!value || !value.length) {\n return 0;\n }\n const parsedValue = parseFloat(value);\n return isFinite(parsedValue) ? parsedValue : 0;\n}\n/**\n * Gets the index of an element in the parent element children.\n * @param {Element} element The element to get the index on.\n * @returns {number}\n */\nexport function elementIndex(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - elementIndex: invalid element argument');\n }\n if (!element.parentElement) {\n return -1;\n }\n return Array.from(element.parentElement.children).indexOf(element);\n}\n/**\n * Gets an array of parent elements up to the body element.\n * @param {Element} element The element to get the parents of.\n * @param {Element=} untilElement Optional element where traversal should stop.\n * @returns {Array}\n */\nexport function elementParents(element, untilElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - elementParents: invalid element argument');\n }\n const parentElements = [];\n while (element.parentElement) {\n parentElements.push(element.parentElement);\n if (element.parentElement === untilElement || element.parentElement === _ownerDocument(element).body) {\n break;\n }\n // pierce shadow DOM\n if (element.parentElement && element.parentElement.parentNode && element.parentElement.parentNode.nodeType === 11) {\n element = element.parentElement.parentNode.host;\n }\n else {\n element = element.parentElement;\n }\n }\n return parentElements;\n}\n/**\n * Gets the non-statically positioned parent of an element.\n * @param element The element to get the offset parent of.\n * @returns {Element}\n */\nexport function offsetParent(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offsetParent: invalid element argument');\n }\n let offsetParentElem = element.offsetParent;\n while (offsetParentElem && isPositionStatic(offsetParentElem)) {\n offsetParentElem = offsetParentElem.offsetParent;\n }\n return offsetParentElem || _ownerDocument(element).documentElement;\n}\n/**\n * Gets the browser scrollbar width.\n * @returns {number}\n */\nexport function scrollbarWidth() {\n if (SCROLLBAR_WIDTH === undefined) {\n const elem = document.createElement('div');\n elem.style.position = 'absolute';\n elem.style.top = '-100px';\n elem.style.left = '-100px';\n elem.style.width = '50px';\n elem.style.height = '50px';\n elem.style.overflow = 'scroll';\n document.body.appendChild(elem);\n const width = elem.offsetWidth - elem.clientWidth;\n removeElement(elem);\n SCROLLBAR_WIDTH = isFinite(width) ? width : 0;\n }\n return SCROLLBAR_WIDTH;\n}\n/**\n * Checks if an element is scrollable.\n * @param {Element} element The element to test for scrollability\n * @returns {boolean}\n */\nexport function isScrollable(element) {\n const elemStyle = window.getComputedStyle(element);\n return REGULAR_EXPRESSIONS.overflow.test('' + elemStyle.overflow + elemStyle.overflowY + elemStyle.overflowX);\n}\n/**\n * Gets the scroll parent of an element.\n * @param {Element} element The element to get the scroll parent of.\n * @param {boolean} [includeSelf=false] Should the element be checked for scrollability.\n * @returns {Element}\n */\nexport function scrollParent(element, includeSelf = false) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - scrollParent: invalid element argument');\n }\n const docElem = _ownerDocument(element).documentElement;\n const elemStyle = window.getComputedStyle(element);\n if (includeSelf && REGULAR_EXPRESSIONS.overflow.test('' + elemStyle.overflow + elemStyle.overflowY + elemStyle.overflowX)) {\n return element;\n }\n let excludeStatic = elemStyle.position === 'absolute';\n let scrollParentElem = element.parentElement || docElem;\n if (scrollParentElem === docElem || elemStyle.position === 'fixed') {\n return scrollParentElem;\n }\n while (scrollParentElem && scrollParentElem !== docElem) {\n const scrollParentStyle = window.getComputedStyle(scrollParentElem);\n if (excludeStatic && scrollParentStyle.position !== 'static') {\n excludeStatic = false;\n }\n if (!excludeStatic && REGULAR_EXPRESSIONS.overflow.test('' + scrollParentStyle.overflow + scrollParentStyle.overflowY + scrollParentStyle.overflowX)) {\n break;\n }\n scrollParentElem = scrollParentElem.scrollParent;\n }\n return scrollParentElem || docElem;\n}\n/**\n * Checks if the elements scroll parent scrollbars are visible.\n * @param {Element} element The element to check the scroll parent of.\n * @returns {IScrollbarVisibility}\n */\nexport function isScrollbarVisible(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - isDocumentScrolled: invalid element argument');\n }\n const scrollParentElem = scrollParent(element);\n return {\n x: scrollParentElem.scrollWidth > scrollParentElem.clientWidth,\n y: scrollParentElem.scrollHeight > scrollParentElem.clientHeight\n };\n}\n/**\n * Gets the offset from the element to the parent element edges.\n * If no parentElement is supplied, the documentElement will be used.\n * @param {Element} element The element to compute the offset for.\n * @param {Element=} parentElement Optional parent element to measure from.\n * @returns {DOMRect}\n */\nexport function offset(element, parentElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offset: invalid element argument');\n }\n const elemBCR = element.getBoundingClientRect();\n const win = _ownerDocument(element).defaultView;\n const docElem = parentElement || win.document.documentElement;\n const offsetValues = { width: elemBCR.width, height: elemBCR.width, top: 0, left: 0, bottom: 0, right: 0 };\n if (!parentElement || docElem === win.document.documentElement || docElem === win.document.body) {\n offsetValues.top = win.scrollY + elemBCR.top;\n offsetValues.bottom = docElem.clientHeight - win.scrollY - elemBCR.bottom;\n offsetValues.left = win.scrollX + elemBCR.left;\n offsetValues.right = docElem.clientWidth - win.scrollX - elemBCR.right;\n }\n else {\n if (!isElement(parentElement)) {\n throw new Error('DOMUtils - offset: invalid parentElement argument');\n }\n const parentBCR = parentElement.getBoundingClientRect();\n offsetValues.top = elemBCR.top - parentBCR.top;\n offsetValues.bottom = parentBCR.bottom - elemBCR.bottom;\n offsetValues.left = elemBCR.left - parentBCR.left;\n offsetValues.right = parentBCR.right - elemBCR.right;\n }\n return {\n width: Math.round(elemBCR.width),\n height: Math.round(elemBCR.height),\n top: Math.round(offsetValues.top),\n bottom: Math.round(offsetValues.bottom),\n left: Math.round(offsetValues.left),\n right: Math.round(offsetValues.right)\n };\n}\n/**\n * Gets the offset from the element to the parent element viewable edges.\n * If no parentElement is supplied, the documentElement will be used.\n * @param {Element} element The element to measure\n * @param {Element=} parentElement The parent element to measure to.\n * @returns {DOMRect}\n */\nexport function viewportOffset(element, parentElement) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - offset: invalid element argument');\n }\n const win = _ownerDocument(element).defaultView;\n parentElement = parentElement || win.document.documentElement;\n const parentElementOffset = offset(element, parentElement);\n const offsetValues = {\n top: parentElementOffset.top,\n bottom: 0,\n left: parentElementOffset.left,\n right: 0\n };\n if (parentElement === win.document.documentElement) {\n offsetValues.top -= win.scrollY;\n offsetValues.left -= win.scrollX;\n }\n else {\n const parentStyle = window.getComputedStyle(parentElement);\n offsetValues.top -= parseStyle('' + parentStyle.borderTopWidth);\n offsetValues.left -= parseStyle('' + parentStyle.borderLeftWidth);\n }\n offsetValues.bottom = parentElement.clientHeight - offsetValues.top - element.offsetHeight;\n offsetValues.right = parentElement.clientWidth - offsetValues.left - element.offsetWidth;\n return {\n width: parentElementOffset.width,\n height: parentElementOffset.height,\n top: Math.round(offsetValues.top),\n bottom: Math.round(offsetValues.bottom),\n left: Math.round(offsetValues.left),\n right: Math.round(offsetValues.right)\n };\n}\n/**\n * Checks if any part of an element is visible in the viewport.\n * @param {Element} element The element to check.\n * @returns {boolean}\n */\nexport function isElementInViewport(element) {\n if (!isElement(element)) {\n throw new Error('DOMUtils - isElementInViewport: invalid element argument');\n }\n const document = _ownerDocument(element);\n const scrollParentElem = scrollParent(element);\n const elemBCR = element.getBoundingClientRect();\n if (scrollParentElem !== document.documentElement && scrollParentElem !== document.body) {\n const scrollParentOffset = offset(element, scrollParentElem);\n if (scrollParentOffset.top + elemBCR.height < 0 ||\n scrollParentOffset.left + elemBCR.width < 0 ||\n scrollParentOffset.bottom + elemBCR.height - this.scrollbarWidth < 0 ||\n scrollParentOffset.right + elemBCR.width - this.scrollbarWidth < 0) {\n return false;\n }\n }\n if (elemBCR.top + elemBCR.height < 0 ||\n elemBCR.left + elemBCR.width < 0 ||\n elemBCR.bottom + elemBCR.height > document.documentElement.clientHeight ||\n elemBCR.right + elemBCR.width > document.documentElement.clientWidth) {\n return false;\n }\n return true;\n}\n/**\n * Adds an event listener to the document that will call the provided callback function\n * when an element and it's children no longer have focus. The blur and touchstart events are used\n * to evaluate the active element to determine if the callback should be called.\n *\n * @param {Element} element The element to add the event listener to.\n * @param {Function} callback The function to call when the element and children don't have focus.\n * @param {boolean} [delay=false] Should a RAF cycle occur before the callback is called.\n * @returns {Function} The function to call to remove the document events.\n */\nexport function notChildEventListener(element, callback, delay) {\n const evtHandler = (event) => {\n const handle = () => {\n event.stopPropagation();\n if (event.cancelable) {\n event.preventDefault();\n }\n const activeElement = (event.type === 'touchstart' ? event.target : _ownerDocument(element).activeElement);\n if (!element.contains(activeElement)) {\n callback(activeElement);\n }\n };\n if (delay) {\n window.requestAnimationFrame(() => handle());\n }\n else {\n handle();\n }\n };\n const docElem = _ownerDocument(element);\n docElem.addEventListener('blur', evtHandler, true);\n docElem.addEventListener('touchstart', evtHandler, true);\n return () => {\n docElem.removeEventListener('blur', evtHandler, true);\n docElem.removeEventListener('touchstart', evtHandler, true);\n };\n}\n/**\n * Removes all children from a DOM node.\n * @param node The DOM node to remove children from.\n */\nexport function removeAllChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n/**\n * Replaces one child node of the specified node with another.\n * @param newChild The new node to replace `oldChild`.\n * @param oldChild The existing node to be replaced.\n * @returns {Node} The replaced node. Same node as `oldChild`.\n */\nexport function replaceElement(newChild, oldChild) {\n return oldChild.parentNode.replaceChild(newChild, oldChild);\n}\n/**\n * Adds a class or array of classes to an element.\n *\n * @param {string | string[]} name The class(es) to add to the element\n * @param {Element} element The element to add class(es) to.\n */\nexport function addClass(name, element) {\n if (isArray(name)) {\n name.forEach(n => element.classList.add(n));\n }\n else {\n element.classList.add(name);\n }\n}\n/**\n * Removes a class or array of classes to an element.\n *\n * @param {string | string[]} name The class(es) to remove from the element\n * @param {Element} element The element to remove class(es) from.\n */\nexport function removeClass(name, element) {\n if (isArray(name)) {\n name.forEach(n => element.classList.remove(n));\n }\n else {\n element.classList.remove(name);\n }\n}\n/** Determines which type of animation event is supported. */\nexport function getAnimationEvent() {\n const el = document.createElement('fakeelement');\n // tslint:disable:object-literal-key-quotes\n const animations = {\n 'animation': 'animationend',\n 'OAnimation': 'oAnimationEnd',\n 'MozAnimation': 'animationend',\n 'WebkitAnimation': 'webkitAnimationEnd'\n };\n for (const t in animations) {\n if (el.style[t] !== undefined) {\n return animations[t];\n }\n }\n}\n/**\n * A helper method to trigger a keyframe animation via adding a class, and removing the class when the animation completes.\n * @param {HTMLElement} element The element to play the animation on.\n * @param {string} className The class to add that triggers the animation.\n */\nexport async function playKeyframeAnimation(element, className, remove = true) {\n element.classList.add(className);\n return new Promise(resolve => {\n const animationEvent = getAnimationEvent();\n const animationCompletedListener = () => {\n if (remove) {\n element.classList.remove(className);\n }\n element.removeEventListener(animationEvent, animationCompletedListener);\n resolve();\n };\n element.addEventListener(animationEvent, animationCompletedListener);\n });\n}\n/**\n * Removes an element from the DOM using the available remove method for that platform.\n * @param {HTMLElement} element The element to remove.\n */\nexport function removeElement(element) {\n if (element.removeNode) {\n element.removeNode(true);\n }\n else if (element.remove) {\n element.remove();\n }\n else {\n element.parentNode.removeChild(element);\n }\n}\n/**\n * Returns a width string that is safe for css based on the provided input.\n * @param {string | number} width\n * @returns {string | undefined} A width safe for using in CSS.\n */\nexport function safeCssWidth(width) {\n if (typeof width === 'string') {\n if (width[width.length - 1] === '%') {\n return width;\n }\n else if (width.slice(-2) === 'px') {\n return width;\n }\n else if (Number(width) >= 0) {\n return `${width}px`;\n }\n }\n else if (typeof width === 'number') {\n if (width >= 0) {\n return `${width}px`;\n }\n }\n return undefined;\n}\n/**\n * Calculates the size of an element that is not attached to the DOM.\n * @param {HTMLElement} element The element to calc the size of.\n * @returns {width, height} The size of the element.\n */\nexport function calcSizeUnattached(element) {\n let container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.top = '-99999px';\n container.style.left = '-99999px';\n container.style.visibility = 'hidden';\n container.appendChild(element.cloneNode(true));\n document.body.appendChild(container);\n const size = {\n width: container.scrollWidth,\n height: container.scrollHeight\n };\n removeElement(container);\n container = undefined;\n return size;\n}\n/**\n * Resolves a promise when the provided element has children.\n * @param {Element} element An element that does or will contain children.\n */\nexport function ensureChildren(element) {\n if (element.children.length) {\n return Promise.resolve();\n }\n return new Promise(resolve => {\n const observer = new MutationObserver(changes => {\n if (element.children.length) {\n observer.disconnect();\n resolve();\n }\n });\n observer.observe(element, { childList: true });\n });\n}\n/**\n * Resolves a promise when the provided element has a child that matches a given selector.\n * @param {Element} element An element that does or will contain children.\n * @param {string} selector A CSS selector to use for finding an element.\n */\nexport function ensureChild(element, selector) {\n const initialElements = deepQuerySelectorAll(element, selector);\n if (initialElements.length) {\n return Promise.resolve(initialElements[0]);\n }\n return new Promise(resolve => {\n const observer = new MutationObserver(changes => {\n const hasAddedNodes = changes.reduce((prev, curr) => prev + curr.addedNodes.length, 0) > 0;\n if (hasAddedNodes) {\n const foundElements = deepQuerySelectorAll(element, selector);\n if (foundElements.length) {\n observer.disconnect();\n resolve(foundElements[0]);\n }\n }\n });\n observer.observe(element, { childList: true, subtree: true });\n });\n}\n/**\n * Resolves a promise when the provided host element has an `<input>` element child\n * @param {HTMLElement} host An element that does or will contain children.\n */\nexport function ensureInputElement(host) {\n return new Promise(resolve => {\n const element = host.querySelector('input');\n if (element) {\n resolve(element);\n }\n const observer = new MutationObserver(changes => {\n const hasAddedNodes = changes.reduce((prev, curr) => prev + curr.addedNodes.length, 0) > 0;\n if (hasAddedNodes) {\n const foundElement = host.querySelector('input');\n if (foundElement) {\n observer.disconnect();\n resolve(foundElement);\n }\n }\n });\n observer.observe(host, { childList: true, subtree: true });\n });\n}\n/**\n * Walks up the tree starting a specific node and stops when the provided matcher function returns true.\n * @param {Node} node The node to start searching from.\n * @returns {Node | null} The closest matching ancestor node, or null if not found.\n */\nexport function walkUpUntil(node, matcher) {\n let parent = node && node.parentNode;\n while (parent) {\n if (matcher(parent)) {\n return parent;\n }\n parent = parent.parentNode;\n }\n return null;\n}\n/**\n * Calculates the width of a string given the provided font information.\n */\nexport function calculateFontWidth(value, info) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const fontSize = info ? info.fontSize : 16;\n const fontFamily = info ? info.fontFamily : 'Roboto';\n ctx.font = `${fontSize}px ${fontFamily}`;\n return ctx.measureText(value).width;\n}\n/**\n * Generates a CSS text-shadow style value based on the number of iterations and color provided.\n * @param {number} iterations The number of iterations for how long the shadow should be.\n * @param {string} color The color of the text shadow. Can be any CSS-safe color format. Ex. hex, rgb, rgba, hsl... etc.\n */\nexport function generateTextShadow(iterations, color) {\n const shadows = [];\n for (let i = 1; i <= iterations; i++) {\n shadows.push(`${i}px ${i}px ${color}`);\n }\n return shadows.join(', ');\n}\n/**\n * Checks if an element matches any of the provided selectors.\n * @param {Element} el The element to match.\n * @param {string[]} selectors The selectors to check the element against.\n */\nexport function matchesSelectors(el, selectors) {\n if (el.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n if (typeof selectors === 'string') {\n selectors = selectors.replace(/\\s+/, '').split(',');\n }\n const matchesFn = Element.prototype.matches;\n return selectors.some(selector => matchesFn.call(el, selector));\n}\n/**\n * Walks the DOM tree starting at a root element and checks if any of its children\n * match the provided selectors. Similar to the native `querySelectorAll` except\n * that it will traverse the shadow DOM as well as slotted nodes.\n * @param {Element} rootElement The element to start querying from.\n * @param {string[]} selectors An array of CSS selectors.\n * @param {boolean} [checkRootElement] True if the provided root element is to be matched against the selectors.\n */\nexport function deepQuerySelectorAll(rootElement, selectors, checkRootElement = false) {\n let nodes = [];\n if (!rootElement) {\n return nodes;\n }\n if (typeof selectors === 'string') {\n selectors = selectors.replace(/\\s+/, '').split(',');\n }\n if (checkRootElement && matchesSelectors(rootElement, selectors) && nodes.indexOf(rootElement) === -1) {\n nodes.push(rootElement);\n }\n if (rootElement.tagName === 'SLOT') {\n const slotNodes = rootElement.assignedNodes();\n slotNodes.forEach(slottedNode => nodes = nodes.concat(deepQuerySelectorAll(slottedNode, selectors, true)));\n }\n else {\n let node = rootElement.shadowRoot ? rootElement.shadowRoot.firstElementChild : rootElement.firstElementChild;\n while (node) {\n nodes = nodes.concat(deepQuerySelectorAll(node, selectors, true));\n node = node.nextElementSibling;\n }\n }\n return nodes;\n}\n/**\n * Gets the currently focused element within the document by also traversing shadow roots.\n * @param {Document} doc The document to get the active element from. Defaults to the current document.\n * @returns {Element}\n */\nexport function getActiveElement(doc = document) {\n const activeElement = doc.activeElement;\n if (!activeElement || activeElement === doc.body) {\n return activeElement;\n }\n return getActiveShadowElement(activeElement);\n}\n/**\n * Gets the active element within the provided elements shadow root. If the element\n * does not have a shadow root, the provided element is returned.\n * @param {Element} element The active element.\n */\nexport function getActiveShadowElement(element) {\n if (element.shadowRoot && element.shadowRoot.activeElement) {\n element = getActiveShadowElement(element.shadowRoot.activeElement);\n }\n return element;\n}\n/** Toggles a CSS class (or classes) on an element based on a boolean. */\nexport function toggleClass(el, hasClass, className) {\n if (hasClass) {\n addClass(className, el);\n }\n else {\n removeClass(className, el);\n }\n}\n/** Toggles a value-less attribute on an element. */\nexport function toggleAttribute(el, hasAttribute, name, value = '') {\n if (hasAttribute) {\n el.setAttribute(name, value);\n }\n else {\n el.removeAttribute(name);\n }\n}\n/** Toggles part of an attribute on an element. */\nexport function toggleOnAttribute(el, attribute, value, force) {\n const oldValue = el.getAttribute(attribute);\n if ((force === undefined || force === true) && (!oldValue || !oldValue.includes(value))) {\n appendToAttribute(el, attribute, value);\n }\n else if (!force) {\n removeFromAttribute(el, attribute, value);\n }\n}\n/** Appends a value to an attribute on an element, first setting it if it doesn't exist. */\nexport function appendToAttribute(el, attribute, value) {\n const oldValue = el.getAttribute(attribute);\n if (!oldValue || !oldValue.length) {\n el.setAttribute(attribute, value);\n }\n else {\n el.setAttribute(attribute, `${oldValue} ${value}`);\n }\n}\n/** Removes a value from an attribute on an element, removing the attribute if empty. */\nexport function removeFromAttribute(el, attribute, value) {\n if (!el.hasAttribute(attribute)) {\n return;\n }\n const oldValue = el.getAttribute(attribute);\n if (oldValue) {\n let newValue = oldValue === null || oldValue === void 0 ? void 0 : oldValue.replace(value, '');\n newValue = newValue.replace(/\\s+/g, ' ').trim();\n if (newValue.length) {\n el.setAttribute(attribute, newValue);\n }\n else {\n el.removeAttribute(attribute);\n }\n }\n}\n/**\n * Attempts to scroll a target element into view within a scrollable parent element, unless already visible within the container.\n * @param scrollElement The scrollable parent element.\n * @param targetElement The element to scroll into view.\n * @param behavior The scroll behavior. Defaults to 'auto'.\n * @param block The block position to anchor the target element to within the scroll element.\n */\nexport function tryScrollIntoView(scrollElement, targetElement, behavior = 'auto', block = 'nearest') {\n if (!scrollElement) {\n return;\n }\n const canScroll = scrollElement.scrollHeight > scrollElement.clientHeight || scrollElement.scrollWidth > scrollElement.clientWidth;\n if (canScroll) {\n const offsetRect = offset(targetElement, scrollElement);\n const isClippedTop = offsetRect.top <= targetElement.clientHeight;\n const isClippedBottom = offsetRect.bottom <= targetElement.clientHeight;\n if (isClippedTop || isClippedBottom) {\n const top = calcBlockScroll(block, isClippedTop, targetElement.offsetTop, targetElement.clientHeight, scrollElement.offsetTop, scrollElement.offsetHeight);\n scrollElement.scrollTo({ top, behavior });\n return;\n }\n const isClippedLeft = offsetRect.left <= targetElement.clientWidth;\n const isClippedRight = offsetRect.right <= targetElement.clientWidth;\n if (isClippedLeft || isClippedRight) {\n const left = calcBlockScroll(block, isClippedLeft, targetElement.offsetLeft, targetElement.clientWidth, scrollElement.offsetLeft, scrollElement.offsetWidth);\n scrollElement.scrollTo({ left, behavior });\n }\n }\n}\n/** Calculates the block anchor position for a target element within a scrollable parent element. */\nexport function calcBlockScroll(block, isClippedStart, targetOffset, targetSize, scrollOffset, scrollSize) {\n if (block === 'nearest') {\n if (isClippedStart) {\n return (targetOffset - scrollOffset) - targetSize;\n }\n return (targetOffset - scrollSize) + targetSize * 2;\n }\n return targetOffset - scrollOffset - scrollSize / 2 + targetSize / 2;\n}\n/**\n * Creates an element from an HTML string.\n */\nexport function elementFromHTML(html) {\n const template = document.createElement('template');\n html = html.trim();\n template.innerHTML = html;\n return template.content.firstElementChild;\n}\n/**\n * Observes changes to the provided attributes on a target element and executes a provided callback when changed.\n * @param element The element to observe.\n * @param listener The callback to execute when an attribute changes on the element.\n * @param attributeFilter The attributes to observe.\n * @returns A `MutationObserver` instasnce.\n */\nexport function createElementAttributeObserver(element, listener, attributeFilter) {\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName) {\n listener(mutation.attributeName, element.getAttribute(mutation.attributeName));\n }\n }\n });\n observer.observe(element, { attributes: true, attributeFilter });\n return observer;\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["_ownerDocument", "element", "isElement", "element", "elementParents", "element", "untilElement", "isElement", "parentElements", "_ownerDocument", "offset", "element", "parentElement", "isElement", "elemBCR", "win", "_ownerDocument", "docElem", "offsetValues", "parentBCR", "notChildEventListener", "element", "callback", "delay", "evtHandler", "event", "handle", "activeElement", "_ownerDocument", "docElem", "removeAllChildren", "node", "replaceElement", "newChild", "oldChild", "addClass", "name", "isArray", "n", "removeClass", "getAnimationEvent", "el", "animations", "t", "playKeyframeAnimation", "className", "remove", "resolve", "animationEvent", "animationCompletedListener", "removeElement", "safeCssWidth", "width", "calcSizeUnattached", "container", "size", "ensureChildren", "observer", "changes", "ensureChild", "selector", "initialElements", "deepQuerySelectorAll", "prev", "curr", "foundElements", "ensureInputElement", "host", "foundElement", "walkUpUntil", "matcher", "parent", "calculateFontWidth", "value", "info", "ctx", "fontSize", "fontFamily", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["_ownerDocument", "element", "isElement", "element", "elementParents", "element", "untilElement", "isElement", "parentElements", "_ownerDocument", "offset", "element", "parentElement", "isElement", "elemBCR", "win", "_ownerDocument", "docElem", "offsetValues", "parentBCR", "notChildEventListener", "element", "callback", "delay", "evtHandler", "event", "handle", "activeElement", "_ownerDocument", "docElem", "removeAllChildren", "node", "replaceElement", "newChild", "oldChild", "addClass", "name", "isArray", "n", "removeClass", "getAnimationEvent", "el", "animations", "t", "playKeyframeAnimation", "className", "remove", "resolve", "animationEvent", "animationCompletedListener", "removeElement", "safeCssWidth", "width", "calcSizeUnattached", "container", "size", "ensureChildren", "observer", "changes", "ensureChild", "selector", "initialElements", "deepQuerySelectorAll", "prev", "curr", "foundElements", "ensureInputElement", "host", "foundElement", "walkUpUntil", "matcher", "parent", "calculateFontWidth", "value", "info", "ctx", "fontSize", "fontFamily", "matchesSelectors", "el", "selectors", "matchesFn", "selector", "deepQuerySelectorAll", "rootElement", "checkRootElement", "nodes", "slottedNode", "node", "getActiveElement", "doc", "activeElement", "getActiveShadowElement", "element", "toggleClass", "hasClass", "className", "addClass", "removeClass", "toggleAttribute", "hasAttribute", "name", "value", "toggleOnAttribute", "attribute", "force", "oldValue", "appendToAttribute", "removeFromAttribute", "newValue", "tryScrollIntoView", "scrollElement", "targetElement", "behavior", "block", "offsetRect", "offset", "isClippedTop", "isClippedBottom", "top", "calcBlockScroll", "isClippedLeft", "isClippedRight", "left", "isClippedStart", "targetOffset", "targetSize", "scrollOffset", "scrollSize", "elementFromHTML", "html", "template", "createElementAttributeObserver", "listener", "attributeFilter", "observer", "mutations", "mutation"]
|
|
7
7
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import{g as r,h as n,i,j as a,k as s}from"./chunk.
|
|
6
|
+
import{g as r,h as n,i,j as a,k as s}from"./chunk.UQQQSJVM.js";import{u as o}from"./chunk.DCCFF327.js";function f(u){class l extends u{get form(){return this[a].form}get labels(){return this[a].labels}get name(){var e;return(e=this.getAttribute("name"))!=null?e:""}set name(e){o(this,!!e,"name",e)}[n](){return this[r]()}formDisabledCallback(e){this.disabled=e}set[s](e){let t=e==="select"?document.createElement("select"):document.createElement("input");t.setAttribute("type",e),t.name="internal",this._inputElement=t}[i](e){if(this._inputElement)return this[a].validity.customError?this[a].validationMessage:(Object.entries(e).forEach(([t,b])=>this._inputElement[t]=b),this._inputElement.validationMessage)}}return l.formAssociated=!0,l}export{f as a};
|
|
7
7
|
/**
|
|
8
8
|
* @license
|
|
9
9
|
* Copyright 2023 Google LLC
|
|
@@ -12,4 +12,4 @@ import{g as r,h as n,i,j as a,k as s}from"./chunk.UVXKHQQZ.js";import{v as o}fro
|
|
|
12
12
|
* Adapted and influenced from [Material Web](https://github.com/material-components/material-web).
|
|
13
13
|
* The original source code can be found at: [GitHub](https://github.com/material-components/material-web/blob/main/labs/behaviors/form-associated.ts)
|
|
14
14
|
*/
|
|
15
|
-
//# sourceMappingURL=chunk.
|
|
15
|
+
//# sourceMappingURL=chunk.EO3HELQ2.js.map
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import{a as e}from"./chunk.D7L2IMHJ.js";import{a as I}from"./chunk.DOAQODLZ.js";import{b as l,h as S}from"./chunk.GAQ3POUT.js";import{a as k,b as x}from"./chunk.KD4DVSJR.js";import{k as P,m as g}from"./chunk.4SP42UG3.js";import{a as w}from"./chunk.ZY3ETQ3D.js";import{a}from"./chunk.NVUMRW44.js";import{a as L,f as m,m as _}from"./chunk.UVXKHQQZ.js";import{a as E,e as T,f as c,k as A}from"./chunk.TPXXHX5J.js";import{a as u,k as y,l as d}from"./chunk.J2M2MXP2.js";import{d as n}from"./chunk.M3QDAYD2.js";var p=class extends w{constructor(t){super(t);this._anchorElement=null;this._overlayElement=null;this._contentElement=c(this._component,e.selectors.CONTENT),this._arrowElement=c(this._component,e.selectors.ARROW)}get anchorElement(){return this._anchorElement}syncAria(){let t=this._component.type==="description"?"tooltip":null;if(this._component[_]({role:t}),this._component[_]({ariaHidden:"true"},{setAttribute:!this._component.hasAttribute("aria-hidden")}),this._anchorElement){if(this._component.type==="label"&&this._anchorElement.hasAttribute("aria-labelledby")||this._component.type==="description"&&this._anchorElement.hasAttribute("aria-describedby"))return;switch(!this._component.hasAttribute("id")&&this._component.type!=="presentation"&&(this._component.id=`forge-tooltip-${u()}`),this._component.type){case"description":this._anchorElement.setAttribute("aria-describedby",this._component.id);break;case"label":this._anchorElement.setAttribute("aria-labelledby",this._component.id);break}}}detachAria(){var t,o,i,s;this._component.type==="description"&&((t=this._anchorElement)==null?void 0:t.getAttribute("aria-describedby"))===this._component.id&&((o=this._anchorElement)==null||o.removeAttribute("aria-describedby")),this._component.type==="label"&&((i=this._anchorElement)==null?void 0:i.getAttribute("aria-labelledby"))===this._component.id&&((s=this._anchorElement)==null||s.removeAttribute("aria-labelledby"))}setAnchorElement(t){this._anchorElement=t}tryLocateAnchorElement(t){this._anchorElement=this._tryFindAnchorElement(t)}addAnchorListener(t,o,i){var s;(s=this._anchorElement)==null||s.addEventListener(t,o,i)}removeAnchorListener(t,o){var i;(i=this._anchorElement)==null||i.removeEventListener(t,o)}addLightDismissListener(t){var o;(o=this._overlayElement)==null||o.addEventListener(l.events.LIGHT_DISMISS,t)}removeLightDismissListener(t){var o;(o=this._overlayElement)==null||o.removeEventListener(l.events.LIGHT_DISMISS,t)}show(){var t;if(this._overlayElement||(this._overlayElement=document.createElement(l.elementName),this._overlayElement.setAttribute("part","root:overlay")),this._overlayElement.placement=this._component.placement,this._overlayElement.anchorElement=this._anchorElement,this._overlayElement.arrowElement=this._arrowElement,this._overlayElement.offset={mainAxis:this._component.offset},this._overlayElement.flip=this._component.flip,this._component.fallbackPlacements&&(this._overlayElement.fallbackPlacements=this._component.fallbackPlacements),this._component.boundaryElement)this._overlayElement.boundaryElement=this._component.boundaryElement;else if(this._component.boundary){let o=P(this._component,this._component.boundary);this._overlayElement.boundaryElement=o}else this._overlayElement.boundaryElement=null;(t=this._component.shadowRoot)==null||t.appendChild(this._overlayElement),this._overlayElement.appendChild(this._contentElement),this._overlayElement.open=!0}hide(){var t,o;this._overlayElement&&(this._overlayElement.open=!1),(t=this._component.shadowRoot)==null||t.appendChild(this._contentElement),(o=this._overlayElement)==null||o.remove()}_tryFindAnchorElement(t){var o,i;if(t){let s=this._component.getRootNode(),b=(o=s.getElementById(t))!=null?o:s.querySelector(t);if(b)return b}return(i=this._component.previousElementSibling)!=null?i:this._component.parentElement}};var H=I(),h=class extends H{constructor(t){super();this._adapter=t;this._open=!1;this._type=e.defaults.TYPE;this._delay=e.defaults.DELAY;this._placement=e.defaults.PLACEMENT;this._offset=e.defaults.OFFSET;this._flip=e.defaults.FLIP;this._boundary=null;this._boundaryElement=null;this._fallbackPlacements=null;this._triggerTypes=e.defaults.TRIGGER_TYPES;this._hoverStartListener=this._onHoverStart.bind(this);this._hoverEndListener=this._onHoverEnd.bind(this);this._focusListener=this._onFocus.bind(this);this._blurListener=this._onBlur.bind(this);this._scrollListener=this._onTryHide.bind(this);this._mouseDownListener=this._onTryHide.bind(this);this._dragListener=this._onTryHide.bind(this);this._lightDismissListener=this._onTryHide.bind(this)}initialize(){this._adapter.anchorElement||this._adapter.tryLocateAnchorElement(this._anchor),this._adapter.syncAria(),this._attachAnchorListeners(),this._open&&this._show()}destroy(){this._open&&this._hide(),this._adapter.detachAria(),this._detachAnchorListeners()}syncTooltipAria(){this._adapter.syncAria()}_attachAnchorListeners(){if(!this._adapter.anchorElement)return;let t=[...this._triggerTypes];m||(t.splice(t.indexOf("hover"),1),t.push("longpress"));let o={hover:()=>this._adapter.addAnchorListener("mouseenter",this._hoverStartListener),longpress:()=>this._startLongpressListener(this._adapter.anchorElement),focus:()=>this._adapter.addAnchorListener("focusin",this._focusListener)};t.forEach(i=>o[i]())}_detachAnchorListeners(){if(!this._adapter.anchorElement)return;let t=[...this._triggerTypes];m||t.push("longpress");let o={hover:()=>{this._adapter.removeAnchorListener("mouseenter",this._hoverStartListener),this._adapter.removeAnchorListener("mousedown",this._hoverEndListener),this._adapter.removeAnchorListener("mouseleave",this._hoverEndListener)},longpress:()=>this._stopLongpressListener(this._adapter.anchorElement),focus:()=>{this._adapter.removeAnchorListener("focusin",this._focusListener),this._adapter.removeAnchorListener("focusout",this._blurListener)}};t.forEach(i=>o[i]())}_show(){this._open=!0,this._adapter.show(),this._attachDismissListeners(),this._adapter.toggleHostAttribute(e.attributes.OPEN,this._open)}_hide(){window.clearTimeout(this._hoverTimeout),window.clearTimeout(this._longpressVisibilityTimeout),this._open=!1,this._adapter.hide(),this._detachDismissListeners(),this._adapter.toggleHostAttribute(e.attributes.OPEN,this._open)}_attachDismissListeners(){this._adapter.addAnchorListener("mousedown",this._mouseDownListener),this._adapter.addAnchorListener("dragstart",this._dragListener),this._adapter.addDocumentListener("scroll",this._scrollListener),this._adapter.addDocumentListener("wheel",this._scrollListener),this._adapter.addLightDismissListener(this._lightDismissListener)}_detachDismissListeners(){this._adapter.removeAnchorListener("mousedown",this._mouseDownListener),this._adapter.removeAnchorListener("dragstart",this._dragListener),this._adapter.removeDocumentListener("scroll",this._scrollListener),this._adapter.removeDocumentListener("wheel",this._scrollListener),this._adapter.removeLightDismissListener(this._lightDismissListener)}_onHoverStart(t){this._open||(this._adapter.addAnchorListener("mousedown",this._hoverEndListener),this._adapter.addAnchorListener("mouseleave",this._hoverEndListener),this._delay?this._hoverTimeout=window.setTimeout(()=>{this._onTryShow()},this._delay):this._onTryShow())}_onHoverEnd(t){this._adapter.removeAnchorListener("mousedown",this._hoverEndListener),this._adapter.removeAnchorListener("mouseleave",this._hoverEndListener),window.clearTimeout(this._hoverTimeout),this._onTryHide()}_onFocus(t){this._open||(this._adapter.addAnchorListener("focusout",this._blurListener),this._onTryShow())}_onBlur(t){this._adapter.removeAnchorListener("focusout",this._blurListener),this._onTryHide()}_onLongpress(){this._onTryShow()}_onLongpressEnd(t){super._onLongpressEnd(t),this._longpressVisibilityTimeout=window.setTimeout(()=>{this._onTryHide()},e.numbers.LONGPRESS_VISIBILITY_DURATION)}_onTryShow(){this._open||this._show()}_onTryHide(){this._open&&this._hide()}get open(){return this._open}set open(t){t=!!t,this._open!==t&&(this._adapter.isConnected?this._open?this._hide():this._show():this._open=t)}get type(){return this._type}set type(t){t!=null||(t=e.defaults.TYPE),this._type!==t&&(this._type=t,this._adapter.isConnected&&this._adapter.syncAria(),this._adapter.toggleHostAttribute(e.attributes.TYPE,this._type!==e.defaults.TYPE,this._type))}get anchor(){return this._anchor}set anchor(t){this._anchor!==t&&(this._anchor=t,this._adapter.isConnected&&(this._detachAnchorListeners(),this._adapter.detachAria(),this._adapter.tryLocateAnchorElement(this._anchor),this._adapter.syncAria(),this._attachAnchorListeners()),this._adapter.toggleHostAttribute(e.attributes.ANCHOR,!!this._anchor,this._anchor))}get anchorElement(){return this._adapter.anchorElement}set anchorElement(t){this._adapter.anchorElement!==t&&(this._adapter.isConnected&&(this._detachAnchorListeners(),this._adapter.detachAria()),this._adapter.setAnchorElement(t),this._adapter.isConnected&&(this._adapter.syncAria(),this._attachAnchorListeners()))}get delay(){return this._delay}set delay(t){this._delay!==t&&(this._delay=t,this._adapter.setHostAttribute(e.attributes.DELAY,String(this._delay)))}get placement(){return this._placement}set placement(t){t!=null||(t=e.defaults.PLACEMENT),this._placement!==t&&(this._placement=t,this._adapter.setHostAttribute(e.attributes.PLACEMENT,String(this._placement)))}get offset(){return this._offset}set offset(t){t!=null||(t=e.defaults.OFFSET),this._offset!==t&&(this._offset=t,this._adapter.toggleHostAttribute(e.attributes.OFFSET,this._offset!==e.defaults.OFFSET,String(this._offset)))}get flip(){return this._flip}set flip(t){t!=null||(t=e.defaults.FLIP),this._flip!==t&&(this._flip=t,this._adapter.toggleHostAttribute(e.attributes.FLIP,this._flip!==e.defaults.FLIP,String(this._flip)))}get boundary(){return this._boundary}set boundary(t){this._boundary!==t&&(this._boundary=t,this._adapter.toggleHostAttribute(e.attributes.BOUNDARY,!!this._boundary,this._boundary))}get boundaryElement(){return this._boundaryElement}set boundaryElement(t){var o;this._boundaryElement!==t&&(this._boundaryElement=t,this._adapter.toggleHostAttribute(e.attributes.BOUNDARY,!!this._boundaryElement,(o=this._boundaryElement)==null?void 0:o.id))}get fallbackPlacements(){return this._fallbackPlacements}set fallbackPlacements(t){this._fallbackPlacements!==t&&(this._fallbackPlacements=t)}get triggerType(){return this._triggerTypes.length===1?this._triggerTypes[0]:this._triggerTypes}set triggerType(t){this._triggerTypes!==t&&(this._adapter.isConnected&&this._detachAnchorListeners(),this._triggerTypes=Array.isArray(t)?t:[t],this._triggerTypes=this._triggerTypes.filter(o=>!!o),this._triggerTypes.length||(this._triggerTypes=e.defaults.TRIGGER_TYPES),this._adapter.isConnected&&this._attachAnchorListeners())}};var O='<template><div class="forge-tooltip" part="surface"><slot></slot><div class="arrow" part="arrow"></div></div></template>',F='@-webkit-keyframes slidein{from{opacity:0;-webkit-transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y));transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y))}to{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}@keyframes slidein{from{opacity:0;-webkit-transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y));transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y))}to{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}:host{display:contents;pointer-events:none}:host([hidden]){display:none}.forge-tooltip{--_tooltip-background:var(--forge-tooltip-background, var(--forge-theme-surface-inverse, #333333));--_tooltip-color:var(--forge-tooltip-color, var(--forge-theme-on-surface-inverse, #ffffff));--_tooltip-shape:var(--forge-tooltip-shape, var(--forge-shape-medium, 4px));--_tooltip-padding:var(--forge-tooltip-padding, var(--forge-spacing-xsmall, 8px));--_tooltip-padding-block:var(--forge-tooltip-padding-block, var(--_tooltip-padding));--_tooltip-padding-inline:var(--forge-tooltip-padding-inline, var(--_tooltip-padding));--_tooltip-width:var(--forge-tooltip-width, max-content);--_tooltip-max-width:var(--forge-tooltip-max-width, 320px);--_tooltip-elevation:var(--forge-tooltip-elevation, var(--forge-theme-popup-elevation, var(--forge-theme-surface-bright-shadow)));--_tooltip-content-align:var(--forge-tooltip-content-align, center);--_tooltip-border-width:var(--forge-tooltip-border-width, 0);--_tooltip-border-style:var(--forge-tooltip-border-style, solid);--_tooltip-border-color:var(--forge-tooltip-border-color, var(--forge-theme-outline, #e0e0e0));--_tooltip-animation-timing:var(--forge-tooltip-animation-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_tooltip-animation-duration:var(--forge-tooltip-animation-duration, var(--forge-animation-duration-short3, 150ms));--_tooltip-animation-offset:var(--forge-tooltip-animation-offset, 24px);--_tooltip-arrow-size:var(--forge-tooltip-arrow-size, 8px);--_tooltip-arrow-height:var(--forge-tooltip-arrow-height, var(--_tooltip-arrow-size));--_tooltip-arrow-width:var(--forge-tooltip-arrow-width, var(--_tooltip-arrow-size));--_tooltip-arrow-shape:var(--forge-tooltip-arrow-shape, var(--forge-shape-small, 2px));--_tooltip-arrow-rotation:var(--forge-tooltip-arrow-rotation, 0deg);--_tooltip-arrow-top-rotation:var(--forge-tooltip-arrow-top-rotation, 315deg);--_tooltip-arrow-right-rotation:var(--forge-tooltip-arrow-right-rotation, 45deg);--_tooltip-arrow-bottom-rotation:var(--forge-tooltip-arrow-bottom-rotation, 135deg);--_tooltip-arrow-left-rotation:var(--forge-tooltip-arrow-left-rotation, 225deg)}.forge-tooltip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-body1-text-decoration,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);position:relative;background:var(--_tooltip-background);color:var(--_tooltip-color);border-radius:var(--_tooltip-shape);border-width:var(--_tooltip-border-width);border-style:var(--_tooltip-border-style);border-color:var(--_tooltip-border-color);padding-block:var(--_tooltip-padding-block);padding-inline:var(--_tooltip-padding-inline);-webkit-box-shadow:var(--_tooltip-elevation);box-shadow:var(--_tooltip-elevation);width:var(--_tooltip-width);max-width:var(--_tooltip-max-width);pointer-events:none;text-align:var(--_tooltip-content-align);line-height:normal;-webkit-animation-duration:var(--_tooltip-animation-duration);animation-duration:var(--_tooltip-animation-duration);-webkit-animation-timing-function:var(--_tooltip-animation-timing);animation-timing-function:var(--_tooltip-animation-timing);-webkit-animation-name:slidein;animation-name:slidein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}:host(:not([open])) .forge-tooltip{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.arrow{position:absolute;contain:strict;background-color:inherit;height:var(--_tooltip-arrow-height);width:var(--_tooltip-arrow-width);-webkit-box-shadow:inherit;box-shadow:inherit;border:inherit;border-end-start-radius:var(--_tooltip-arrow-shape);rotate:var(--_tooltip-arrow-rotation);-webkit-clip-path:var(--_tooltip-arrow-clip-path);clip-path:var(--_tooltip-arrow-clip-path);--_tooltip-arrow-translate-x:0;--_tooltip-arrow-translate-y:0;--_tooltip-arrow-clip-path:polygon(0 0, 0 100%, 100% 100%)}.forge-tooltip{--_tooltip-slidein-x:0;--_tooltip-slidein-y:0}forge-overlay[open][position-placement^=top] .forge-tooltip{--_tooltip-slidein-y:var(--forge-tooltip-slidein-y, var(--_tooltip-animation-offset))}forge-overlay[open][position-placement^=top] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-top-rotation);-webkit-margin-after:var(--_tooltip-border-width);margin-block-end:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=right] .forge-tooltip{--_tooltip-slidein-x:var(--forge-tooltip-slidein-x, calc(var(--_tooltip-animation-offset) * -1))}forge-overlay[open][position-placement^=right] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-right-rotation);-webkit-margin-start:var(--_tooltip-border-width);margin-inline-start:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=bottom] .forge-tooltip{--_tooltip-slidein-y:var(--forge-tooltip-slidein-y, calc(var(--_tooltip-animation-offset) * -1))}forge-overlay[open][position-placement^=bottom] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-bottom-rotation);-webkit-margin-before:var(--_tooltip-border-width);margin-block-start:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=left] .forge-tooltip{--_tooltip-slidein-x:var(--forge-tooltip-slidein-x, var(--_tooltip-animation-offset))}forge-overlay[open][position-placement^=left] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-left-rotation);-webkit-margin-end:var(--_tooltip-border-width);margin-inline-end:var(--_tooltip-border-width)}',M=x(k(A)),r=class extends M{constructor(){super();T(this,O,F),this._foundation=new h(new p(this))}static get observedAttributes(){return Object.values(e.observedAttributes)}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(t,o,i){switch(t){case e.observedAttributes.ID:this._foundation.syncTooltipAria();break;case e.observedAttributes.OPEN:this.open=y(i);break;case e.observedAttributes.TYPE:this.type=i!=null&&i.trim()?i:e.defaults.TYPE;break;case e.observedAttributes.TARGET:case e.observedAttributes.ANCHOR:this.anchor=i;break;case e.observedAttributes.DELAY:this.delay=d(i);break;case e.observedAttributes.POSITION:case e.observedAttributes.PLACEMENT:this.placement=i;break;case e.observedAttributes.OFFSET:this.offset=d(i);break;case e.observedAttributes.FLIP:this.flip=i;break;case e.observedAttributes.BOUNDARY:this.boundary=i;break;case e.observedAttributes.FALLBACK_PLACEMENTS:this.fallbackPlacements=i!=null&&i.trim()?g(i):null;break;case e.observedAttributes.TRIGGER_TYPE:this.triggerType=i!=null&&i.trim()?g(i):e.defaults.TRIGGER_TYPES;break}}};n([a()],r.prototype,"open",2),n([a()],r.prototype,"type",2),n([a()],r.prototype,"anchor",2),n([a()],r.prototype,"anchorElement",2),n([a({name:"anchor"})],r.prototype,"target",2),n([a()],r.prototype,"placement",2),n([a({name:"placement"})],r.prototype,"position",2),n([a()],r.prototype,"delay",2),n([a()],r.prototype,"offset",2),n([a()],r.prototype,"flip",2),n([a()],r.prototype,"boundary",2),n([a()],r.prototype,"boundaryElement",2),n([a()],r.prototype,"fallbackPlacements",2),n([a()],r.prototype,"triggerType",2),r=n([L({name:e.elementName,dependencies:[S]})],r);function gt(){E(r)}export{p as a,h as b,r as c,gt as d};
|
|
7
|
-
//# sourceMappingURL=chunk.
|
|
6
|
+
import{a as e}from"./chunk.GA6AO6FJ.js";import{a as I}from"./chunk.6XLTVIUD.js";import{b as l,h as S}from"./chunk.FOSKVNVV.js";import{a as k,b as x}from"./chunk.2WRAXA3H.js";import{k as P,m as g}from"./chunk.SB2LOK2R.js";import{a as w}from"./chunk.6GSVB5NB.js";import{a}from"./chunk.NVUMRW44.js";import{a as L,f as m,m as _}from"./chunk.UQQQSJVM.js";import{a as E,e as T,f as c,k as A}from"./chunk.BIQTNLIF.js";import{a as u,k as y,l as d}from"./chunk.J2M2MXP2.js";import{d as n}from"./chunk.M3QDAYD2.js";var p=class extends w{constructor(t){super(t);this._anchorElement=null;this._overlayElement=null;this._contentElement=c(this._component,e.selectors.CONTENT),this._arrowElement=c(this._component,e.selectors.ARROW)}get anchorElement(){return this._anchorElement}syncAria(){let t=this._component.type==="description"?"tooltip":null;if(this._component[_]({role:t}),this._component[_]({ariaHidden:"true"},{setAttribute:!this._component.hasAttribute("aria-hidden")}),this._anchorElement){if(this._component.type==="label"&&this._anchorElement.hasAttribute("aria-labelledby")||this._component.type==="description"&&this._anchorElement.hasAttribute("aria-describedby"))return;switch(!this._component.hasAttribute("id")&&this._component.type!=="presentation"&&(this._component.id=`forge-tooltip-${u()}`),this._component.type){case"description":this._anchorElement.setAttribute("aria-describedby",this._component.id);break;case"label":this._anchorElement.setAttribute("aria-labelledby",this._component.id);break}}}detachAria(){var t,o,i,s;this._component.type==="description"&&((t=this._anchorElement)==null?void 0:t.getAttribute("aria-describedby"))===this._component.id&&((o=this._anchorElement)==null||o.removeAttribute("aria-describedby")),this._component.type==="label"&&((i=this._anchorElement)==null?void 0:i.getAttribute("aria-labelledby"))===this._component.id&&((s=this._anchorElement)==null||s.removeAttribute("aria-labelledby"))}setAnchorElement(t){this._anchorElement=t}tryLocateAnchorElement(t){this._anchorElement=this._tryFindAnchorElement(t)}addAnchorListener(t,o,i){var s;(s=this._anchorElement)==null||s.addEventListener(t,o,i)}removeAnchorListener(t,o){var i;(i=this._anchorElement)==null||i.removeEventListener(t,o)}addLightDismissListener(t){var o;(o=this._overlayElement)==null||o.addEventListener(l.events.LIGHT_DISMISS,t)}removeLightDismissListener(t){var o;(o=this._overlayElement)==null||o.removeEventListener(l.events.LIGHT_DISMISS,t)}show(){var t;if(this._overlayElement||(this._overlayElement=document.createElement(l.elementName),this._overlayElement.setAttribute("part","root:overlay")),this._overlayElement.placement=this._component.placement,this._overlayElement.anchorElement=this._anchorElement,this._overlayElement.arrowElement=this._arrowElement,this._overlayElement.offset={mainAxis:this._component.offset},this._overlayElement.flip=this._component.flip,this._component.fallbackPlacements&&(this._overlayElement.fallbackPlacements=this._component.fallbackPlacements),this._component.boundaryElement)this._overlayElement.boundaryElement=this._component.boundaryElement;else if(this._component.boundary){let o=P(this._component,this._component.boundary);this._overlayElement.boundaryElement=o}else this._overlayElement.boundaryElement=null;(t=this._component.shadowRoot)==null||t.appendChild(this._overlayElement),this._overlayElement.appendChild(this._contentElement),this._overlayElement.open=!0}hide(){var t,o;this._overlayElement&&(this._overlayElement.open=!1),(t=this._component.shadowRoot)==null||t.appendChild(this._contentElement),(o=this._overlayElement)==null||o.remove()}_tryFindAnchorElement(t){var o,i;if(t){let s=this._component.getRootNode(),b=(o=s.getElementById(t))!=null?o:s.querySelector(t);if(b)return b}return(i=this._component.previousElementSibling)!=null?i:this._component.parentElement}};var H=I(),h=class extends H{constructor(t){super();this._adapter=t;this._open=!1;this._type=e.defaults.TYPE;this._delay=e.defaults.DELAY;this._placement=e.defaults.PLACEMENT;this._offset=e.defaults.OFFSET;this._flip=e.defaults.FLIP;this._boundary=null;this._boundaryElement=null;this._fallbackPlacements=null;this._triggerTypes=e.defaults.TRIGGER_TYPES;this._hoverStartListener=this._onHoverStart.bind(this);this._hoverEndListener=this._onHoverEnd.bind(this);this._focusListener=this._onFocus.bind(this);this._blurListener=this._onBlur.bind(this);this._scrollListener=this._onTryHide.bind(this);this._mouseDownListener=this._onTryHide.bind(this);this._dragListener=this._onTryHide.bind(this);this._lightDismissListener=this._onTryHide.bind(this)}initialize(){this._adapter.anchorElement||this._adapter.tryLocateAnchorElement(this._anchor),this._adapter.syncAria(),this._attachAnchorListeners(),this._open&&this._show()}destroy(){this._open&&this._hide(),this._adapter.detachAria(),this._detachAnchorListeners()}syncTooltipAria(){this._adapter.syncAria()}_attachAnchorListeners(){if(!this._adapter.anchorElement)return;let t=[...this._triggerTypes];m||(t.splice(t.indexOf("hover"),1),t.push("longpress"));let o={hover:()=>this._adapter.addAnchorListener("mouseenter",this._hoverStartListener),longpress:()=>this._startLongpressListener(this._adapter.anchorElement),focus:()=>this._adapter.addAnchorListener("focusin",this._focusListener)};t.forEach(i=>o[i]())}_detachAnchorListeners(){if(!this._adapter.anchorElement)return;let t=[...this._triggerTypes];m||t.push("longpress");let o={hover:()=>{this._adapter.removeAnchorListener("mouseenter",this._hoverStartListener),this._adapter.removeAnchorListener("mousedown",this._hoverEndListener),this._adapter.removeAnchorListener("mouseleave",this._hoverEndListener)},longpress:()=>this._stopLongpressListener(this._adapter.anchorElement),focus:()=>{this._adapter.removeAnchorListener("focusin",this._focusListener),this._adapter.removeAnchorListener("focusout",this._blurListener)}};t.forEach(i=>o[i]())}_show(){this._open=!0,this._adapter.show(),this._attachDismissListeners(),this._adapter.toggleHostAttribute(e.attributes.OPEN,this._open)}_hide(){window.clearTimeout(this._hoverTimeout),window.clearTimeout(this._longpressVisibilityTimeout),this._open=!1,this._adapter.hide(),this._detachDismissListeners(),this._adapter.toggleHostAttribute(e.attributes.OPEN,this._open)}_attachDismissListeners(){this._adapter.addAnchorListener("mousedown",this._mouseDownListener),this._adapter.addAnchorListener("dragstart",this._dragListener),this._adapter.addDocumentListener("scroll",this._scrollListener),this._adapter.addDocumentListener("wheel",this._scrollListener),this._adapter.addLightDismissListener(this._lightDismissListener)}_detachDismissListeners(){this._adapter.removeAnchorListener("mousedown",this._mouseDownListener),this._adapter.removeAnchorListener("dragstart",this._dragListener),this._adapter.removeDocumentListener("scroll",this._scrollListener),this._adapter.removeDocumentListener("wheel",this._scrollListener),this._adapter.removeLightDismissListener(this._lightDismissListener)}_onHoverStart(t){this._open||(this._adapter.addAnchorListener("mousedown",this._hoverEndListener),this._adapter.addAnchorListener("mouseleave",this._hoverEndListener),this._delay?this._hoverTimeout=window.setTimeout(()=>{this._onTryShow()},this._delay):this._onTryShow())}_onHoverEnd(t){this._adapter.removeAnchorListener("mousedown",this._hoverEndListener),this._adapter.removeAnchorListener("mouseleave",this._hoverEndListener),window.clearTimeout(this._hoverTimeout),this._onTryHide()}_onFocus(t){this._open||(this._adapter.addAnchorListener("focusout",this._blurListener),this._onTryShow())}_onBlur(t){this._adapter.removeAnchorListener("focusout",this._blurListener),this._onTryHide()}_onLongpress(){this._onTryShow()}_onLongpressEnd(t){super._onLongpressEnd(t),this._longpressVisibilityTimeout=window.setTimeout(()=>{this._onTryHide()},e.numbers.LONGPRESS_VISIBILITY_DURATION)}_onTryShow(){this._open||this._show()}_onTryHide(){this._open&&this._hide()}get open(){return this._open}set open(t){t=!!t,this._open!==t&&(this._adapter.isConnected?this._open?this._hide():this._show():this._open=t)}get type(){return this._type}set type(t){t!=null||(t=e.defaults.TYPE),this._type!==t&&(this._type=t,this._adapter.isConnected&&this._adapter.syncAria(),this._adapter.toggleHostAttribute(e.attributes.TYPE,this._type!==e.defaults.TYPE,this._type))}get anchor(){return this._anchor}set anchor(t){this._anchor!==t&&(this._anchor=t,this._adapter.isConnected&&(this._detachAnchorListeners(),this._adapter.detachAria(),this._adapter.tryLocateAnchorElement(this._anchor),this._adapter.syncAria(),this._attachAnchorListeners()),this._adapter.toggleHostAttribute(e.attributes.ANCHOR,!!this._anchor,this._anchor))}get anchorElement(){return this._adapter.anchorElement}set anchorElement(t){this._adapter.anchorElement!==t&&(this._adapter.isConnected&&(this._detachAnchorListeners(),this._adapter.detachAria()),this._adapter.setAnchorElement(t),this._adapter.isConnected&&(this._adapter.syncAria(),this._attachAnchorListeners()))}get delay(){return this._delay}set delay(t){this._delay!==t&&(this._delay=t,this._adapter.setHostAttribute(e.attributes.DELAY,String(this._delay)))}get placement(){return this._placement}set placement(t){t!=null||(t=e.defaults.PLACEMENT),this._placement!==t&&(this._placement=t,this._adapter.setHostAttribute(e.attributes.PLACEMENT,String(this._placement)))}get offset(){return this._offset}set offset(t){t!=null||(t=e.defaults.OFFSET),this._offset!==t&&(this._offset=t,this._adapter.toggleHostAttribute(e.attributes.OFFSET,this._offset!==e.defaults.OFFSET,String(this._offset)))}get flip(){return this._flip}set flip(t){t!=null||(t=e.defaults.FLIP),this._flip!==t&&(this._flip=t,this._adapter.toggleHostAttribute(e.attributes.FLIP,this._flip!==e.defaults.FLIP,String(this._flip)))}get boundary(){return this._boundary}set boundary(t){this._boundary!==t&&(this._boundary=t,this._adapter.toggleHostAttribute(e.attributes.BOUNDARY,!!this._boundary,this._boundary))}get boundaryElement(){return this._boundaryElement}set boundaryElement(t){var o;this._boundaryElement!==t&&(this._boundaryElement=t,this._adapter.toggleHostAttribute(e.attributes.BOUNDARY,!!this._boundaryElement,(o=this._boundaryElement)==null?void 0:o.id))}get fallbackPlacements(){return this._fallbackPlacements}set fallbackPlacements(t){this._fallbackPlacements!==t&&(this._fallbackPlacements=t)}get triggerType(){return this._triggerTypes.length===1?this._triggerTypes[0]:this._triggerTypes}set triggerType(t){this._triggerTypes!==t&&(this._adapter.isConnected&&this._detachAnchorListeners(),this._triggerTypes=Array.isArray(t)?t:[t],this._triggerTypes=this._triggerTypes.filter(o=>!!o),this._triggerTypes.length||(this._triggerTypes=e.defaults.TRIGGER_TYPES),this._adapter.isConnected&&this._attachAnchorListeners())}};var O='<template><div class="forge-tooltip" part="surface"><slot></slot><div class="arrow" part="arrow"></div></div></template>',F='@-webkit-keyframes slidein{from{opacity:0;-webkit-transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y));transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y))}to{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}@keyframes slidein{from{opacity:0;-webkit-transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y));transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y))}to{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}:host{display:contents;pointer-events:none}:host([hidden]){display:none}.forge-tooltip{--_tooltip-background:var(--forge-tooltip-background, var(--forge-theme-surface-inverse, #333333));--_tooltip-color:var(--forge-tooltip-color, var(--forge-theme-on-surface-inverse, #ffffff));--_tooltip-shape:var(--forge-tooltip-shape, var(--forge-shape-medium, 4px));--_tooltip-padding:var(--forge-tooltip-padding, var(--forge-spacing-xsmall, 8px));--_tooltip-padding-block:var(--forge-tooltip-padding-block, var(--_tooltip-padding));--_tooltip-padding-inline:var(--forge-tooltip-padding-inline, var(--_tooltip-padding));--_tooltip-width:var(--forge-tooltip-width, max-content);--_tooltip-max-width:var(--forge-tooltip-max-width, 320px);--_tooltip-elevation:var(--forge-tooltip-elevation, var(--forge-theme-popup-elevation, var(--forge-theme-surface-bright-shadow)));--_tooltip-content-align:var(--forge-tooltip-content-align, center);--_tooltip-border-width:var(--forge-tooltip-border-width, 0);--_tooltip-border-style:var(--forge-tooltip-border-style, solid);--_tooltip-border-color:var(--forge-tooltip-border-color, var(--forge-theme-outline, #e0e0e0));--_tooltip-animation-timing:var(--forge-tooltip-animation-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_tooltip-animation-duration:var(--forge-tooltip-animation-duration, var(--forge-animation-duration-short3, 150ms));--_tooltip-animation-offset:var(--forge-tooltip-animation-offset, 24px);--_tooltip-arrow-size:var(--forge-tooltip-arrow-size, 8px);--_tooltip-arrow-height:var(--forge-tooltip-arrow-height, var(--_tooltip-arrow-size));--_tooltip-arrow-width:var(--forge-tooltip-arrow-width, var(--_tooltip-arrow-size));--_tooltip-arrow-shape:var(--forge-tooltip-arrow-shape, var(--forge-shape-small, 2px));--_tooltip-arrow-rotation:var(--forge-tooltip-arrow-rotation, 0deg);--_tooltip-arrow-top-rotation:var(--forge-tooltip-arrow-top-rotation, 315deg);--_tooltip-arrow-right-rotation:var(--forge-tooltip-arrow-right-rotation, 45deg);--_tooltip-arrow-bottom-rotation:var(--forge-tooltip-arrow-bottom-rotation, 135deg);--_tooltip-arrow-left-rotation:var(--forge-tooltip-arrow-left-rotation, 225deg)}.forge-tooltip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-body1-text-decoration,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);position:relative;background:var(--_tooltip-background);color:var(--_tooltip-color);border-radius:var(--_tooltip-shape);border-width:var(--_tooltip-border-width);border-style:var(--_tooltip-border-style);border-color:var(--_tooltip-border-color);padding-block:var(--_tooltip-padding-block);padding-inline:var(--_tooltip-padding-inline);-webkit-box-shadow:var(--_tooltip-elevation);box-shadow:var(--_tooltip-elevation);width:var(--_tooltip-width);max-width:var(--_tooltip-max-width);pointer-events:none;text-align:var(--_tooltip-content-align);line-height:normal;white-space:normal;-webkit-animation-duration:var(--_tooltip-animation-duration);animation-duration:var(--_tooltip-animation-duration);-webkit-animation-timing-function:var(--_tooltip-animation-timing);animation-timing-function:var(--_tooltip-animation-timing);-webkit-animation-name:slidein;animation-name:slidein;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}:host(:not([open])) .forge-tooltip{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.arrow{position:absolute;contain:strict;background-color:inherit;height:var(--_tooltip-arrow-height);width:var(--_tooltip-arrow-width);-webkit-box-shadow:inherit;box-shadow:inherit;border:inherit;border-end-start-radius:var(--_tooltip-arrow-shape);rotate:var(--_tooltip-arrow-rotation);-webkit-clip-path:var(--_tooltip-arrow-clip-path);clip-path:var(--_tooltip-arrow-clip-path);--_tooltip-arrow-translate-x:0;--_tooltip-arrow-translate-y:0;--_tooltip-arrow-clip-path:polygon(0 0, 0 100%, 100% 100%)}.forge-tooltip{--_tooltip-slidein-x:0;--_tooltip-slidein-y:0}forge-overlay[open][position-placement^=top] .forge-tooltip{--_tooltip-slidein-y:var(--forge-tooltip-slidein-y, var(--_tooltip-animation-offset))}forge-overlay[open][position-placement^=top] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-top-rotation);-webkit-margin-after:var(--_tooltip-border-width);margin-block-end:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=right] .forge-tooltip{--_tooltip-slidein-x:var(--forge-tooltip-slidein-x, calc(var(--_tooltip-animation-offset) * -1))}forge-overlay[open][position-placement^=right] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-right-rotation);-webkit-margin-start:var(--_tooltip-border-width);margin-inline-start:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=bottom] .forge-tooltip{--_tooltip-slidein-y:var(--forge-tooltip-slidein-y, calc(var(--_tooltip-animation-offset) * -1))}forge-overlay[open][position-placement^=bottom] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-bottom-rotation);-webkit-margin-before:var(--_tooltip-border-width);margin-block-start:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=left] .forge-tooltip{--_tooltip-slidein-x:var(--forge-tooltip-slidein-x, var(--_tooltip-animation-offset))}forge-overlay[open][position-placement^=left] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-left-rotation);-webkit-margin-end:var(--_tooltip-border-width);margin-inline-end:var(--_tooltip-border-width)}',M=x(k(A)),r=class extends M{constructor(){super();T(this,O,F),this._foundation=new h(new p(this))}static get observedAttributes(){return Object.values(e.observedAttributes)}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(t,o,i){switch(t){case e.observedAttributes.ID:this._foundation.syncTooltipAria();break;case e.observedAttributes.OPEN:this.open=y(i);break;case e.observedAttributes.TYPE:this.type=i!=null&&i.trim()?i:e.defaults.TYPE;break;case e.observedAttributes.TARGET:case e.observedAttributes.ANCHOR:this.anchor=i;break;case e.observedAttributes.DELAY:this.delay=d(i);break;case e.observedAttributes.POSITION:case e.observedAttributes.PLACEMENT:this.placement=i;break;case e.observedAttributes.OFFSET:this.offset=d(i);break;case e.observedAttributes.FLIP:this.flip=i;break;case e.observedAttributes.BOUNDARY:this.boundary=i;break;case e.observedAttributes.FALLBACK_PLACEMENTS:this.fallbackPlacements=i!=null&&i.trim()?g(i):null;break;case e.observedAttributes.TRIGGER_TYPE:this.triggerType=i!=null&&i.trim()?g(i):e.defaults.TRIGGER_TYPES;break}}};n([a()],r.prototype,"open",2),n([a()],r.prototype,"type",2),n([a()],r.prototype,"anchor",2),n([a()],r.prototype,"anchorElement",2),n([a({name:"anchor"})],r.prototype,"target",2),n([a()],r.prototype,"placement",2),n([a({name:"placement"})],r.prototype,"position",2),n([a()],r.prototype,"delay",2),n([a()],r.prototype,"offset",2),n([a()],r.prototype,"flip",2),n([a()],r.prototype,"boundary",2),n([a()],r.prototype,"boundaryElement",2),n([a()],r.prototype,"fallbackPlacements",2),n([a()],r.prototype,"triggerType",2),r=n([L({name:e.elementName,dependencies:[S]})],r);function gt(){E(r)}export{p as a,h as b,r as c,gt as d};
|
|
7
|
+
//# sourceMappingURL=chunk.FB4MXEIW.js.map
|