{"version":3,"file":"react/js/vendor.mui@undefined-eb4de232.ebcf7700195d1f338ea7.js","mappings":"oOACA,MAAMA,EAAsB,OAOrB,SAAS,EAAqBC,EAAeC,GAClD,MAAMC,EAAmB,KAAmBD,GAC5C,OAAOC,EAPA,GAAGH,MAOgCG,IAL5C,SAAwBF,EAAeC,GACrC,MAAO,GAAGF,KAAuBC,KAAiBC,GACpD,CAGgEE,CAAeH,EAAeC,EAC9F,CCTA,MAAMG,EAAiB,SAChB,SAASC,EAAsBJ,GACpC,OAAO,EAAqBG,EAAgBH,EAC9C,ECJO,SAAgCD,EAAeM,GACpD,MAAMC,EAAS,CAAC,EAChBD,EAAME,SAAQP,IACZM,EAAON,GAAQ,EAAqBD,EAAeC,EAAK,GAG5D,CDD6BQ,CAAuBL,EAAgB,CAAC,S,0BEFrE,MAAMM,EAAsB,CAC1BC,uBAAuB,GAEnBC,EAA4C,gBAAoBF,GCHtE,MAAMG,EAAY,CAAC,WAAY,WAAY,YAAa,gBAAiB,YAAa,OAAQ,YAAa,gBAAiB,YAAa,YAAa,QAAS,kBAAmB,cAChLC,EAAa,CAAC,WAAY,WAAY,YAAa,YAAa,gBAAiB,cAAe,YAAa,OAAQ,YAAa,gBAAiB,YAAa,QAAS,aAAc,YAAa,SA4BtM,SAASC,EAAgBC,GACvB,MAA2B,mBAAbA,EAA0BA,IAAaA,CACvD,CACA,SAASC,EAAcC,GACrB,YAA4BC,IAArBD,EAAQE,QACjB,CAIA,MAAMC,EAAoB,KAIjB,EAAAC,EAAA,GAHO,CACZC,KAAM,CAAC,SDzBJ,SAA+BC,GACpC,MAAM,sBACJb,GACE,aAAiBC,GACrB,OAAOX,GACDU,EACK,GAEFa,EAAqBvB,EAEhC,CCiB+BwB,CAAsBpB,IAE/CqB,EAAuB,CAAC,EACxBC,EAA6B,cAAiB,SAAuBC,EAAOC,GAChF,IAAIC,EACJ,MAAM,SACFd,EAAQ,SACRe,EAAQ,UACRC,EAAS,cACTC,EAAa,UACbC,EAAS,KACTC,EACAC,UAAWC,EAAgB,cAC3BC,EACAC,UAAWC,EAAa,UACxBC,EAAY,CAAC,EAAC,MACdnC,EAAQ,CAAC,EAAC,gBACVoC,GAGEd,EACJe,GAAQ,OAA8Bf,EAAOf,GACzC+B,EAAa,SAAa,MAC1BC,GAAS,EAAAC,EAAA,GAAWF,EAAYf,GAChCU,EAAY,SAAa,MACzBQ,GAAkB,EAAAD,EAAA,GAAWP,EAAWC,GACxCQ,EAAqB,SAAaD,IACxC,EAAAE,EAAA,IAAkB,KAChBD,EAAmBE,QAAUH,CAAe,GAC3C,CAACA,IACJ,sBAA0BP,GAAe,IAAMD,EAAUW,SAAS,IAClE,MAAMC,EA7DR,SAAuBf,EAAWJ,GAChC,GAAkB,QAAdA,EACF,OAAOI,EAET,OAAQA,GACN,IAAK,aACH,MAAO,eACT,IAAK,eACH,MAAO,aACT,IAAK,UACH,MAAO,YACT,IAAK,YACH,MAAO,UACT,QACE,OAAOA,EAEb,CA6CuBgB,CAAcf,EAAkBL,IAK9CI,EAAWiB,GAAgB,WAAeF,IAC1CG,EAAuBC,GAA4B,WAAexC,EAAgBC,IACzF,aAAgB,KACVuB,EAAUW,SACZX,EAAUW,QAAQM,aACpB,IAEF,aAAgB,KACVxC,GACFuC,EAAyBxC,EAAgBC,GAC3C,GACC,CAACA,KACJ,EAAAiC,EAAA,IAAkB,KAChB,IAAKK,IAA0BnB,EAC7B,OAaF,IAAIsB,EAAkB,CAAC,CACrBC,KAAM,kBACNC,QAAS,CACPC,YAAa3B,IAEd,CACDyB,KAAM,OACNC,QAAS,CACPC,YAAa3B,IAEd,CACDyB,KAAM,WACNG,SAAS,EACTC,MAAO,aACPC,GAAI,EACFC,YAzBFX,EA2BqBW,EA3BH5B,UA2BS,IAGZ,MAAbF,IACFuB,EAAkBA,EAAgBQ,OAAO/B,IAEvCI,GAA4C,MAA3BA,EAAcJ,YACjCuB,EAAkBA,EAAgBQ,OAAO3B,EAAcJ,YAEzD,MAAMgC,GAAS,QAAaZ,EAAuBV,EAAWM,SAAS,OAAS,CAC9Ed,UAAWe,GACVb,EAAe,CAChBJ,UAAWuB,KAGb,OADAT,EAAmBE,QAAQgB,GACpB,KACLA,EAAOC,UACPnB,EAAmBE,QAAQ,KAAK,CACjC,GACA,CAACI,EAAuBrB,EAAeC,EAAWC,EAAMG,EAAea,IAC1E,MAAMiB,EAAa,CACjBhC,UAAWA,GAEW,OAApBM,IACF0B,EAAW1B,gBAAkBA,GAE/B,MAAM2B,EAAUhD,IACViD,EAAqC,OAA7BxC,EAAcxB,EAAMiB,MAAgBO,EAAc,MAC1DyC,GAAY,EAAAC,EAAA,GAAa,CAC7BC,YAAaH,EACbI,kBAAmBjC,EAAUlB,KAC7BoD,uBAAwBhC,EACxBiC,gBAAiB,CACfC,KAAM,UACNC,IAAKjC,GAEPkC,WAAYnD,EACZoD,UAAWX,EAAQ9C,OAErB,OAAoB,SAAK+C,GAAM,OAAS,CAAC,EAAGC,EAAW,CACrDxC,SAA8B,mBAAbA,EAA0BA,EAASqC,GAAcrC,IAEtE,IAaMkD,EAAsB,cAAiB,SAAgBrD,EAAOC,GAClE,MAAM,SACFb,EAAQ,SACRe,EACAmD,UAAWC,EAAa,UACxBnD,EAAY,MAAK,cACjBC,GAAgB,EAAK,YACrBmD,GAAc,EAAK,UACnBlD,EAAS,KACTC,EAAI,UACJC,EAAY,SAAQ,cACpBE,EAAgBZ,EAAoB,UACpCa,EAAS,MACT8C,EAAK,WACLC,GAAa,EAAK,UAClB7C,EAAY,CAAC,EAAC,MACdnC,EAAQ,CAAC,GACPsB,EACJe,GAAQ,OAA8Bf,EAAOd,IACxCyE,EAAQC,GAAa,YAAe,GAO3C,IAAKJ,IAAgBjD,KAAUmD,GAAcC,GAC3C,OAAO,KAMT,IAAIL,EACJ,GAAIC,EACFD,EAAYC,OACP,GAAInE,EAAU,CACnB,MAAMyE,EAAmB1E,EAAgBC,GACzCkE,EAAYO,GAAoBxE,EAAcwE,IAAoB,EAAAC,EAAA,GAAcD,GAAkBE,MAAO,EAAAD,EAAA,GAAc,MAAMC,IAC/H,CACA,MAAMC,EAAWzD,IAAQiD,GAAiBE,IAAcC,OAAmBpE,EAAT,OAC5D0E,EAAkBP,EAAa,CACnCQ,GAAI3D,EACJ4D,QAvBkB,KAClBP,GAAU,EAAM,EAuBhBQ,SArBmB,KACnBR,GAAU,EAAK,QAqBbrE,EACJ,OAAoB,SAAK8E,EAAA,EAAQ,CAC/BhE,cAAeA,EACfiD,UAAWA,EACXnD,UAAuB,SAAKJ,GAAe,OAAS,CAClDX,SAAUA,EACVgB,UAAWA,EACXC,cAAeA,EACfC,UAAWA,EACX4C,IAAKjD,EACLM,KAAMmD,GAAcC,EAASpD,EAC7BC,UAAWA,EACXE,cAAeA,EACfC,UAAWA,EACXE,UAAWA,EACXnC,MAAOA,GACNqC,EAAO,CACR0C,OAAO,OAAS,CAEda,SAAU,QAEVC,IAAK,EACLC,KAAM,EACNR,WACCP,GACH3C,gBAAiBmD,EACjB9D,SAAUA,MAGhB,G,yGCxOA,MAAMkE,EAAsB,cAAiB,SAAgBrE,EAAOC,GAClE,MAAM,SACJE,EAAQ,UACRmD,EAAS,cACTjD,GAAgB,GACdL,GACGyE,EAAWC,GAAgB,WAAe,MAE3CC,GAAY,OAAyB,iBAAqBxE,GAAYA,EAAS+C,IAAM,KAAMjD,GAejG,IAdA,QAAkB,KACXI,GACHqE,EA3BN,SAAsBpB,GACpB,MAA4B,mBAAdA,EAA2BA,IAAcA,CACzD,CAyBmBsB,CAAatB,IAAcuB,SAASd,KACnD,GACC,CAACT,EAAWjD,KACf,QAAkB,KAChB,GAAIoE,IAAcpE,EAEhB,OADA,OAAOJ,EAAcwE,GACd,MACL,OAAOxE,EAAc,KAAK,CAGd,GACf,CAACA,EAAcwE,EAAWpE,IACzBA,EAAe,CACjB,GAAkB,iBAAqBF,GAAW,CAChD,MAAM2E,EAAW,CACf5B,IAAKyB,GAEP,OAAoB,eAAmBxE,EAAU2E,EACnD,CACA,OAAoB,SAAK,WAAgB,CACvC3E,SAAUA,GAEd,CACA,OAAoB,SAAK,WAAgB,CACvCA,SAAUsE,EAAyB,eAAsBtE,EAAUsE,GAAaA,GAEpF,G,+HCxDA,MAAMxF,EAAY,CAAC,WAAY,UAAW,UAAW,QAAS,SAM9D,SAAS8F,EAAcC,GACrB,OAAOC,SAASD,EAAO,KAAO,CAChC,CACA,MAAME,EACI,CAENC,WAAY,SAEZb,SAAU,WAEVc,SAAU,SACVC,OAAQ,EACRd,IAAK,EACLC,KAAM,EAENc,UAAW,iBAkBf,MAAMC,EAAgC,cAAiB,SAA0BvF,EAAOC,GACtF,MAAM,SACFuF,EAAQ,QACRC,EAAO,QACPC,EAAU,EAAC,MACXjC,EAAK,MACLuB,GACEhF,EACJe,GAAQ,OAA8Bf,EAAOf,IAE7CqC,QAASqE,GACP,SAAsB,MAATX,GACXY,EAAW,SAAa,MACxBjB,GAAY,OAAW1E,EAAc2F,GACrCC,EAAY,SAAa,MACzBC,EAA0B,eAAkB,KAChD,MAAMC,EAAQH,EAAStE,QAEjB0E,GADkB,OAAYD,GACEE,iBAAiBF,GAGvD,GAA4B,QAAxBC,EAAcE,MAChB,MAAO,CACLC,iBAAkB,EAClBC,aAAa,GAGjB,MAAMC,EAAeR,EAAUvE,QAC/B+E,EAAa5C,MAAMyC,MAAQF,EAAcE,MACzCG,EAAarB,MAAQe,EAAMf,OAAShF,EAAMsG,aAAe,IACpB,OAAjCD,EAAarB,MAAMuB,OAAO,KAI5BF,EAAarB,OAAS,KAExB,MAAMwB,EAAYR,EAAcQ,UAC1BC,EAAU1B,EAAciB,EAAcU,eAAiB3B,EAAciB,EAAcW,YACnFC,EAAS7B,EAAciB,EAAca,mBAAqB9B,EAAciB,EAAcc,gBAGtFC,EAAcV,EAAaW,aAGjCX,EAAarB,MAAQ,IACrB,MAAMiC,EAAkBZ,EAAaW,aAGrC,IAAIE,EAAcH,EACdrB,IACFwB,EAAcC,KAAKC,IAAIC,OAAO3B,GAAWuB,EAAiBC,IAExDzB,IACFyB,EAAcC,KAAKG,IAAID,OAAO5B,GAAWwB,EAAiBC,IAE5DA,EAAcC,KAAKC,IAAIF,EAAaD,GAKpC,MAAO,CACLd,iBAHuBe,GAA6B,eAAdV,EAA6BC,EAAUG,EAAS,GAItFR,YAHkBe,KAAKI,IAAIL,EAAcH,IAAgB,EAI1D,GACA,CAACtB,EAASC,EAAS1F,EAAMsG,cACtBkB,EAAa,eAAkB,KACnC,MAAMC,EAAiB3B,IACvB,GAjFK4B,OADQA,EAkFDD,IAjF0D,IAA5BE,OAAOC,KAAKF,GAAKG,QAAyC,IAAzBH,EAAIvB,mBAA2BuB,EAAItB,YAkF5G,OAnFN,IAAiBsB,EAqFb,MAAM3B,EAAQH,EAAStE,QACvByE,EAAMtC,MAAM4B,OAAS,GAAGoC,EAAetB,qBACvCJ,EAAMtC,MAAM2B,SAAWqC,EAAerB,YAAc,SAAW,EAAE,GAChE,CAACN,KACJ,QAAkB,KAChB,MAAMgC,EAAe,KACnBN,GAAY,EAMd,IAAIO,EACJ,MAMMC,GAAuB,OAASF,GAChC/B,EAAQH,EAAStE,QACjB2G,GAAkB,OAAYlC,GAEpC,IAAImC,EAKJ,OANAD,EAAgBE,iBAAiB,SAAUH,GAEb,oBAAnBI,iBACTF,EAAiB,IAAIE,eAAmEN,GACxFI,EAAeG,QAAQtC,IAElB,KACLiC,EAAqBM,QACrBC,qBAAqBR,GACrBE,EAAgBO,oBAAoB,SAAUR,GAC1CE,GACFA,EAAeO,YACjB,CACD,GACA,CAAC3C,EAAyB0B,KAC7B,QAAkB,KAChBA,GAAY,IAUd,OAAoB,UAAM,WAAgB,CACxCrH,SAAU,EAAc,SAAK,YAAY,OAAS,CAChD6E,MAAOA,EACPQ,SAXiBkD,IACd/C,GACH6B,IAEEhC,GACFA,EAASkD,EACX,EAMExF,IAAKyB,EAGLgE,KAAMjD,EACNjC,MAAOA,GACN1C,KAAsB,SAAK,WAAY,CACxC,eAAe,EACfqC,UAAWpD,EAAMoD,UACjBwF,UAAU,EACV1F,IAAK2C,EACLgD,UAAW,EACXpF,OAAO,OAAS,CAAC,EAAGyB,EAAezB,EAAO,CACxCkD,WAAY,EACZD,cAAe,QAIvB,G,0IC7KO,SAASoC,EAAWxJ,EAASyJ,GAC9BA,EACFzJ,EAAQ0J,aAAa,cAAe,QAEpC1J,EAAQ2J,gBAAgB,cAE5B,CACA,SAASC,EAAgB5J,GACvB,OAAO2F,UAAS,EAAAkE,EAAA,GAAY7J,GAAS2G,iBAAiB3G,GAAS8J,aAAc,KAAO,CACtF,CAUA,SAASC,EAAmB/F,EAAWgG,EAAcC,EAAgBC,EAAmBT,GACtF,MAAMU,EAAY,CAACH,EAAcC,KAAmBC,GACpD,GAAG5K,QAAQ8K,KAAKpG,EAAUnD,UAAUb,IAClC,MAAMqK,GAAuD,IAAhCF,EAAUG,QAAQtK,GACzCuK,GAbV,SAAwCvK,GAItC,MACMwK,GAAqE,IADjD,CAAC,WAAY,SAAU,QAAS,OAAQ,MAAO,OAAQ,WAAY,UAAW,MAAO,WAAY,QAAS,OAAQ,SAAU,SACzGF,QAAQtK,EAAQyK,SACvDC,EAAoC,UAApB1K,EAAQyK,SAAwD,WAAjCzK,EAAQ2K,aAAa,QAC1E,OAAOH,GAAsBE,CAC/B,CAKmCE,CAA+B5K,GAC1DqK,GAAwBE,GAC1Bf,EAAWxJ,EAASyJ,EACtB,GAEJ,CACA,SAASoB,EAAYC,EAAOC,GAC1B,IAAIC,GAAO,EAQX,OAPAF,EAAMG,MAAK,CAACC,EAAMC,MACZJ,EAASG,KACXF,EAAMG,GACC,KAIJH,CACT,CACA,SAASI,EAAgBC,EAAe3K,GACtC,MAAM4K,EAAe,GACftH,EAAYqH,EAAcrH,UAChC,IAAKtD,EAAM6K,kBAAmB,CAC5B,GAnDJ,SAAuBvH,GACrB,MAAMwH,GAAM,EAAAhH,EAAA,GAAcR,GAC1B,OAAIwH,EAAI/G,OAAST,GACR,EAAA6F,EAAA,GAAY7F,GAAWyH,WAAaD,EAAIE,gBAAgBC,YAE1D3H,EAAU0D,aAAe1D,EAAU4H,YAC5C,CA6CQC,CAAc7H,GAAY,CAE5B,MAAM8H,GAAgB,EAAAC,EAAA,IAAiB,EAAAvH,EAAA,GAAcR,IACrDsH,EAAaU,KAAK,CAChBtG,MAAO1B,EAAUG,MAAM2F,aACvBmC,SAAU,gBACVC,GAAIlI,IAGNA,EAAUG,MAAM2F,aAAe,GAAGF,EAAgB5F,GAAa8H,MAG/D,MAAMK,GAAgB,EAAA3H,EAAA,GAAcR,GAAWoI,iBAAiB,cAChE,GAAG9M,QAAQ8K,KAAK+B,GAAenM,IAC7BsL,EAAaU,KAAK,CAChBtG,MAAO1F,EAAQmE,MAAM2F,aACrBmC,SAAU,gBACVC,GAAIlM,IAENA,EAAQmE,MAAM2F,aAAe,GAAGF,EAAgB5J,GAAW8L,KAAiB,GAEhF,CACA,IAAIO,EACJ,GAAIrI,EAAUsI,sBAAsBC,iBAClCF,GAAkB,EAAA7H,EAAA,GAAcR,GAAWS,SACtC,CAGL,MAAM+H,EAASxI,EAAUyI,cACnB9D,GAAkB,EAAAkB,EAAA,GAAY7F,GACpCqI,EAAkE,UAArC,MAAVG,OAAiB,EAASA,EAAOE,WAA+E,WAAvD/D,EAAgBhC,iBAAiB6F,GAAQG,UAAyBH,EAASxI,CACzJ,CAIAsH,EAAaU,KAAK,CAChBtG,MAAO2G,EAAgBlI,MAAM2B,SAC7BmG,SAAU,WACVC,GAAIG,GACH,CACD3G,MAAO2G,EAAgBlI,MAAMyI,UAC7BX,SAAU,aACVC,GAAIG,GACH,CACD3G,MAAO2G,EAAgBlI,MAAMwI,UAC7BV,SAAU,aACVC,GAAIG,IAENA,EAAgBlI,MAAM2B,SAAW,QACnC,CAcA,MAbgB,KACdwF,EAAahM,SAAQ,EACnBoG,QACAwG,KACAD,eAEIvG,EACFwG,EAAG/H,MAAM0I,YAAYZ,EAAUvG,GAE/BwG,EAAG/H,MAAM2I,eAAeb,EAC1B,GACA,CAGN,CCrGA,MAAMc,EAAiB,IDsHhB,MACL,WAAAC,GACEC,KAAKC,gBAAa,EAClBD,KAAKE,YAAS,EACdF,KAAKE,OAAS,GACdF,KAAKC,WAAa,EACpB,CACA,GAAAE,CAAIC,EAAOrJ,GACT,IAAIsJ,EAAaL,KAAKE,OAAO7C,QAAQ+C,GACrC,IAAoB,IAAhBC,EACF,OAAOA,EAETA,EAAaL,KAAKE,OAAO5E,OACzB0E,KAAKE,OAAOnB,KAAKqB,GAGbA,EAAME,UACR/D,EAAW6D,EAAME,UAAU,GAE7B,MAAMC,EAnCV,SAA2BxJ,GACzB,MAAMwJ,EAAiB,GAMvB,MALA,GAAGlO,QAAQ8K,KAAKpG,EAAUnD,UAAUb,IACU,SAAxCA,EAAQ2K,aAAa,gBACvB6C,EAAexB,KAAKhM,EACtB,IAEKwN,CACT,CA2B2BC,CAAkBzJ,GACzC+F,EAAmB/F,EAAWqJ,EAAMK,MAAOL,EAAME,SAAUC,GAAgB,GAC3E,MAAMG,EAAiB9C,EAAYoC,KAAKC,YAAYhC,GAAQA,EAAKlH,YAAcA,IAC/E,OAAwB,IAApB2J,GACFV,KAAKC,WAAWS,GAAgBR,OAAOnB,KAAKqB,GACrCC,IAETL,KAAKC,WAAWlB,KAAK,CACnBmB,OAAQ,CAACE,GACTrJ,YACA4J,QAAS,KACTJ,mBAEKF,EACT,CACA,KAAAI,CAAML,EAAO3M,GACX,MAAMiN,EAAiB9C,EAAYoC,KAAKC,YAAYhC,IAAwC,IAAhCA,EAAKiC,OAAO7C,QAAQ+C,KAC1EhC,EAAgB4B,KAAKC,WAAWS,GACjCtC,EAAcuC,UACjBvC,EAAcuC,QAAUxC,EAAgBC,EAAe3K,GAE3D,CACA,MAAAmN,CAAOR,EAAOS,GAAkB,GAC9B,MAAMR,EAAaL,KAAKE,OAAO7C,QAAQ+C,GACvC,IAAoB,IAAhBC,EACF,OAAOA,EAET,MAAMK,EAAiB9C,EAAYoC,KAAKC,YAAYhC,IAAwC,IAAhCA,EAAKiC,OAAO7C,QAAQ+C,KAC1EhC,EAAgB4B,KAAKC,WAAWS,GAKtC,GAJAtC,EAAc8B,OAAOY,OAAO1C,EAAc8B,OAAO7C,QAAQ+C,GAAQ,GACjEJ,KAAKE,OAAOY,OAAOT,EAAY,GAGK,IAAhCjC,EAAc8B,OAAO5E,OAEnB8C,EAAcuC,SAChBvC,EAAcuC,UAEZP,EAAME,UAER/D,EAAW6D,EAAME,SAAUO,GAE7B/D,EAAmBsB,EAAcrH,UAAWqJ,EAAMK,MAAOL,EAAME,SAAUlC,EAAcmC,gBAAgB,GACvGP,KAAKC,WAAWa,OAAOJ,EAAgB,OAClC,CAEL,MAAMK,EAAU3C,EAAc8B,OAAO9B,EAAc8B,OAAO5E,OAAS,GAI/DyF,EAAQT,UACV/D,EAAWwE,EAAQT,UAAU,EAEjC,CACA,OAAOD,CACT,CACA,UAAAW,CAAWZ,GACT,OAAOJ,KAAKE,OAAO5E,OAAS,GAAK0E,KAAKE,OAAOF,KAAKE,OAAO5E,OAAS,KAAO8E,CAC3E,GCxLK,SAASa,EAASC,GACvB,MAAM,UACJnK,EAAS,qBACToK,GAAuB,EAAK,kBAC5B7C,GAAoB,EAAK,QAEzB8C,EAAUtB,EAAc,qBACxBuB,GAAuB,EAAK,kBAC5BC,EAAiB,mBACjBC,EAAkB,SAClB3N,EAAQ,QACR4N,EAAO,KACPxN,EAAI,QACJyN,GACEP,EAGEd,EAAQ,SAAa,CAAC,GACtBsB,EAAe,SAAa,MAC5BpB,EAAW,SAAa,MACxBlI,GAAY,EAAAzD,EAAA,GAAW2L,EAAUmB,IAChCrK,EAAQC,GAAa,YAAgBrD,GACtC2N,EAvCR,SAA0B/N,GACxB,QAAOA,GAAWA,EAASH,MAAMmO,eAAe,KAClD,CAqCwBC,CAAiBjO,GACvC,IAAIkO,GAAiB,EACa,UAA9BZ,EAAW,iBAA4D,IAA9BA,EAAW,iBACtDY,GAAiB,GAEnB,MACMC,EAAW,KACf3B,EAAMrL,QAAQuL,SAAWA,EAASvL,QAClCqL,EAAMrL,QAAQ0L,MAAQiB,EAAa3M,QAC5BqL,EAAMrL,SAETiN,EAAgB,KACpBZ,EAAQX,MAAMsB,IAAY,CACxBzD,sBAIEgC,EAASvL,UACXuL,EAASvL,QAAQkN,UAAY,EAC/B,EAEIC,GAAa,EAAAC,EAAA,IAAiB,KAClC,MAAMC,EAhEV,SAAsBrL,GACpB,MAA4B,mBAAdA,EAA2BA,IAAcA,CACzD,CA8D8BsB,CAAatB,KAjBpB,EAAAQ,EAAA,GAAcmK,EAAa3M,SAiBgByC,KAC9D4J,EAAQjB,IAAI4B,IAAYK,GAGpB9B,EAASvL,SACXiN,GACF,IAEIhB,EAAa,eAAkB,IAAMI,EAAQJ,WAAWe,MAAa,CAACX,IACtEiB,GAAkB,EAAAF,EAAA,IAAiBG,IACvCZ,EAAa3M,QAAUuN,EAClBA,IAGDtO,GAAQgN,IACVgB,IACS1B,EAASvL,SAClBwH,EAAW+D,EAASvL,QAAS+M,GAC/B,IAEIS,EAAc,eAAkB,KACpCnB,EAAQR,OAAOmB,IAAYD,EAAe,GACzC,CAACA,EAAgBV,IACpB,aAAgB,IACP,KACLmB,GAAa,GAEd,CAACA,IACJ,aAAgB,KACVvO,EACFkO,IACUP,GAAkBN,GAC5BkB,GACF,GACC,CAACvO,EAAMuO,EAAaZ,EAAeN,EAAsBa,IAC5D,MAAMM,EAAsBC,GAAiBtG,IAC3C,IAAIuG,EACiD,OAApDA,EAAwBD,EAAcE,YAAsBD,EAAsBvF,KAAKsF,EAAetG,GAQrF,WAAdA,EAAMyG,KAAoC,MAAhBzG,EAAM0G,OAEnC7B,MAGIG,IAEHhF,EAAM2G,kBACFtB,GACFA,EAAQrF,EAAO,kBAEnB,EAEI4G,EAA4BN,GAAiBtG,IACjD,IAAI6G,EAC+C,OAAlDA,EAAwBP,EAAcQ,UAAoBD,EAAsB7F,KAAKsF,EAAetG,GACjGA,EAAM+G,SAAW/G,EAAMgH,eAGvB3B,GACFA,EAAQrF,EAAO,gBACjB,EA8CF,MAAO,CACLiH,aA7CmB,CAACX,EAAgB,CAAC,KACrC,MAAMY,GAAqB,EAAAC,EAAA,GAAqBpC,UAGzCmC,EAAmB/B,yBACnB+B,EAAmB9B,mBAC1B,MAAMgC,GAAwB,OAAS,CAAC,EAAGF,EAAoBZ,GAC/D,OAAO,OAAS,CACd/L,KAAM,gBACL6M,EAAuB,CACxBZ,UAAWH,EAAoBe,GAC/B5M,IAAKyB,GACL,EAkCFoL,iBAhCuB,CAACf,EAAgB,CAAC,KACzC,MAAMc,EAAwBd,EAC9B,OAAO,OAAS,CACd,eAAe,GACdc,EAAuB,CACxBN,QAASF,EAA0BQ,GACnCvP,QACA,EA0BFyP,mBAxByB,KAgBlB,CACL7L,SAAS,EAAA8L,EAAA,IAhBS,KAClBrM,GAAU,GACNiK,GACFA,GACF,GAYwD,MAAZ1N,OAAmB,EAASA,EAASH,MAAMmE,SACvFC,UAAU,EAAA6L,EAAA,IAXS,KACnBrM,GAAU,GACNkK,GACFA,IAEEF,GACFkB,GACF,GAI0D,MAAZ3O,OAAmB,EAASA,EAASH,MAAMoE,YAO3F4J,QAASrJ,EACTuL,UAAWtB,EACXrB,aACA5J,SACAuK,gBAEJ,C,0HCxLA,SAASiC,EAAgBC,GACvB,YAAmC,IAArBA,EAAOC,UAA4BD,EAAOC,UAAU,OAAOC,QAAQ,mBAAoB,IAAMF,CAC7G,CACO,SAASG,EAAoBC,EAAS,CAAC,GAC5C,MAAM,cACJC,GAAgB,EAAI,WACpBC,GAAa,EAAI,MACjBC,EAAK,UACLC,EAAY,MAAK,UACjBC,EAAS,KACTC,GAAO,GACLN,EACJ,MAAO,CAACzO,GACNgP,aACAC,qBAEA,IAAIjL,EAAQ+K,EAAOC,EAAWD,OAASC,EACnCL,IACF3K,EAAQA,EAAMkL,eAEZR,IACF1K,EAAQoK,EAAgBpK,IAE1B,MAAMmL,EAAmBnL,EAAkBhE,EAAQoP,QAAOC,IACxD,IAAIC,GAAaR,GAAaG,GAAgBI,GAO9C,OANIV,IACFW,EAAYA,EAAUJ,eAEpBR,IACFY,EAAYlB,EAAgBkB,IAET,UAAdT,EAAqD,IAA7BS,EAAUzH,QAAQ7D,GAAesL,EAAUzH,QAAQ7D,IAAU,CAAC,IAR9DhE,EAUjC,MAAwB,iBAAV4O,EAAqBO,EAAgB3K,MAAM,EAAGoK,GAASO,CAAe,CAExF,CAGA,SAASI,EAAUC,EAAOC,GACxB,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAM1J,OAAQ4J,GAAK,EACrC,GAAID,EAAKD,EAAME,IACb,OAAOA,EAGX,OAAQ,CACV,CACA,MAAMC,EAAuBnB,IAGvBoB,EAAW,EACXC,EAAkCC,IACtC,IAAIC,EACJ,OAA8B,OAAvBD,EAAWvQ,UAAmF,OAA7DwQ,EAAwBD,EAAWvQ,QAAQyK,oBAAyB,EAAS+F,EAAsBC,SAASlN,SAASmN,eAAe,EAEvK,SAASC,EAAgBjS,GAC9B,MAAM,kCAEJkS,EAAoCN,EAA+B,yBAEnEO,EAA2B,MAAK,aAChCC,GAAe,EAAK,cACpBC,GAAgB,EAAK,WACrBC,GAAa,EAAK,aAClBC,GAAe,EAAK,YACpBC,GAAexS,EAAMyS,SAAQ,cAC7BC,GAAgB,EAAK,cACrBtU,EAAgB,kBAAiB,aACjCuU,GAAe3S,EAAM4S,SAAW,GAAK,MAAI,iBACzCC,GAAmB,EAAK,qBACxBC,GAAuB,EACvBC,SAAUC,EAAY,uBACtBC,GAAyB,EAAK,gBAC9BC,GAAkB,EAAK,cACvBC,EAAgBzB,EAAoB,sBACpC0B,GAAwB,EAAK,SAC7BX,GAAW,EAAK,kBAChBY,EAAiB,aACjBC,EACAtC,eAAgBuC,EAAqBnC,KACnC,IAAIoC,EACJ,OAAyC,OAAjCA,EAAgBpC,EAAOqC,OAAiBD,EAAgBpC,CAAM,GACvE,QACDsC,EAAO,kBACPC,GAAqB3T,EAAMyS,SAC3BmB,GAAIC,EAAM,mBACVC,GAAqB,EACrB/C,WAAYgD,EAAc,qBAC1BC,EAAuB,EAAC5C,EAAQpM,IAAUoM,IAAWpM,GAAK,SAC1D4N,GAAW,EAAK,SAChBpN,EAAQ,QACRuI,EAAO,kBACPkG,EAAiB,cACjBC,EAAa,OACbC,EACA5T,KAAM6T,EAAQ,YACdC,GAAc,EAAK,QACnBtS,EAAO,SACP6G,GAAW,EAAK,cAChB0L,GAAiBtU,EAAMyS,SACvBzN,MAAOuP,GACLvU,EACE4T,GAAK,OAAMC,GACjB,IAAI7C,EAAiBuC,EACrBvC,EAAiBI,IACf,MAAMoD,EAAcjB,EAAmBnC,GACvC,MAA2B,iBAAhBoD,EAKFC,OAAOD,GAETA,CAAW,EAEpB,MAAME,EAAc,UAAa,GAC3BC,GAAa,UAAa,GAC1B/O,GAAW,SAAa,MACxBiM,GAAa,SAAa,OACzBzS,GAAUwV,IAAe,WAAe,OACxCC,GAAYC,IAAiB,YAAgB,GAC9CC,GAAqB1C,EAAgB,GAAK,EAC1C2C,GAAsB,SAAaD,KAClC/P,GAAOiQ,KAAiB,OAAc,CAC3CC,WAAYX,EACZY,QAASxC,EACT7Q,KAAM1D,KAED2S,GAAYqE,KAAsB,OAAc,CACrDF,WAAYnB,EACZoB,QAAS,GACTrT,KAAM1D,EACNgE,MAAO,gBAEFiT,GAASC,IAAc,YAAe,GACvCC,GAAkB,eAAkB,CAAC7M,EAAO8M,KAIhD,KADyB5C,EAAW5N,GAAM6C,OAAS2N,EAAS3N,OAAsB,OAAb2N,KAC3ChD,EACxB,OAEF,IAAIiD,EACJ,GAAI7C,EACF6C,EAAgB,QACX,GAAgB,MAAZD,EACTC,EAAgB,OACX,CACL,MAAMjB,EAAcxD,EAAewE,GACnCC,EAAuC,iBAAhBjB,EAA2BA,EAAc,EAClE,CACIzD,KAAe0E,IAGnBL,GAAmBK,GACfvB,GACFA,EAAcxL,EAAO+M,EAAe,SACtC,GACC,CAACzE,EAAgBD,GAAY6B,EAAUsB,EAAekB,GAAoB5C,EAAaxN,MACnFzE,GAAMmV,KAAgB,OAAc,CACzCR,WAAYd,EACZe,SAAS,EACTrT,KAAM1D,EACNgE,MAAO,UAEFuT,GAAeC,IAAoB,YAAe,GACnDC,IAA6BjD,GAAqB,MAAT5N,IAAiB+L,KAAeC,EAAehM,IACxF8Q,GAAYvV,KAASqI,EACrBsI,GAAkB4E,GAAY3C,EAAcpR,EAAQoP,QAAOC,IAC3DgC,KAA0BR,EAAW5N,GAAQ,CAACA,KAAQuF,MAAKwL,GAAqB,OAAXA,GAAmB/B,EAAqB5C,EAAQ2E,OAO3H,CACEhF,WAAY8E,IAA6BF,GAAgB,GAAK5E,GAC9DC,mBACG,GACCgF,IAAgB,OAAiB,CACrC9E,mBACAlM,SACA+L,gBAEF,aAAgB,KACd,MAAMkF,EAAcjR,KAAUgR,GAAchR,MACxCqQ,KAAYY,GAKZxD,IAAawD,GAGjBV,GAAgB,KAAMvQ,GAAM,GAC3B,CAACA,GAAOuQ,GAAiBF,GAASW,GAAchR,MAAOyN,IAC1D,MAAMyD,GAAmB3V,IAAQ2Q,GAAgBrJ,OAAS,IAAMe,EAShE,MAAMuN,IAAW,QAAiBC,KACZ,IAAhBA,EACFxQ,GAAStE,QAAQ+U,QAEjBjX,GAASkX,cAAc,oBAAoBF,OAAgBC,OAC7D,IAIF,aAAgB,KACVzD,GAAYiC,GAAa7P,GAAM6C,OAAS,IAC1CiN,IAAe,GACfqB,IAAU,GACZ,GACC,CAACnR,GAAO4N,EAAUiC,GAAYsB,KA+BjC,MAAMI,IAAsB,QAAiB,EAC3C7N,QACA+B,QACA+L,SAAS,WAaT,GAXAxB,GAAoB1T,QAAUmJ,GAGf,IAAXA,EACF7E,GAAStE,QAAQ2H,gBAAgB,yBAEjCrD,GAAStE,QAAQ0H,aAAa,wBAAyB,GAAG4K,YAAanJ,KAErEwJ,GACFA,EAAkBvL,GAAkB,IAAX+B,EAAe,KAAOyG,GAAgBzG,GAAQ+L,IAEpE3E,GAAWvQ,QACd,OAEF,MAAMmV,EAAO5E,GAAWvQ,QAAQgV,cAAc,mBAAmBnE,aAC7DsE,IACFA,EAAKC,UAAUvJ,OAAO,GAAGgF,aACzBsE,EAAKC,UAAUvJ,OAAO,GAAGgF,mBAE3B,IAAIwE,EAAc9E,GAAWvQ,QAM7B,GALgD,YAA5CuQ,GAAWvQ,QAAQ2I,aAAa,UAClC0M,EAAc9E,GAAWvQ,QAAQyK,cAAcuK,cAAc,sBAI1DK,EACH,OAEF,IAAe,IAAXlM,EAEF,YADAkM,EAAYnI,UAAY,GAG1B,MAAM4C,EAASS,GAAWvQ,QAAQgV,cAAc,uBAAuB7L,OACvE,GAAK2G,IAGLA,EAAOsF,UAAUhK,IAAI,GAAGyF,aACT,aAAXqE,GACFpF,EAAOsF,UAAUhK,IAAI,GAAGyF,kBAQtBwE,EAAY3P,aAAe2P,EAAYzL,cAA2B,UAAXsL,GAAiC,UAAXA,GAAoB,CACnG,MAAMlX,EAAU8R,EACVwF,EAAeD,EAAYzL,aAAeyL,EAAYnI,UACtDqI,EAAgBvX,EAAQwX,UAAYxX,EAAQyX,aAC9CF,EAAgBD,EAClBD,EAAYnI,UAAYqI,EAAgBF,EAAYzL,aAC3C5L,EAAQwX,UAAYxX,EAAQyX,cAAgBrD,EAAU,IAAM,GAAKiD,EAAYnI,YACtFmI,EAAYnI,UAAYlP,EAAQwX,UAAYxX,EAAQyX,cAAgBrD,EAAU,IAAM,GAExF,KAEIsD,IAAyB,QAAiB,EAC9CtO,QACAuO,OACA7W,YAAY,OACZoW,SAAS,WAET,IAAKV,GACH,OAEF,MAgCMoB,EArIR,SAA0BzM,EAAOrK,GAC/B,IAAKyR,GAAWvQ,SAAWmJ,EAAQ,GAAKA,GAASyG,GAAgBrJ,OAC/D,OAAQ,EAEV,IAAIsP,EAAY1M,EAChB,OAAa,CACX,MAAM2G,EAASS,GAAWvQ,QAAQgV,cAAc,uBAAuBa,OAGjEC,GAAoBnE,KAAkC7B,GAAUA,EAAO2B,UAAqD,SAAzC3B,EAAOnH,aAAa,kBAC7G,GAAImH,GAAUA,EAAOiG,aAAa,cAAgBD,EAEhD,OAAOD,EAaT,GAPEA,EADgB,SAAd/W,GACW+W,EAAY,GAAKjG,GAAgBrJ,QAEjCsP,EAAY,EAAIjG,GAAgBrJ,QAAUqJ,GAAgBrJ,OAKrEsP,IAAc1M,EAChB,OAAQ,CAEZ,CACF,CAwGoB6M,CAhCG,MACnB,MAAMC,EAAWrG,GAAgBrJ,OAAS,EAC1C,GAAa,UAAToP,EACF,OAAOlC,GAET,GAAa,UAATkC,EACF,OAAO,EAET,GAAa,QAATA,EACF,OAAOM,EAET,MAAMC,EAAWxC,GAAoB1T,QAAU2V,EAC/C,OAAIO,EAAW,GACK,IAAdA,GAAmB1D,GACb,EAENZ,IAAoD,IAAjC8B,GAAoB1T,SAAkB6F,KAAKI,IAAI0P,GAAQ,EACrE,EAEFM,EAELC,EAAWD,EACTC,IAAaD,EAAW,GAAKzD,GACvB,EAENZ,GAAmB/L,KAAKI,IAAI0P,GAAQ,EAC/BM,EAEF,EAEFC,CAAQ,EAEkBC,GAAgBrX,GAQnD,GAPAmW,GAAoB,CAClB9L,MAAOyM,EACPV,SACA9N,UAIE0J,GAAyB,UAAT6E,EAClB,IAAmB,IAAfC,EACFtR,GAAStE,QAAQ0D,MAAQ+L,OACpB,CACL,MAAMK,EAASJ,EAAeE,GAAgBgG,IAC9CtR,GAAStE,QAAQ0D,MAAQoM,EAKX,IADAA,EAAOH,cAAcrH,QAAQmH,GAAWE,gBACnCF,GAAWlJ,OAAS,GACrCjC,GAAStE,QAAQoW,kBAAkB3G,GAAWlJ,OAAQuJ,EAAOvJ,OAEjE,CACF,IAkBI8P,GAAuB,eAAkB,KAC7C,IAAK7B,GACH,OAKF,MAAM8B,EAvBkC,MAMxC,IAAqC,IAAjC5C,GAAoB1T,SAAkB0U,GAAc9E,iBAAmB8E,GAAc9E,gBAAgBrJ,SAAWqJ,GAAgBrJ,QAAUmO,GAAcjF,aAAeA,KAAe6B,EAAW5N,GAAM6C,SAAWmO,GAAchR,MAAM6C,QAAUmO,GAAchR,MAAM6S,OAAM,CAACC,EAAKrG,IAAMT,EAAehM,GAAMyM,MAAQT,EAAe8G,MALjTC,EAKqU/B,GAAchR,MAL3U+Q,EAKkV/Q,IAJ9V+S,EAAS/G,EAAe+G,GAAU,OAClChC,EAAS/E,EAAe+E,GAAU,MAGqU,CACtX,MAAMiC,EAA4BhC,GAAc9E,gBAAgB8D,GAAoB1T,SACpF,GAAI0W,EACF,OAAO1G,EAAUJ,IAAiBE,GACzBJ,EAAeI,KAAYJ,EAAegH,IAGvD,CAZoB,IAACD,EAAQhC,EAa7B,OAAQ,CAAC,EAS8BkC,GACvC,IAAwC,IAApCL,EAEF,YADA5C,GAAoB1T,QAAUsW,GAGhC,MAAMM,EAAYtF,EAAW5N,GAAM,GAAKA,GAGxC,GAA+B,IAA3BkM,GAAgBrJ,QAA6B,MAAbqQ,GAMpC,GAAKrG,GAAWvQ,QAKhB,GAAiB,MAAb4W,EAqBAlD,GAAoB1T,SAAW4P,GAAgBrJ,OAAS,EAC1D0O,GAAoB,CAClB9L,MAAOyG,GAAgBrJ,OAAS,IAMpC0O,GAAoB,CAClB9L,MAAOuK,GAAoB1T,cA9B7B,CACE,MAAM6W,EAAgBjH,GAAgB8D,GAAoB1T,SAG1D,GAAIsR,GAAYuF,IAAwF,IAAvE7G,EAAUtM,IAAO8S,GAAO9D,EAAqBmE,EAAeL,KAC3F,OAEF,MAAMM,EAAY9G,EAAUJ,IAAiBmH,GAAcrE,EAAqBqE,EAAYH,MACzE,IAAfE,EACFpB,GAAuB,CACrBC,KAAM,UAGRV,GAAoB,CAClB9L,MAAO2N,GAIb,OA5BEpB,GAAuB,CACrBC,KAAM,SAwCR,GAGD,CAEH/F,GAAgBrJ,QAGhB+K,GAAmB5N,GAAOoO,EAAuB4D,GAAwBT,GAAqBT,GAAW/E,GAAY6B,IAC/G0F,IAAmB,QAAiBzJ,KACxC,OAAOgD,GAAYhD,GACdA,GAGL8I,IAAsB,IAcxB,aAAgB,KACdA,IAAsB,GACrB,CAACA,KACJ,MAAMlJ,GAAa/F,IACbnI,KAGJmV,IAAa,GACbE,IAAiB,GACbzB,GACFA,EAAOzL,GACT,EAEIoG,GAAc,CAACpG,EAAO8N,KACrBjW,KAGLmV,IAAa,GACT3H,GACFA,EAAQrF,EAAO8N,GACjB,EAEI+B,GAAc,CAAC7P,EAAO8M,EAAUgB,EAAQgC,KAC5C,GAAI5F,GACF,GAAI5N,GAAM6C,SAAW2N,EAAS3N,QAAU7C,GAAM6S,OAAM,CAACC,EAAKrG,IAAMqG,IAAQtC,EAAS/D,KAC/E,YAEG,GAAIzM,KAAUwQ,EACnB,OAEEhQ,GACFA,EAASkD,EAAO8M,EAAUgB,EAAQgC,GAEpCvD,GAAcO,EAAS,EAEnBiD,GAAU,UAAa,GACvBC,GAAiB,CAAChQ,EAAO0I,EAAQuH,EAAa,eAAgBC,EAAS,aAC3E,IAAIpC,EAASmC,EACTnD,EAAWpE,EACf,GAAIwB,EAAU,CACZ4C,EAAWqD,MAAMC,QAAQ9T,IAASA,GAAMuB,QAAU,GAOlD,MAAM6R,EAAY9G,EAAUkE,GAAU0C,GAAalE,EAAqB5C,EAAQ8G,MAC7D,IAAfE,EACF5C,EAASlK,KAAK8F,GACM,aAAXwH,IACTpD,EAASnI,OAAO+K,EAAW,GAC3B5B,EAAS,eAEb,CACAjB,GAAgB7M,EAAO8M,GACvB+C,GAAY7P,EAAO8M,EAAUgB,EAAQ,CACnCpF,WAEG0B,GAA0BpK,IAAUA,EAAMqQ,SAAYrQ,EAAMsQ,UAC/DlK,GAAYpG,EAAO8N,KAEA,IAAjBjE,GAA0C,UAAjBA,GAA4BkG,GAAQnX,SAA4B,UAAjBiR,IAA6BkG,GAAQnX,UAC/GsE,GAAStE,QAAQ2X,MACnB,EAsBF,MAAMC,GAAiB,CAACxQ,EAAOtI,KAC7B,IAAKwS,EACH,OAEiB,KAAf7B,IACFjC,GAAYpG,EAAO,eAErB,IAAIyQ,EAAUtE,IACM,IAAhBA,GACiB,KAAf9D,IAAmC,aAAd3Q,IACvB+Y,EAAUnU,GAAM6C,OAAS,IAG3BsR,GAAyB,SAAd/Y,EAAuB,GAAK,EACnC+Y,EAAU,IACZA,EAAU,GAERA,IAAYnU,GAAM6C,SACpBsR,GAAW,IAGfA,EAzCF,SAAuB1O,EAAOrK,GAC5B,IAAe,IAAXqK,EACF,OAAQ,EAEV,IAAI0M,EAAY1M,EAChB,OAAa,CAEX,GAAkB,SAAdrK,GAAwB+W,IAAcnS,GAAM6C,QAAwB,aAAdzH,IAA2C,IAAf+W,EACpF,OAAQ,EAEV,MAAM/F,EAAShS,GAASkX,cAAc,oBAAoBa,OAG1D,GAAK/F,GAAWA,EAAOiG,aAAa,cAAejG,EAAO2B,UAAqD,SAAzC3B,EAAOnH,aAAa,iBAGxF,OAAOkN,EAFPA,GAA2B,SAAd/W,EAAuB,GAAK,CAI7C,CACF,CAsBYgZ,CAAcD,EAAS/Y,GACjC0U,GAAcqE,GACdhD,GAASgD,EAAQ,EAEbE,GAAc3Q,IAClBgM,EAAYpT,SAAU,EACtB8T,GAAmB,IACflB,GACFA,EAAcxL,EAAO,GAAI,SAE3B6P,GAAY7P,EAAOkK,EAAW,GAAK,KAAM,QAAQ,EAE7C0G,GAAgBvY,GAAS2H,IAI7B,GAHI3H,EAAMmO,WACRnO,EAAMmO,UAAUxG,IAEdA,EAAM6Q,uBAGU,IAAhB1E,KAAyE,IAApD,CAAC,YAAa,cAAcjL,QAAQlB,EAAMyG,OACjE2F,IAAe,GACfqB,IAAU,IAIQ,MAAhBzN,EAAM0G,OACR,OAAQ1G,EAAMyG,KACZ,IAAK,OACC2G,IAAanC,IAEfjL,EAAM8Q,iBACNxC,GAAuB,CACrBC,KAAM,QACN7W,UAAW,OACXoW,OAAQ,WACR9N,WAGJ,MACF,IAAK,MACCoN,IAAanC,IAEfjL,EAAM8Q,iBACNxC,GAAuB,CACrBC,KAAM,MACN7W,UAAW,WACXoW,OAAQ,WACR9N,WAGJ,MACF,IAAK,SAEHA,EAAM8Q,iBACNxC,GAAuB,CACrBC,MAAOtF,EACPvR,UAAW,WACXoW,OAAQ,WACR9N,UAEF+F,GAAW/F,GACX,MACF,IAAK,WAEHA,EAAM8Q,iBACNxC,GAAuB,CACrBC,KAAMtF,EACNvR,UAAW,OACXoW,OAAQ,WACR9N,UAEF+F,GAAW/F,GACX,MACF,IAAK,YAEHA,EAAM8Q,iBACNxC,GAAuB,CACrBC,KAAM,EACN7W,UAAW,OACXoW,OAAQ,WACR9N,UAEF+F,GAAW/F,GACX,MACF,IAAK,UAEHA,EAAM8Q,iBACNxC,GAAuB,CACrBC,MAAO,EACP7W,UAAW,WACXoW,OAAQ,WACR9N,UAEF+F,GAAW/F,GACX,MACF,IAAK,YACHwQ,GAAexQ,EAAO,YACtB,MACF,IAAK,aACHwQ,GAAexQ,EAAO,QACtB,MACF,IAAK,QACH,IAAqC,IAAjCsM,GAAoB1T,SAAkBwU,GAAW,CACnD,MAAM1E,EAASF,GAAgB8D,GAAoB1T,SAC7CyR,IAAWM,GAAoBA,EAAkBjC,GAIvD,GADA1I,EAAM8Q,iBACFzG,EACF,OAEF2F,GAAehQ,EAAO0I,EAAQ,gBAG1BgB,GACFxM,GAAStE,QAAQoW,kBAAkB9R,GAAStE,QAAQ0D,MAAM6C,OAAQjC,GAAStE,QAAQ0D,MAAM6C,OAE7F,MAAW4K,GAA2B,KAAf1B,KAAmD,IAA9B8E,KACtCjD,GAEFlK,EAAM8Q,iBAERd,GAAehQ,EAAOqI,GAAY,eAAgB,aAEpD,MACF,IAAK,SACC+E,IAEFpN,EAAM8Q,iBAEN9Q,EAAM2G,kBACNP,GAAYpG,EAAO,WACVgK,IAAiC,KAAf3B,IAAqB6B,GAAY5N,GAAM6C,OAAS,KAE3Ea,EAAM8Q,iBAEN9Q,EAAM2G,kBACNgK,GAAY3Q,IAEd,MACF,IAAK,YAEH,GAAIkK,IAAahK,GAA2B,KAAfmI,IAAqB/L,GAAM6C,OAAS,EAAG,CAClE,MAAM4C,GAAwB,IAAhBoK,GAAoB7P,GAAM6C,OAAS,EAAIgN,GAC/CW,EAAWxQ,GAAMuB,QACvBiP,EAASnI,OAAO5C,EAAO,GACvB8N,GAAY7P,EAAO8M,EAAU,eAAgB,CAC3CpE,OAAQpM,GAAMyF,IAElB,CACA,MACF,IAAK,SAEH,GAAImI,IAAahK,GAA2B,KAAfmI,IAAqB/L,GAAM6C,OAAS,IAAqB,IAAhBgN,GAAmB,CACvF,MAAMpK,EAAQoK,GACRW,EAAWxQ,GAAMuB,QACvBiP,EAASnI,OAAO5C,EAAO,GACvB8N,GAAY7P,EAAO8M,EAAU,eAAgB,CAC3CpE,OAAQpM,GAAMyF,IAElB,EAIN,EAEIgP,GAAc/Q,IAClB4M,IAAW,GACPjB,IAAgBK,EAAYpT,SAC9BmN,GAAW/F,EACb,EAEIgR,GAAahR,IAEbwJ,EAAkCL,IACpCjM,GAAStE,QAAQ+U,SAGnBf,IAAW,GACXX,GAAWrT,SAAU,EACrBoT,EAAYpT,SAAU,EAClBgR,IAA+C,IAAjC0C,GAAoB1T,SAAkBwU,GACtD4C,GAAehQ,EAAOwI,GAAgB8D,GAAoB1T,SAAU,QAC3DgR,GAAcG,GAA2B,KAAf1B,GACnC2H,GAAehQ,EAAOqI,GAAY,OAAQ,YACjCyB,GACT+C,GAAgB7M,EAAO1D,IAEzB8J,GAAYpG,EAAO,QAAO,EAEtBiR,GAAoBjR,IACxB,MAAM8M,EAAW9M,EAAM+G,OAAOzK,MAC1B+L,KAAeyE,IACjBJ,GAAmBI,GACnBI,IAAiB,GACb1B,GACFA,EAAcxL,EAAO8M,EAAU,UAGlB,KAAbA,EACG3C,GAAqBD,GACxB2F,GAAY7P,EAAO,KAAM,SAG3B+F,GAAW/F,EACb,EAEIkR,GAAwBlR,IAC5B,MAAM+B,EAAQpD,OAAOqB,EAAMgH,cAAczF,aAAa,sBAClD+K,GAAoB1T,UAAYmJ,GAClC8L,GAAoB,CAClB7N,QACA+B,QACA+L,OAAQ,SAEZ,EAEIqD,GAAyBnR,IAC7B6N,GAAoB,CAClB7N,QACA+B,MAAOpD,OAAOqB,EAAMgH,cAAczF,aAAa,sBAC/CuM,OAAQ,UAEViC,GAAQnX,SAAU,CAAI,EAElBwY,GAAoBpR,IACxB,MAAM+B,EAAQpD,OAAOqB,EAAMgH,cAAczF,aAAa,sBACtDyO,GAAehQ,EAAOwI,GAAgBzG,GAAQ,gBAC9CgO,GAAQnX,SAAU,CAAK,EAEnByY,GAAkBtP,GAAS/B,IAC/B,MAAM8M,EAAWxQ,GAAMuB,QACvBiP,EAASnI,OAAO5C,EAAO,GACvB8N,GAAY7P,EAAO8M,EAAU,eAAgB,CAC3CpE,OAAQpM,GAAMyF,IACd,EAEEuP,GAAuBtR,IACvBnI,GACFuO,GAAYpG,EAAO,eAEnB+F,GAAW/F,EACb,EAIIuR,GAAkBvR,IAEjBA,EAAMgH,cAAcqC,SAASrJ,EAAM+G,SAGpC/G,EAAM+G,OAAOxF,aAAa,QAAU2J,GACtClL,EAAM8Q,gBACR,EAIIU,GAAcxR,IAEbA,EAAMgH,cAAcqC,SAASrJ,EAAM+G,UAGxC7J,GAAStE,QAAQ+U,QACb/B,GAAiBK,GAAWrT,SAAWsE,GAAStE,QAAQ6Y,aAAevU,GAAStE,QAAQ8Y,gBAAmB,GAC7GxU,GAAStE,QAAQ+Y,SAEnB1F,GAAWrT,SAAU,EAAK,EAEtBgZ,GAAuB5R,IACtBsK,GAAgC,KAAfjC,IAAsBxQ,IAC1CyZ,GAAqBtR,EACvB,EAEF,IAAI6R,GAAQ9H,GAAY1B,GAAWlJ,OAAS,EAC5C0S,GAAQA,KAAU3H,EAAW5N,GAAM6C,OAAS,EAAc,OAAV7C,IAChD,IAAIwV,GAAiBtJ,GACrB,GAAIwC,EAAS,CAEK,IAAI+G,IAEpBD,GAAiBtJ,GAAgBwJ,QAAO,CAACC,EAAKvJ,EAAQ3G,KACpD,MAAMmQ,EAAQlH,EAAQtC,GAkBtB,OAjBIuJ,EAAI9S,OAAS,GAAK8S,EAAIA,EAAI9S,OAAS,GAAG+S,QAAUA,EAClDD,EAAIA,EAAI9S,OAAS,GAAG9F,QAAQuJ,KAAK8F,GASjCuJ,EAAIrP,KAAK,CACP6D,IAAK1E,EACLA,QACAmQ,QACA7Y,QAAS,CAACqP,KAGPuJ,CAAG,GACT,GACL,CAIA,OAHI3H,GAAgBqC,IAClBqE,KAEK,CACL/J,aAAc,CAAC5O,EAAQ,CAAC,KAAM,OAAS,CACrC,YAAamV,GAAmB,GAAGtC,YAAe,MACjD7S,EAAO,CACRmO,UAAWoK,GAAcvY,GACzB8Z,YAAaZ,GACbzK,QAAS0K,KAEXY,mBAAoB,KAAM,CACxBlH,GAAI,GAAGA,UACPmH,QAASnH,IAEXoH,cAAe,KAAM,CACnBpH,KACA5O,MAAO+L,GACPkK,OAAQvB,GACRwB,QAASzB,GACTjU,SAAUmU,GACVkB,YAAaP,GAGb,wBAAyBxE,GAAY,GAAK,KAC1C,oBAAqB1D,EAAe,OAAS,OAC7C,gBAAiB8D,GAAmB,GAAGtC,iBAAerU,EACtD,gBAAiB2W,GAGjB9D,aAAc,MACdlP,IAAK0C,GACLuV,eAAgB,OAChBC,WAAY,QACZnY,KAAM,WACN8P,SAAUC,IAEZqI,cAAe,KAAM,CACnBxS,UAAW,EACXyS,KAAM,SACN9L,QAAS6J,KAEXkC,uBAAwB,KAAM,CAC5B1S,UAAW,EACXyS,KAAM,SACN9L,QAASwK,KAEXwB,YAAa,EACX/Q,YACI,OAAS,CACb0E,IAAK1E,EACL,iBAAkBA,EAClB5B,UAAW,IACTD,GAAY,CACd6S,SAAU1B,GAAgBtP,KAE5BiR,gBAAiB,KAAM,CACrBzY,KAAM,UACN2Q,GAAI,GAAGA,YACP,kBAAmB,GAAGA,UACtB1Q,IAAKoV,GACLuC,YAAanS,IAEXA,EAAM8Q,gBAAgB,IAG1BmC,eAAgB,EACdlR,QACA2G,aAEA,IAAIwK,EACJ,MAAMC,GAAYjJ,EAAW5N,GAAQ,CAACA,KAAQuF,MAAKwL,GAAoB,MAAVA,GAAkB/B,EAAqB5C,EAAQ2E,KACtGhD,IAAWM,GAAoBA,EAAkBjC,GACvD,MAAO,CACLjC,IAA+E,OAAzEyM,EAAgC,MAAhBtI,OAAuB,EAASA,EAAalC,IAAmBwK,EAAgB5K,EAAeI,GACrHvI,UAAW,EACX5F,KAAM,SACN2Q,GAAI,GAAGA,YAAanJ,IACpBqR,YAAalC,GACbpK,QAASsK,GACTiC,aAAclC,GACd,oBAAqBpP,EACrB,gBAAiBsI,EACjB,gBAAiB8I,EAClB,EAEHjI,KACA7C,cACA/L,SACAuV,SACAyB,SAAUlG,IAAa1W,GACvB0W,aACAT,QAASA,KAA2B,IAAhBR,GACpBzV,YACAwV,eACAC,cACA2F,kBAEJ,C,iDCr9BO,SAASyB,EAASxO,GACvB,MACEyO,aAAcC,EACdC,UAAWC,GAAgB,EAC3BjV,IAAKkV,EAAU,GAAE,SACjBC,GAAW,GACT9O,EACE+O,GAAY,OAAiB,CACjCN,aAAcC,EACd/U,IAAKkV,IAEP,IAAIF,EAAYC,GACM,IAAlBA,GAAgD,IAArBF,GAA2BI,IACxDH,GAAY,GAEd,MAAM,aACJF,EAAY,IACZ9U,EAAMkV,GACJF,EAAYI,EAAY/O,EAE5B,MAAO,CACLyO,eACAE,YACAhV,MACAqV,aALmBP,GAAgB7U,OAAO6U,GAAgB9U,EAAM,GAAGA,KAAS8U,EAOhF,C,6KCjCA,MAAMQ,EAAmC,EACzC,SAASC,EAAIC,EAAGC,GACd,OAAOD,EAAIC,CACb,CACA,SAASC,EAAYC,EAAQC,GAC3B,IAAIC,EACJ,MACExS,MAAOyS,GAUI,OATRD,EAAiBF,EAAOrC,QAAO,CAACC,EAAK3V,EAAOyF,KAC/C,MAAM0S,EAAWhW,KAAKI,IAAIyV,EAAehY,GACzC,OAAY,OAAR2V,GAAgBwC,EAAWxC,EAAIwC,UAAYA,IAAaxC,EAAIwC,SACvD,CACLA,WACA1S,SAGGkQ,CAAG,GACT,OAAiBsC,EAAiB,CAAC,EACtC,OAAOC,CACT,CACA,SAASE,EAAY1U,EAAO2U,GAE1B,QAAwB9d,IAApB8d,EAAQ/b,SAAyBoH,EAAM4U,eAAgB,CACzD,MAAMC,EAAa7U,EACnB,IAAK,IAAI+I,EAAI,EAAGA,EAAI8L,EAAWD,eAAezV,OAAQ4J,GAAK,EAAG,CAC5D,MAAM+L,EAAQD,EAAWD,eAAe7L,GACxC,GAAI+L,EAAMC,aAAeJ,EAAQ/b,QAC/B,MAAO,CACLoc,EAAGF,EAAMG,QACTC,EAAGJ,EAAMK,QAGf,CACA,OAAO,CACT,CAGA,MAAO,CACLH,EAAGhV,EAAMiV,QACTC,EAAGlV,EAAMmV,QAEb,CACO,SAASC,EAAe9Y,EAAOsC,EAAKF,GACzC,OAAuB,KAAfpC,EAAQsC,IAAcF,EAAME,EACtC,CAeA,SAASyW,EAAiB/Y,EAAOgZ,EAAM1W,GACrC,MAAM2W,EAAU9W,KAAK+W,OAAOlZ,EAAQsC,GAAO0W,GAAQA,EAAO1W,EAC1D,OAAOD,OAAO4W,EAAQE,QAbxB,SAA6BC,GAG3B,GAAIjX,KAAKI,IAAI6W,GAAO,EAAG,CACrB,MAAMC,EAAQD,EAAIE,gBAAgBC,MAAM,MAClCC,EAAqBH,EAAM,GAAGE,MAAM,KAAK,GAC/C,OAAQC,EAAqBA,EAAmB3W,OAAS,GAAK5C,SAASoZ,EAAM,GAAI,GACnF,CACA,MAAMI,EAAcL,EAAIM,WAAWH,MAAM,KAAK,GAC9C,OAAOE,EAAcA,EAAY5W,OAAS,CAC5C,CAGgC8W,CAAoBX,IACpD,CACA,SAASY,GAAc,OACrB7B,EAAM,SACNvH,EAAQ,MACR/K,IAEA,MAAMoU,EAAS9B,EAAOxW,QAEtB,OADAsY,EAAOpU,GAAS+K,EACTqJ,EAAOC,KAAKnC,EACrB,CACA,SAASoC,GAAW,UAClBC,EAAS,YACTC,EAAW,UACXC,IAEA,IAAIC,EAAoBC,EACxB,MAAMtU,GAAM,EAAAhH,EAAA,GAAckb,EAAU1d,SAElC,IAAI+d,EAD4C,OAA3CF,EAAqBH,EAAU1d,UAAoB6d,EAAmBpN,SAASjH,EAAIkH,gBAAmB3K,OAAc,MAAPyD,GAA2D,OAA3CsU,EAAqBtU,EAAIkH,oBAAyB,EAASoN,EAAmBnV,aAAa,iBAAmBgV,IAEnM,OAA5CI,EAAsBL,EAAU1d,UAAoB+d,EAAoB/I,cAAc,8BAA8B2I,OAAiB5I,SAEpI6I,GACFA,EAAUD,EAEd,CACA,SAASK,EAAe9J,EAAU+J,GAChC,MAAwB,iBAAb/J,GAA6C,iBAAb+J,EAClC/J,IAAa+J,EAEE,iBAAb/J,GAA6C,iBAAb+J,GCjGtC,SAAwBC,EAAQC,EAAQC,EAAe,EAAC9C,EAAGC,IAAMD,IAAMC,IAC5E,OAAO2C,EAAO3X,SAAW4X,EAAO5X,QAAU2X,EAAO3H,OAAM,CAAC7S,EAAOyF,IAAUiV,EAAa1a,EAAOya,EAAOhV,KACtG,CDgGWkV,CAAenK,EAAU+J,EAGpC,CACA,MAAMK,EAAY,CAChBC,WAAY,CACVC,OAAQC,IAAW,CACjBvb,KAAM,GAAGub,OAEXC,KAAMD,IAAW,CACf7Z,MAAO,GAAG6Z,QAGd,qBAAsB,CACpBD,OAAQC,IAAW,CACjBE,MAAO,GAAGF,OAEZC,KAAMD,IAAW,CACf7Z,MAAO,GAAG6Z,QAGdG,SAAU,CACRJ,OAAQC,IAAW,CACjBI,OAAQ,GAAGJ,OAEbC,KAAMD,IAAW,CACf1a,OAAQ,GAAG0a,SAIJK,EAAW1C,GAAKA,EAY7B,IAAI2C,EACJ,SAASC,IAQP,YAPsC/gB,IAAlC8gB,IAEAA,EADiB,oBAARE,KAA+C,mBAAjBA,IAAIC,UACXD,IAAIC,SAAS,eAAgB,SAK1DH,CACT,CAWO,SAASI,EAAUhT,GACxB,MACE,kBAAmBiT,EAAc,aACjC/N,EAAY,SACZI,GAAW,EAAK,YAChB4N,GAAc,EAAK,MACnBC,GAAQ,EACRC,MAAOC,GAAY,EAAK,IACxB1Z,EAAM,IAAG,IACTE,EAAM,EAAC,KACPxF,EAAI,SACJ0D,EAAQ,kBACRub,EAAiB,YACjBC,EAAc,aACdhT,QAAS9K,EAAG,MACZ+d,EAAQb,EAAQ,KAChBpC,EAAO,EAAC,UACRkD,EAAY,GAAE,SACdrY,EACA7D,MAAOuP,GACL9G,EACE4P,EAAU,YAIT8D,EAAQjC,GAAa,YAAgB,IACrC3e,EAAM6gB,GAAW,YAAgB,IACjCC,EAAUC,GAAe,YAAe,GACzCC,EAAY,SAAa,IACxBC,EAAcvM,IAAiB,EAAAwM,EAAA,GAAc,CAClDvM,WAAYX,EACZY,QAAyB,MAAhBxC,EAAuBA,EAAerL,EAC/CxF,KAAM,WAEF4f,EAAelc,GAAY,EAAEkD,EAAO1D,EAAO2c,KAK/C,MAAMC,EAAclZ,EAAMkZ,aAAelZ,EAEnCmZ,EAAc,IAAID,EAAYtV,YAAYsV,EAAYtG,KAAMsG,GAClEja,OAAOma,eAAeD,EAAa,SAAU,CAC3CE,UAAU,EACV/c,MAAO,CACLA,QACAlD,UAGJ0D,EAASqc,EAAa7c,EAAO2c,EAC9B,GACKK,EAAQnJ,MAAMC,QAAQ0I,GAC5B,IAAIzE,GAASiF,EAAQR,EAAajb,QAAQuY,KAAKnC,GAAO,CAAC6E,GACvDzE,GAASA,GAAOkF,KAAIjd,GAAkB,MAATA,EAAgBsC,GAAM,EAAA4a,EAAA,GAAMld,EAAOsC,EAAKF,KACrE,MAAMyZ,IAAsB,IAAdC,GAA+B,OAAT9C,EAAgB,IAAInF,MAAM1R,KAAKgb,OAAO/a,EAAME,GAAO0W,GAAQ,IAAIiE,KAAI,CAACG,EAAG3X,KAAU,CACnHzF,MAAOsC,EAAM0W,EAAOvT,MAChBqW,GAAa,GACbuB,GAAcxB,GAAMoB,KAAIK,GAAQA,EAAKtd,SACrC,kBACJud,GACAtH,OAAQuH,GACRtH,QAASuH,GACTvf,IAAKwf,KACH,EAAAC,EAAA,MACGC,GAAmBC,IAAwB,YAAgB,GAC5D7D,GAAY,WACZ8D,IAAiB,EAAA5hB,EAAA,GAAWwhB,GAAiB1D,IAC7Cra,IAAY,EAAAzD,EAAA,GAAWgC,EAAK4f,IAC5BC,GAA+B/T,GAAiBtG,IACpD,IAAIsa,EACJ,MAAMvY,EAAQpD,OAAOqB,EAAMgH,cAAczF,aAAa,eACtDwY,GAAmB/Z,IACe,IAA9B6Z,GAAkBjhB,SACpBuhB,GAAqBpY,GAEvB2W,EAAQ3W,GACS,MAAjBuE,GAA4E,OAAlDgU,EAAwBhU,EAAckM,UAAoB8H,EAAsBtZ,KAAKsF,EAAetG,EAAM,EAEhIua,GAA8BjU,GAAiBtG,IACnD,IAAIwa,EACJV,GAAkB9Z,IACgB,IAA9B6Z,GAAkBjhB,SACpBuhB,IAAsB,GAExBzB,GAAS,GACQ,MAAjBpS,GAA2E,OAAjDkU,EAAwBlU,EAAciM,SAAmBiI,EAAsBxZ,KAAKsF,EAAetG,EAAM,EAE/Hya,GAAc,CAACza,EAAO0a,KAC1B,MAAM3Y,EAAQpD,OAAOqB,EAAMgH,cAAczF,aAAa,eAChDjF,EAAQ+X,GAAOtS,GACf4Y,EAAahB,GAAYzY,QAAQ5E,GACvC,IAAIwQ,EAAW4N,EACf,GAAIvC,IAAiB,MAAR7C,EAAc,CACzB,MAAMsF,EAAgBjB,GAAYA,GAAYxa,OAAS,GAErD2N,EADEA,EAAW8N,EACFA,EACF9N,EAAW6M,GAAY,GACrBA,GAAY,GAEZ7M,EAAWxQ,EAAQqd,GAAYgB,EAAa,GAAKhB,GAAYgB,EAAa,EAEzF,CAEA,GADA7N,GAAW,EAAA0M,EAAA,GAAM1M,EAAUlO,EAAKF,GAC5B4a,EAAO,CAELrB,IACFnL,GAAW,EAAA0M,EAAA,GAAM1M,EAAUuH,GAAOtS,EAAQ,KAAO8Y,IAAUxG,GAAOtS,EAAQ,IAAM8Y,MAElF,MAAMC,EAAgBhO,EACtBA,EAAWoJ,EAAc,CACvB7B,UACAvH,WACA/K,UAEF,IAAIwU,EAAcxU,EAGbkW,IACH1B,EAAczJ,EAAS5L,QAAQ4Z,IAEjCzE,EAAW,CACTC,aACAC,eAEJ,CACAhK,EAAcO,GACdqN,GAAqBpY,GACjBiX,IAAiBpC,EAAe9J,EAAUgM,IAC5CE,EAAahZ,EAAO8M,EAAU/K,GAE5BsW,GACFA,EAAkBrY,EAAO8M,EAC3B,EAEIiO,GAAiCzU,GAAiBtG,IACtD,IAAIuG,EAGJ,GAAa,OAAT+O,EAAe,CACjB,MAAMvT,EAAQpD,OAAOqB,EAAMgH,cAAczF,aAAa,eAChDjF,EAAQ+X,GAAOtS,GACrB,IAAI+K,EAAW,MACI,cAAd9M,EAAMyG,KAAqC,cAAdzG,EAAMyG,MAAwBzG,EAAMgb,UAA0B,aAAdhb,EAAMyG,IACtFqG,EAAWrO,KAAKC,IAAIpC,EAAQkc,EAAW5Z,KACf,eAAdoB,EAAMyG,KAAsC,YAAdzG,EAAMyG,MAAsBzG,EAAMgb,UAA0B,WAAdhb,EAAMyG,OAC5FqG,EAAWrO,KAAKG,IAAItC,EAAQkc,EAAW9Z,IAExB,OAAboO,IACF2N,GAAYza,EAAO8M,GACnB9M,EAAM8Q,iBAEV,CACiB,MAAjBxK,GAA8E,OAApDC,EAAwBD,EAAcE,YAAsBD,EAAsBvF,KAAKsF,EAAetG,EAAM,GAExI,EAAArH,EAAA,IAAkB,KAEd,IAAIsiB,EADF5Q,GAAYiM,GAAU1d,QAAQyQ,SAASlN,SAASmN,iBAME,OAAnD2R,EAAwB9e,SAASmN,gBAA0B2R,EAAsB1K,OACpF,GACC,CAAClG,IACAA,IAAwB,IAAZoO,GACdjC,GAAW,GAETnM,IAAmC,IAAvB6P,IACdC,IAAsB,GAExB,MAMMe,GAAgB,WACtB,IAAIC,GAAO7C,EACPJ,GAAyB,eAAhBI,IACX6C,IAAQ,YAEV,MAAMC,GAAoB,EACxBC,SACAC,QAAO,MAEP,MACE1iB,QAAS2iB,GACPjF,IACE,MACJ9Y,EAAK,OACLb,EAAM,OACN8a,EAAM,KACN3b,GACEyf,EAAOC,wBACX,IAAInE,EASAvK,EAEJ,GATEuK,EAD+B,IAA7B8D,GAAKja,QAAQ,aACJuW,EAAS4D,EAAOnG,GAAKvY,GAErB0e,EAAOrG,EAAIlZ,GAAQ0B,GAEE,IAA9B2d,GAAKja,QAAQ,cACfmW,EAAU,EAAIA,GAGhBvK,EA1TJ,SAAwBuK,EAASzY,EAAKF,GACpC,OAAQA,EAAME,GAAOyY,EAAUzY,CACjC,CAwTe6c,CAAepE,EAASzY,EAAKF,GACpC4W,EACFxI,EAAWuI,EAAiBvI,EAAUwI,EAAM1W,OACvC,CACL,MAAM4V,EAAeJ,EAAYuF,GAAa7M,GAC9CA,EAAW6M,GAAYnF,EACzB,CACA1H,GAAW,EAAA0M,EAAA,GAAM1M,EAAUlO,EAAKF,GAChC,IAAI6X,EAAc,EAClB,GAAI+C,EAAO,CAIP/C,EAHG+E,EAGWJ,GAActiB,QAFdwb,EAAYC,GAAQvH,GAMhCmL,IACFnL,GAAW,EAAA0M,EAAA,GAAM1M,EAAUuH,GAAOkC,EAAc,KAAOsE,IAAUxG,GAAOkC,EAAc,IAAMsE,MAE9F,MAAMC,EAAgBhO,EACtBA,EAAWoJ,EAAc,CACvB7B,UACAvH,WACA/K,MAAOwU,IAIH0B,GAAeqD,IACnB/E,EAAczJ,EAAS5L,QAAQ4Z,GAC/BI,GAActiB,QAAU2d,EAE5B,CACA,MAAO,CACLzJ,WACAyJ,cACD,EAEGmF,IAAkB,EAAA1V,EAAA,IAAiBkT,IACvC,MAAMmC,EAAS3G,EAAYwE,EAAavE,GACxC,IAAK0G,EACH,OAMF,GAJAxC,EAAUjgB,SAAW,EAII,cAArBsgB,EAAYtG,MAAgD,IAAxBsG,EAAYyC,QAGlD,YADAC,GAAe1C,GAGjB,MAAM,SACJpM,EAAQ,YACRyJ,GACE6E,GAAkB,CACpBC,SACAC,MAAM,IAERjF,EAAW,CACTC,aACAC,cACAC,cAEFjK,EAAcO,IACT6L,GAAYE,EAAUjgB,QAAUob,GACnC4E,GAAY,GAEVI,IAAiBpC,EAAe9J,EAAUgM,IAC5CE,EAAaE,EAAapM,EAAUyJ,EACtC,IAEIqF,IAAiB,EAAA5V,EAAA,IAAiBkT,IACtC,MAAMmC,EAAS3G,EAAYwE,EAAavE,GAExC,GADAiE,GAAY,IACPyC,EACH,OAEF,MAAM,SACJvO,GACEsO,GAAkB,CACpBC,SACAC,MAAM,IAER9E,GAAW,GACc,aAArB0C,EAAYtG,MACd8F,GAAS,GAEPL,GACFA,EAAkBa,EAAapM,GAEjC6H,EAAQ/b,aAAU/B,EAGlBglB,IAAe,IAEXC,IAAmB,EAAA9V,EAAA,IAAiBkT,IACxC,GAAI7O,EACF,OAGGuN,KACHsB,EAAYpI,iBAEd,MAAMgE,EAAQoE,EAAYtE,eAAe,GAC5B,MAATE,IAEFH,EAAQ/b,QAAUkc,EAAMC,YAE1B,MAAMsG,EAAS3G,EAAYwE,EAAavE,GACxC,IAAe,IAAX0G,EAAkB,CACpB,MAAM,SACJvO,EAAQ,YACRyJ,GACE6E,GAAkB,CACpBC,WAEFhF,EAAW,CACTC,aACAC,cACAC,cAEFjK,EAAcO,GACVkM,IAAiBpC,EAAe9J,EAAUgM,IAC5CE,EAAaE,EAAapM,EAAUyJ,EAExC,CACAsC,EAAUjgB,QAAU,EACpB,MAAMwJ,GAAM,EAAAhH,EAAA,GAAckb,GAAU1d,SACpCwJ,EAAI3C,iBAAiB,YAAaic,GAAiB,CACjDK,SAAS,IAEX3Z,EAAI3C,iBAAiB,WAAYmc,GAAgB,CAC/CG,SAAS,GACT,IAEEF,GAAgB,eAAkB,KACtC,MAAMzZ,GAAM,EAAAhH,EAAA,GAAckb,GAAU1d,SACpCwJ,EAAItC,oBAAoB,YAAa4b,IACrCtZ,EAAItC,oBAAoB,UAAW8b,IACnCxZ,EAAItC,oBAAoB,YAAa4b,IACrCtZ,EAAItC,oBAAoB,WAAY8b,GAAe,GAClD,CAACA,GAAgBF,KACpB,aAAgB,KACd,MACE9iB,QAAS2iB,GACPjF,GAIJ,OAHAiF,EAAO9b,iBAAiB,aAAcqc,GAAkB,CACtDC,QAASnE,MAEJ,KACL2D,EAAOzb,oBAAoB,aAAcgc,IACzCD,IAAe,CAChB,GACA,CAACA,GAAeC,KACnB,aAAgB,KACVzR,GACFwR,IACF,GACC,CAACxR,EAAUwR,KACd,MA0CMG,GAAc5G,EAAekE,EAAQjF,GAAO,GAAKzV,EAAKA,EAAKF,GAC3Dud,GAAY7G,EAAef,GAAOA,GAAOlV,OAAS,GAAIP,EAAKF,GAAOsd,GAiBlEE,GAAyB5V,GAAiBtG,IAC9C,IAAImc,EACqD,OAAxDA,EAAyB7V,EAAc8V,eAAyBD,EAAuBnb,KAAKsF,EAAetG,GAC5G0Y,GAAS,EAAE,EA+Cb,MAAO,CACLD,SACA0C,KAAMA,GACNjE,YACAyB,WACAuB,qBACAmC,oBArC0B,CAACC,EAAgB,CAAC,KAC5C,IAAIC,EACJ,MAAMC,GAAmB,EAAArV,EAAA,GAAqBmV,GACxCG,EAAmB,CACvB3f,UArRkCwJ,EAqRMkW,GAAoB,CAAC,EArRVxc,IACrD,IAAI0c,EACgD,OAAnDA,EAAwBpW,EAAcxJ,WAAqB4f,EAAsB1b,KAAKsF,EAAetG,GAEtGya,GAAYza,EAAOA,EAAM+G,OAAO4V,cAAc,GAkR5CnK,QAAS6H,GAA6BmC,GAAoB,CAAC,GAC3DjK,OAAQgI,GAA4BiC,GAAoB,CAAC,GACzDhW,UAAWuU,GAA+ByB,GAAoB,CAAC,IAxR7BlW,MA0RpC,MAAMsW,GAAsB,OAAS,CAAC,EAAGJ,EAAkBC,GAC3D,OAAO,OAAS,CACdtc,WACA,kBAAmB6X,EACnB,mBAAoBM,EACpB,gBAAiBC,EAAM7Z,GACvB,gBAAiB6Z,EAAM3Z,GACvBxF,OACAwZ,KAAM,QACNhU,IAAKmG,EAAWnG,IAChBF,IAAKqG,EAAWrG,IAChB4W,KAA0B,OAApBvQ,EAAWuQ,MAAiBvQ,EAAWoT,MAAQ,MAAgD,OAAvCoE,EAAmBxX,EAAWuQ,MAAgBiH,OAAmB1lB,EAC/HwT,YACCiS,EAAeM,EAAqB,CACrC7hB,OAAO,OAAS,CAAC,EAAG8hB,EAAA,EAAgB,CAClCnlB,UAAWwgB,EAAQ,MAAQ,MAE3B1a,MAAO,OACPb,OAAQ,UAEV,EASFsK,aAzEmB,CAACqV,EAAgB,CAAC,KACrC,MAAME,GAAmB,EAAArV,EAAA,GAAqBmV,GACxCG,EAAmB,CACvBtK,aA/C0B7L,EA+CSkW,GAAoB,CAAC,EA/Cbxc,IAC7C,IAAI8c,EAEJ,GADuD,OAAtDA,EAAwBxW,EAAc6L,cAAwB2K,EAAsB9b,KAAKsF,EAAetG,GACrGqK,EACF,OAEF,GAAIrK,EAAM+c,iBACR,OAIF,GAAqB,IAAjB/c,EAAMgd,OACR,OAIFhd,EAAM8Q,iBACN,MAAMuK,EAAS3G,EAAY1U,EAAO2U,GAClC,IAAe,IAAX0G,EAAkB,CACpB,MAAM,SACJvO,EAAQ,YACRyJ,GACE6E,GAAkB,CACpBC,WAEFhF,EAAW,CACTC,aACAC,cACAC,cAEFjK,EAAcO,GACVkM,IAAiBpC,EAAe9J,EAAUgM,IAC5CE,EAAahZ,EAAO8M,EAAUyJ,EAElC,CACAsC,EAAUjgB,QAAU,EACpB,MAAMwJ,GAAM,EAAAhH,EAAA,GAAckb,GAAU1d,SACpCwJ,EAAI3C,iBAAiB,YAAaic,GAAiB,CACjDK,SAAS,IAEX3Z,EAAI3C,iBAAiB,UAAWmc,GAAe,IAxCnBtV,MAiD5B,MAAMsW,GAAsB,OAAS,CAAC,EAAGJ,EAAkBC,GAC3D,OAAO,OAAS,CAAC,EAAGH,EAAe,CACjC9hB,IAAKyB,IACJ2gB,EAAoB,EAkEvBK,cArDoB,CAACX,EAAgB,CAAC,KACtC,MAAME,GAAmB,EAAArV,EAAA,GAAqBmV,GACxCG,EAAmB,CACvBS,aAd0B5W,EAcSkW,GAAoB,CAAC,EAdbxc,IAC7C,IAAImd,EACoD,OAAvDA,EAAyB7W,EAAc4W,cAAwBC,EAAuBnc,KAAKsF,EAAetG,GAC3G,MAAM+B,EAAQpD,OAAOqB,EAAMgH,cAAczF,aAAa,eACtDmX,EAAQ3W,EAAM,GAWZqa,aAAcF,GAAuBM,GAAoB,CAAC,IAfhClW,MAiB5B,OAAO,OAAS,CAAC,EAAGgW,EAAeE,EAAkBC,EAAiB,EAgDtEtE,MAAOA,GACPtgB,OACAyhB,QACAhU,QAASrJ,GACTggB,aACAD,eACA3H,UACA+I,cArDoBrb,IACb,CAELsb,eAA2B,IAAZ5E,GAAiBA,IAAW1W,EAAQ,YAASlL,IAoDlE,C,8FE5nBO,SAASymB,EAAYvY,EAAa,CAAC,GACxC,MAAM,iBACJwY,EAAmB,KAAI,0BACvBC,GAA4B,EAAK,QACjCnY,EAAO,KACPxN,EAAI,mBACJ4lB,GACE1Y,EACE2Y,GAAgB,SACtB,aAAgB,KACd,GAAK7lB,EAiBL,OADAsE,SAASsD,iBAAiB,UAAWmR,GAC9B,KACLzU,SAAS2D,oBAAoB,UAAW8Q,EAAc,EAXxD,SAASA,EAAcsI,GAChBA,EAAY6D,kBAES,WAApB7D,EAAYzS,KAAwC,QAApByS,EAAYzS,KAEnC,MAAXpB,GAAmBA,EAAQ6T,EAAa,gBAG9C,CAIC,GACA,CAACrhB,EAAMwN,IACV,MAAMe,GAAc,QAAiB,CAACpG,EAAO8N,KAChC,MAAXzI,GAAmBA,EAAQrF,EAAO8N,EAAO,IAErC6P,GAAmB,QAAiBC,IACnCvY,GAAoC,MAAzBuY,GAGhBF,EAAcG,MAAMD,GAAuB,KACzCxX,EAAY,KAAM,UAAU,GAC5B,IAEJ,aAAgB,KACVvO,GACF8lB,EAAiBJ,GAEZG,EAAc9d,QACpB,CAAC/H,EAAM0lB,EAAkBI,EAAkBD,IAC9C,MAMMI,EAAcJ,EAAc9d,MAI5Bme,EAAe,eAAkB,KACb,MAApBR,GACFI,EAAuC,MAAtBF,EAA6BA,EAAwC,GAAnBF,EACrE,GACC,CAACA,EAAkBE,EAAoBE,IAMpCK,EAAoB1X,GAAiBtG,IACzC,MAAMie,EAAkB3X,EAAckM,QACnB,MAAnByL,GAA2BA,EAAgBje,GAC3C8d,GAAa,EAETI,EAAmB5X,GAAiBtG,IACxC,MAAMme,EAAuB7X,EAAc8X,aACnB,MAAxBD,GAAgCA,EAAqBne,GACrD8d,GAAa,EAETO,EAAmB/X,GAAiBtG,IACxC,MAAMse,EAAuBhY,EAAc8V,aACnB,MAAxBkC,GAAgCA,EAAqBte,GACrD+d,GAAc,EAEhB,aAAgB,KAEd,IAAKP,GAA6B3lB,EAGhC,OAFA0mB,OAAO9e,iBAAiB,QAASse,GACjCQ,OAAO9e,iBAAiB,OAAQqe,GACzB,KACLS,OAAOze,oBAAoB,QAASie,GACpCQ,OAAOze,oBAAoB,OAAQge,EAAY,CAGnC,GACf,CAACN,EAA2B3lB,EAAMkmB,EAAcD,IAcnD,MAAO,CACL7W,aAdmB,CAACqV,EAAgB,CAAC,KACrC,MAAMlV,GAAwB,OAAS,CAAC,GAAG,OAAqBrC,IAAa,OAAqBuX,IAClG,OAAO,OAAS,CAGd/hB,KAAM,gBACL+hB,EAAelV,EAAuB,CACvCmL,QAvCqBjM,EAuCIc,EAvCapH,IACxC,MAAMwe,EAAiBlY,EAAciM,OACnB,MAAlBiM,GAA0BA,EAAexe,GACzC+d,GAAc,GAqCZvL,QAASwL,EAAkB5W,GAC3BgX,aAAcF,EAAiB9W,GAC/BgV,aAAciC,EAAiBjX,KA1CVd,KA2CrB,EAIFmY,YA9DsBze,IACX,MAAXqF,GAAmBA,EAAQrF,EAAO,YAAY,EA+DlD,C,6DCjHO,SAAS0e,EAAiBvkB,EAAawkB,EAAYlkB,GACxD,YAAoB5D,IAAhBsD,IAA6B,OAAgBA,GACxCwkB,GAEF,OAAS,CAAC,EAAGA,EAAY,CAC9BlkB,YAAY,OAAS,CAAC,EAAGkkB,EAAWlkB,WAAYA,IAEpD,C,kBChBO,SAAS0M,EAAqByX,EAAQC,EAAc,IACzD,QAAehoB,IAAX+nB,EACF,MAAO,CAAC,EAEV,MAAM3oB,EAAS,CAAC,EAIhB,OAHAgJ,OAAOC,KAAK0f,GAAQnW,QAAOqW,GAAQA,EAAKC,MAAM,aAAuC,mBAAjBH,EAAOE,KAAyBD,EAAYG,SAASF,KAAO5oB,SAAQ4oB,IACtI7oB,EAAO6oB,GAAQF,EAAOE,EAAK,IAEtB7oB,CACT,C,kCCbO,SAASgpB,EAAgBroB,GAC9B,MAA0B,iBAAZA,CAChB,C,wFCEO,SAASsoB,EAAkBN,GAChC,QAAe/nB,IAAX+nB,EACF,MAAO,CAAC,EAEV,MAAM3oB,EAAS,CAAC,EAIhB,OAHAgJ,OAAOC,KAAK0f,GAAQnW,QAAOqW,KAAUA,EAAKC,MAAM,aAAuC,mBAAjBH,EAAOE,MAAuB5oB,SAAQ4oB,IAC1G7oB,EAAO6oB,GAAQF,EAAOE,EAAK,IAEtB7oB,CACT,CCCO,SAASkpB,EAAepa,GAC7B,MAAM,aACJqa,EAAY,gBACZ9kB,EAAe,kBACfF,EAAiB,uBACjBC,EAAsB,UACtBK,GACEqK,EACJ,IAAKqa,EAAc,CAGjB,MAAMC,GAAgB,EAAAC,EAAA,GAAwB,MAAnBhlB,OAA0B,EAASA,EAAgBI,UAAWA,EAAqC,MAA1BL,OAAiC,EAASA,EAAuBK,UAAgC,MAArBN,OAA4B,EAASA,EAAkBM,WACjO6kB,GAAc,OAAS,CAAC,EAAsB,MAAnBjlB,OAA0B,EAASA,EAAgBS,MAAiC,MAA1BV,OAAiC,EAASA,EAAuBU,MAA4B,MAArBX,OAA4B,EAASA,EAAkBW,OACpNzD,GAAQ,OAAS,CAAC,EAAGgD,EAAiBD,EAAwBD,GAOpE,OANIilB,EAAclgB,OAAS,IACzB7H,EAAMoD,UAAY2kB,GAEhBpgB,OAAOC,KAAKqgB,GAAapgB,OAAS,IACpC7H,EAAMyD,MAAQwkB,GAET,CACLjoB,QACAkoB,iBAAa3oB,EAEjB,CAKA,MAAM4oB,GAAgB,EAAAtY,EAAA,IAAqB,OAAS,CAAC,EAAG9M,EAAwBD,IAC1EslB,EAAsCR,EAAkB9kB,GACxDulB,EAAiCT,EAAkB7kB,GACnDulB,EAAoBR,EAAaK,GAMjCJ,GAAgB,EAAAC,EAAA,GAA0B,MAArBM,OAA4B,EAASA,EAAkBllB,UAA8B,MAAnBJ,OAA0B,EAASA,EAAgBI,UAAWA,EAAqC,MAA1BL,OAAiC,EAASA,EAAuBK,UAAgC,MAArBN,OAA4B,EAASA,EAAkBM,WACnS6kB,GAAc,OAAS,CAAC,EAAwB,MAArBK,OAA4B,EAASA,EAAkB7kB,MAA0B,MAAnBT,OAA0B,EAASA,EAAgBS,MAAiC,MAA1BV,OAAiC,EAASA,EAAuBU,MAA4B,MAArBX,OAA4B,EAASA,EAAkBW,OAClRzD,GAAQ,OAAS,CAAC,EAAGsoB,EAAmBtlB,EAAiBqlB,EAAgCD,GAO/F,OANIL,EAAclgB,OAAS,IACzB7H,EAAMoD,UAAY2kB,GAEhBpgB,OAAOC,KAAKqgB,GAAapgB,OAAS,IACpC7H,EAAMyD,MAAQwkB,GAET,CACLjoB,QACAkoB,YAAaI,EAAkBplB,IAEnC,C,kBChEO,SAASqlB,EAAsBC,EAAgBrlB,EAAYslB,GAChE,MAA8B,mBAAnBD,EACFA,EAAerlB,EAAYslB,GAE7BD,CACT,C,yHCLA,MAAMvpB,EAAY,CAAC,cAAe,oBAAqB,aAAc,0BAa9D,SAAS2D,EAAa6K,GAC3B,IAAIib,EACJ,MAAM,YACF7lB,EAAW,kBACXC,EAAiB,WACjBK,EAAU,uBACVwlB,GAAyB,GACvBlb,EACJmb,GAAO,OAA8Bnb,EAAYxO,GAC7C4pB,EAA0BF,EAAyB,CAAC,GAAI,OAAsB7lB,EAAmBK,IAErGnD,MAAO8oB,EAAW,YAClBZ,IACE,QAAe,OAAS,CAAC,EAAGU,EAAM,CACpC9lB,kBAAmB+lB,KAEf3lB,GAAM,OAAWglB,EAAwC,MAA3BW,OAAkC,EAASA,EAAwB3lB,IAA6D,OAAvDwlB,EAAwBjb,EAAWzK,sBAA2B,EAAS0lB,EAAsBxlB,KAI1M,OAHc,OAAiBL,GAAa,OAAS,CAAC,EAAGimB,EAAa,CACpE5lB,QACEC,EAEN,C","sources":["webpack:///./node_modules/@mui/base/generateUtilityClass/index.js","webpack:///./node_modules/@mui/base/Popper/popperClasses.js","webpack:///./node_modules/@mui/base/generateUtilityClasses/index.js","webpack:///./node_modules/@mui/base/utils/ClassNameConfigurator.js","webpack:///./node_modules/@mui/base/Popper/Popper.js","webpack:///./node_modules/@mui/base/Portal/Portal.js","webpack:///./node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","webpack:///./node_modules/@mui/base/unstable_useModal/ModalManager.js","webpack:///./node_modules/@mui/base/unstable_useModal/useModal.js","webpack:///./node_modules/@mui/base/useAutocomplete/useAutocomplete.js","webpack:///./node_modules/@mui/base/useBadge/useBadge.js","webpack:///./node_modules/@mui/base/useSlider/useSlider.js","webpack:///./node_modules/@mui/base/utils/areArraysEqual.js","webpack:///./node_modules/@mui/base/useSnackbar/useSnackbar.js","webpack:///./node_modules/@mui/base/utils/appendOwnerState.js","webpack:///./node_modules/@mui/base/utils/extractEventHandlers.js","webpack:///./node_modules/@mui/base/utils/isHostComponent.js","webpack:///./node_modules/@mui/base/utils/omitEventHandlers.js","webpack:///./node_modules/@mui/base/utils/mergeSlotProps.js","webpack:///./node_modules/@mui/base/utils/resolveComponentProps.js","webpack:///./node_modules/@mui/base/utils/useSlotProps.js"],"sourcesContent":["import { globalStateClasses } from '@mui/utils/generateUtilityClass';\nconst GLOBAL_CLASS_PREFIX = 'base';\nfunction buildStateClass(state) {\n return `${GLOBAL_CLASS_PREFIX}--${state}`;\n}\nfunction buildSlotClass(componentName, slot) {\n return `${GLOBAL_CLASS_PREFIX}-${componentName}-${slot}`;\n}\nexport function generateUtilityClass(componentName, slot) {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? buildStateClass(globalStateClass) : buildSlotClass(componentName, slot);\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Popper';\nexport function getPopperUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const popperClasses = generateUtilityClasses(COMPONENT_NAME, ['root']);","import { generateUtilityClass } from '../generateUtilityClass';\nexport function generateUtilityClasses(componentName, slots) {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot);\n });\n return result;\n}","'use client';\n\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultContextValue = {\n disableDefaultClasses: false\n};\nconst ClassNameConfiguratorContext = /*#__PURE__*/React.createContext(defaultContextValue);\nif (process.env.NODE_ENV !== 'production') {\n ClassNameConfiguratorContext.displayName = 'ClassNameConfiguratorContext';\n}\n/**\n * @ignore - internal hook.\n *\n * Wraps the `generateUtilityClass` function and controls how the classes are generated.\n * Currently it only affects whether the classes are applied or not.\n *\n * @returns Function to be called with the `generateUtilityClass` function specific to a component to generate the classes.\n */\nexport function useClassNamesOverride(generateUtilityClass) {\n const {\n disableDefaultClasses\n } = React.useContext(ClassNameConfiguratorContext);\n return slot => {\n if (disableDefaultClasses) {\n return '';\n }\n return generateUtilityClass(slot);\n };\n}\n\n/**\n * Allows to configure the components within to not apply any built-in classes.\n */\nexport function ClassNameConfigurator(props) {\n const {\n disableDefaultClasses,\n children\n } = props;\n const contextValue = React.useMemo(() => ({\n disableDefaultClasses: disableDefaultClasses != null ? disableDefaultClasses : false\n }), [disableDefaultClasses]);\n return /*#__PURE__*/_jsx(ClassNameConfiguratorContext.Provider, {\n value: contextValue,\n children: children\n });\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchorEl\", \"children\", \"direction\", \"disablePortal\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"popperRef\", \"slotProps\", \"slots\", \"TransitionProps\", \"ownerState\"],\n _excluded2 = [\"anchorEl\", \"children\", \"container\", \"direction\", \"disablePortal\", \"keepMounted\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"popperRef\", \"style\", \"transition\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport { chainPropTypes, HTMLElementType, refType, unstable_ownerDocument as ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { createPopper } from '@popperjs/core';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { Portal } from '../Portal';\nimport { getPopperUtilityClass } from './popperClasses';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction flipPlacement(placement, direction) {\n if (direction === 'ltr') {\n return placement;\n }\n switch (placement) {\n case 'bottom-end':\n return 'bottom-start';\n case 'bottom-start':\n return 'bottom-end';\n case 'top-end':\n return 'top-start';\n case 'top-start':\n return 'top-end';\n default:\n return placement;\n }\n}\nfunction resolveAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\nfunction isHTMLElement(element) {\n return element.nodeType !== undefined;\n}\nfunction isVirtualElement(element) {\n return !isHTMLElement(element);\n}\nconst useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, useClassNamesOverride(getPopperUtilityClass));\n};\nconst defaultPopperOptions = {};\nconst PopperTooltip = /*#__PURE__*/React.forwardRef(function PopperTooltip(props, forwardedRef) {\n var _slots$root;\n const {\n anchorEl,\n children,\n direction,\n disablePortal,\n modifiers,\n open,\n placement: initialPlacement,\n popperOptions,\n popperRef: popperRefProp,\n slotProps = {},\n slots = {},\n TransitionProps\n // @ts-ignore internal logic\n // prevent from spreading to DOM, it can come from the parent component e.g. Select.\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const tooltipRef = React.useRef(null);\n const ownRef = useForkRef(tooltipRef, forwardedRef);\n const popperRef = React.useRef(null);\n const handlePopperRef = useForkRef(popperRef, popperRefProp);\n const handlePopperRefRef = React.useRef(handlePopperRef);\n useEnhancedEffect(() => {\n handlePopperRefRef.current = handlePopperRef;\n }, [handlePopperRef]);\n React.useImperativeHandle(popperRefProp, () => popperRef.current, []);\n const rtlPlacement = flipPlacement(initialPlacement, direction);\n /**\n * placement initialized from prop but can change during lifetime if modifiers.flip.\n * modifiers.flip is essentially a flip for controlled/uncontrolled behavior\n */\n const [placement, setPlacement] = React.useState(rtlPlacement);\n const [resolvedAnchorElement, setResolvedAnchorElement] = React.useState(resolveAnchorEl(anchorEl));\n React.useEffect(() => {\n if (popperRef.current) {\n popperRef.current.forceUpdate();\n }\n });\n React.useEffect(() => {\n if (anchorEl) {\n setResolvedAnchorElement(resolveAnchorEl(anchorEl));\n }\n }, [anchorEl]);\n useEnhancedEffect(() => {\n if (!resolvedAnchorElement || !open) {\n return undefined;\n }\n const handlePopperUpdate = data => {\n setPlacement(data.placement);\n };\n if (process.env.NODE_ENV !== 'production') {\n if (resolvedAnchorElement && isHTMLElement(resolvedAnchorElement) && resolvedAnchorElement.nodeType === 1) {\n const box = resolvedAnchorElement.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n }\n let popperModifiers = [{\n name: 'preventOverflow',\n options: {\n altBoundary: disablePortal\n }\n }, {\n name: 'flip',\n options: {\n altBoundary: disablePortal\n }\n }, {\n name: 'onUpdate',\n enabled: true,\n phase: 'afterWrite',\n fn: ({\n state\n }) => {\n handlePopperUpdate(state);\n }\n }];\n if (modifiers != null) {\n popperModifiers = popperModifiers.concat(modifiers);\n }\n if (popperOptions && popperOptions.modifiers != null) {\n popperModifiers = popperModifiers.concat(popperOptions.modifiers);\n }\n const popper = createPopper(resolvedAnchorElement, tooltipRef.current, _extends({\n placement: rtlPlacement\n }, popperOptions, {\n modifiers: popperModifiers\n }));\n handlePopperRefRef.current(popper);\n return () => {\n popper.destroy();\n handlePopperRefRef.current(null);\n };\n }, [resolvedAnchorElement, disablePortal, modifiers, open, popperOptions, rtlPlacement]);\n const childProps = {\n placement: placement\n };\n if (TransitionProps !== null) {\n childProps.TransitionProps = TransitionProps;\n }\n const classes = useUtilityClasses();\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n role: 'tooltip',\n ref: ownRef\n },\n ownerState: props,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: typeof children === 'function' ? children(childProps) : children\n }));\n});\n\n/**\n * Poppers rely on the 3rd party library [Popper.js](https://popper.js.org/docs/v2/) for positioning.\n *\n * Demos:\n *\n * - [Popper](https://mui.com/base-ui/react-popper/)\n *\n * API:\n *\n * - [Popper API](https://mui.com/base-ui/react-popper/components-api/#popper)\n */\nconst Popper = /*#__PURE__*/React.forwardRef(function Popper(props, forwardedRef) {\n const {\n anchorEl,\n children,\n container: containerProp,\n direction = 'ltr',\n disablePortal = false,\n keepMounted = false,\n modifiers,\n open,\n placement = 'bottom',\n popperOptions = defaultPopperOptions,\n popperRef,\n style,\n transition = false,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const [exited, setExited] = React.useState(true);\n const handleEnter = () => {\n setExited(false);\n };\n const handleExited = () => {\n setExited(true);\n };\n if (!keepMounted && !open && (!transition || exited)) {\n return null;\n }\n\n // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n let container;\n if (containerProp) {\n container = containerProp;\n } else if (anchorEl) {\n const resolvedAnchorEl = resolveAnchorEl(anchorEl);\n container = resolvedAnchorEl && isHTMLElement(resolvedAnchorEl) ? ownerDocument(resolvedAnchorEl).body : ownerDocument(null).body;\n }\n const display = !open && keepMounted && (!transition || exited) ? 'none' : undefined;\n const transitionProps = transition ? {\n in: open,\n onEnter: handleEnter,\n onExited: handleExited\n } : undefined;\n return /*#__PURE__*/_jsx(Portal, {\n disablePortal: disablePortal,\n container: container,\n children: /*#__PURE__*/_jsx(PopperTooltip, _extends({\n anchorEl: anchorEl,\n direction: direction,\n disablePortal: disablePortal,\n modifiers: modifiers,\n ref: forwardedRef,\n open: transition ? !exited : open,\n placement: placement,\n popperOptions: popperOptions,\n popperRef: popperRef,\n slotProps: slotProps,\n slots: slots\n }, other, {\n style: _extends({\n // Prevents scroll issue, waiting for Popper.js to add this style once initiated.\n position: 'fixed',\n // Fix Popper.js display issue\n top: 0,\n left: 0,\n display\n }, style),\n TransitionProps: transitionProps,\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Popper.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),\n * or a function that returns either.\n * It's used to set the position of the popper.\n * The return value will passed as the reference object of the Popper instance.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]), props => {\n if (props.open) {\n const resolvedAnchorEl = resolveAnchorEl(props.anchorEl);\n if (resolvedAnchorEl && isHTMLElement(resolvedAnchorEl) && resolvedAnchorEl.nodeType === 1) {\n const box = resolvedAnchorEl.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedAnchorEl || typeof resolvedAnchorEl.getBoundingClientRect !== 'function' || isVirtualElement(resolvedAnchorEl) && resolvedAnchorEl.contextElement != null && resolvedAnchorEl.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'It should be an HTML element instance or a virtualElement ', '(https://popper.js.org/docs/v2/virtual-elements/).'].join('\\n'));\n }\n }\n return null;\n }),\n /**\n * Popper render function or node.\n */\n children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * Direction of the text.\n * @default 'ltr'\n */\n direction: PropTypes.oneOf(['ltr', 'rtl']),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Popper.\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Popper.js is based on a \"plugin-like\" architecture,\n * most of its features are fully encapsulated \"modifiers\".\n *\n * A modifier is a function that is called each time Popper.js needs to\n * compute the position of the popper.\n * For this reason, modifiers should be very performant to avoid bottlenecks.\n * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v2/modifiers/).\n */\n modifiers: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.object,\n effect: PropTypes.func,\n enabled: PropTypes.bool,\n fn: PropTypes.func,\n name: PropTypes.any,\n options: PropTypes.object,\n phase: PropTypes.oneOf(['afterMain', 'afterRead', 'afterWrite', 'beforeMain', 'beforeRead', 'beforeWrite', 'main', 'read', 'write']),\n requires: PropTypes.arrayOf(PropTypes.string),\n requiresIfExists: PropTypes.arrayOf(PropTypes.string)\n })),\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * Popper placement.\n * @default 'bottom'\n */\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n /**\n * Options provided to the [`Popper.js`](https://popper.js.org/docs/v2/constructors/#options) instance.\n * @default {}\n */\n popperOptions: PropTypes.shape({\n modifiers: PropTypes.array,\n onFirstUpdate: PropTypes.func,\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n strategy: PropTypes.oneOf(['absolute', 'fixed'])\n }),\n /**\n * A ref that points to the used popper instance.\n */\n popperRef: refType,\n /**\n * The props used for each slot inside the Popper.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Popper.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * Help supporting a react-transition-group/Transition component.\n * @default false\n */\n transition: PropTypes.bool\n} : void 0;\nexport { Popper };","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * Demos:\n *\n * - [Portal](https://mui.com/base-ui/react-portal/)\n *\n * API:\n *\n * - [Portal API](https://mui.com/base-ui/react-portal/components-api/#portal)\n */\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n // @ts-expect-error TODO upstream fix\n const handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, forwardedRef);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(forwardedRef, mountNode);\n return () => {\n setRef(forwardedRef, null);\n };\n }\n return undefined;\n }, [forwardedRef, mountNode, disablePortal]);\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n const newProps = {\n ref: handleRef\n };\n return /*#__PURE__*/React.cloneElement(children, newProps);\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: children\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\nexport { Portal };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"maxRows\", \"minRows\", \"style\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_debounce as debounce, unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerWindow as ownerWindow } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getStyleValue(value) {\n return parseInt(value, 10) || 0;\n}\nconst styles = {\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.outerHeightStyle === 0 && !obj.overflowing;\n}\n\n/**\n *\n * Demos:\n *\n * - [Textarea Autosize](https://mui.com/base-ui/react-textarea-autosize/)\n * - [Textarea Autosize](https://mui.com/material-ui/react-textarea-autosize/)\n *\n * API:\n *\n * - [TextareaAutosize API](https://mui.com/base-ui/react-textarea-autosize/components-api/#textarea-autosize)\n */\nconst TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, forwardedRef) {\n const {\n onChange,\n maxRows,\n minRows = 1,\n style,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(forwardedRef, inputRef);\n const shadowRef = React.useRef(null);\n const calculateTextareaStyles = React.useCallback(() => {\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n const computedStyle = containerWindow.getComputedStyle(input);\n\n // If input's width is shrunk and it's not visible, don't sync height.\n if (computedStyle.width === '0px') {\n return {\n outerHeightStyle: 0,\n overflowing: false\n };\n }\n const inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n const boxSizing = computedStyle.boxSizing;\n const padding = getStyleValue(computedStyle.paddingBottom) + getStyleValue(computedStyle.paddingTop);\n const border = getStyleValue(computedStyle.borderBottomWidth) + getStyleValue(computedStyle.borderTopWidth);\n\n // The height of the inner content\n const innerHeight = inputShallow.scrollHeight;\n\n // Measure height of a textarea with a single row\n inputShallow.value = 'x';\n const singleRowHeight = inputShallow.scrollHeight;\n\n // The height of the outer content\n let outerHeight = innerHeight;\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n outerHeight = Math.max(outerHeight, singleRowHeight);\n\n // Take the box sizing into account for applying this value as a style.\n const outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n const overflowing = Math.abs(outerHeight - innerHeight) <= 1;\n return {\n outerHeightStyle,\n overflowing\n };\n }, [maxRows, minRows, props.placeholder]);\n const syncHeight = React.useCallback(() => {\n const textareaStyles = calculateTextareaStyles();\n if (isEmpty(textareaStyles)) {\n return;\n }\n const input = inputRef.current;\n input.style.height = `${textareaStyles.outerHeightStyle}px`;\n input.style.overflow = textareaStyles.overflowing ? 'hidden' : '';\n }, [calculateTextareaStyles]);\n useEnhancedEffect(() => {\n const handleResize = () => {\n syncHeight();\n };\n // Workaround a \"ResizeObserver loop completed with undelivered notifications\" error\n // in test.\n // Note that we might need to use this logic in production per https://github.com/WICG/resize-observer/issues/38\n // Also see https://github.com/mui/mui-x/issues/8733\n let rAF;\n const rAFHandleResize = () => {\n cancelAnimationFrame(rAF);\n rAF = requestAnimationFrame(() => {\n handleResize();\n });\n };\n const debounceHandleResize = debounce(handleResize);\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n containerWindow.addEventListener('resize', debounceHandleResize);\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(process.env.NODE_ENV === 'test' ? rAFHandleResize : handleResize);\n resizeObserver.observe(input);\n }\n return () => {\n debounceHandleResize.clear();\n cancelAnimationFrame(rAF);\n containerWindow.removeEventListener('resize', debounceHandleResize);\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [calculateTextareaStyles, syncHeight]);\n useEnhancedEffect(() => {\n syncHeight();\n });\n const handleChange = event => {\n if (!isControlled) {\n syncHeight();\n }\n if (onChange) {\n onChange(event);\n }\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef\n // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: style\n }, other)), /*#__PURE__*/_jsx(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style, {\n paddingTop: 0,\n paddingBottom: 0\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display.\n * @default 1\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport { TextareaAutosize };","import { unstable_ownerWindow as ownerWindow, unstable_ownerDocument as ownerDocument, unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\n// Is a vertical scrollbar displayed?\nfunction isOverflowing(container) {\n const doc = ownerDocument(container);\n if (doc.body === container) {\n return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;\n }\n return container.scrollHeight > container.clientHeight;\n}\nexport function ariaHidden(element, show) {\n if (show) {\n element.setAttribute('aria-hidden', 'true');\n } else {\n element.removeAttribute('aria-hidden');\n }\n}\nfunction getPaddingRight(element) {\n return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;\n}\nfunction isAriaHiddenForbiddenOnElement(element) {\n // The forbidden HTML tags are the ones from ARIA specification that\n // can be children of body and can't have aria-hidden attribute.\n // cf. https://www.w3.org/TR/html-aria/#docconformance\n const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];\n const isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1;\n const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';\n return isForbiddenTagName || isInputHidden;\n}\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {\n const blacklist = [mountElement, currentElement, ...elementsToExclude];\n [].forEach.call(container.children, element => {\n const isNotExcludedElement = blacklist.indexOf(element) === -1;\n const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);\n if (isNotExcludedElement && isNotForbiddenElement) {\n ariaHidden(element, show);\n }\n });\n}\nfunction findIndexOf(items, callback) {\n let idx = -1;\n items.some((item, index) => {\n if (callback(item)) {\n idx = index;\n return true;\n }\n return false;\n });\n return idx;\n}\nfunction handleContainer(containerInfo, props) {\n const restoreStyle = [];\n const container = containerInfo.container;\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n const scrollbarSize = getScrollbarSize(ownerDocument(container));\n restoreStyle.push({\n value: container.style.paddingRight,\n property: 'padding-right',\n el: container\n });\n // Use computed style, here to get the real padding to add our scrollbar width.\n container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`;\n\n // .mui-fixed is a global helper.\n const fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedElements, element => {\n restoreStyle.push({\n value: element.style.paddingRight,\n property: 'padding-right',\n el: element\n });\n element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;\n });\n }\n let scrollContainer;\n if (container.parentNode instanceof DocumentFragment) {\n scrollContainer = ownerDocument(container).body;\n } else {\n // Support html overflow-y: auto for scroll stability between pages\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n const parent = container.parentElement;\n const containerWindow = ownerWindow(container);\n scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;\n }\n\n // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n property: 'overflow',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowX,\n property: 'overflow-x',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowY,\n property: 'overflow-y',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n const restore = () => {\n restoreStyle.forEach(({\n value,\n el,\n property\n }) => {\n if (value) {\n el.style.setProperty(property, value);\n } else {\n el.style.removeProperty(property);\n }\n });\n };\n return restore;\n}\nfunction getHiddenSiblings(container) {\n const hiddenSiblings = [];\n [].forEach.call(container.children, element => {\n if (element.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(element);\n }\n });\n return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\nexport class ModalManager {\n constructor() {\n this.containers = void 0;\n this.modals = void 0;\n this.modals = [];\n this.containers = [];\n }\n add(modal, container) {\n let modalIndex = this.modals.indexOf(modal);\n if (modalIndex !== -1) {\n return modalIndex;\n }\n modalIndex = this.modals.length;\n this.modals.push(modal);\n\n // If the modal we are adding is already in the DOM.\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n const hiddenSiblings = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);\n const containerIndex = findIndexOf(this.containers, item => item.container === container);\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n this.containers.push({\n modals: [modal],\n container,\n restore: null,\n hiddenSiblings\n });\n return modalIndex;\n }\n mount(modal, props) {\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n remove(modal, ariaHiddenState = true) {\n const modalIndex = this.modals.indexOf(modal);\n if (modalIndex === -1) {\n return modalIndex;\n }\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1);\n\n // If that was the last modal in a container, clean up the container.\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, ariaHiddenState);\n }\n ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n const nextTop = containerInfo.modals[containerInfo.modals.length - 1];\n // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n return modalIndex;\n }\n isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback, unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nimport { extractEventHandlers } from '../utils';\nimport { ModalManager, ariaHidden } from './ModalManager';\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\nfunction getHasTransition(children) {\n return children ? children.props.hasOwnProperty('in') : false;\n}\n\n// A modal manager used to track and manage the state of open Modals.\n// Modals don't open on the server so this won't conflict with concurrent requests.\nconst defaultManager = new ModalManager();\n/**\n *\n * Demos:\n *\n * - [Modal](https://mui.com/base-ui/react-modal/#hook)\n *\n * API:\n *\n * - [useModal API](https://mui.com/base-ui/react-modal/hooks-api/#use-modal)\n */\nexport function useModal(parameters) {\n const {\n container,\n disableEscapeKeyDown = false,\n disableScrollLock = false,\n // @ts-ignore internal logic - Base UI supports the manager as a prop too\n manager = defaultManager,\n closeAfterTransition = false,\n onTransitionEnter,\n onTransitionExited,\n children,\n onClose,\n open,\n rootRef\n } = parameters;\n\n // @ts-ignore internal logic\n const modal = React.useRef({});\n const mountNodeRef = React.useRef(null);\n const modalRef = React.useRef(null);\n const handleRef = useForkRef(modalRef, rootRef);\n const [exited, setExited] = React.useState(!open);\n const hasTransition = getHasTransition(children);\n let ariaHiddenProp = true;\n if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) {\n ariaHiddenProp = false;\n }\n const getDoc = () => ownerDocument(mountNodeRef.current);\n const getModal = () => {\n modal.current.modalRef = modalRef.current;\n modal.current.mount = mountNodeRef.current;\n return modal.current;\n };\n const handleMounted = () => {\n manager.mount(getModal(), {\n disableScrollLock\n });\n\n // Fix a bug on Chrome where the scroll isn't initially 0.\n if (modalRef.current) {\n modalRef.current.scrollTop = 0;\n }\n };\n const handleOpen = useEventCallback(() => {\n const resolvedContainer = getContainer(container) || getDoc().body;\n manager.add(getModal(), resolvedContainer);\n\n // The element was already mounted.\n if (modalRef.current) {\n handleMounted();\n }\n });\n const isTopModal = React.useCallback(() => manager.isTopModal(getModal()), [manager]);\n const handlePortalRef = useEventCallback(node => {\n mountNodeRef.current = node;\n if (!node) {\n return;\n }\n if (open && isTopModal()) {\n handleMounted();\n } else if (modalRef.current) {\n ariaHidden(modalRef.current, ariaHiddenProp);\n }\n });\n const handleClose = React.useCallback(() => {\n manager.remove(getModal(), ariaHiddenProp);\n }, [ariaHiddenProp, manager]);\n React.useEffect(() => {\n return () => {\n handleClose();\n };\n }, [handleClose]);\n React.useEffect(() => {\n if (open) {\n handleOpen();\n } else if (!hasTransition || !closeAfterTransition) {\n handleClose();\n }\n }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n if (event.key !== 'Escape' || event.which === 229 ||\n // Wait until IME is settled.\n !isTopModal()) {\n return;\n }\n if (!disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n if (onClose) {\n onClose(event, 'escapeKeyDown');\n }\n }\n };\n const createHandleBackdropClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.target !== event.currentTarget) {\n return;\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const getRootProps = (otherHandlers = {}) => {\n const propsEventHandlers = extractEventHandlers(parameters);\n\n // The custom event handlers shouldn't be spread on the root element\n delete propsEventHandlers.onTransitionEnter;\n delete propsEventHandlers.onTransitionExited;\n const externalEventHandlers = _extends({}, propsEventHandlers, otherHandlers);\n return _extends({\n role: 'presentation'\n }, externalEventHandlers, {\n onKeyDown: createHandleKeyDown(externalEventHandlers),\n ref: handleRef\n });\n };\n const getBackdropProps = (otherHandlers = {}) => {\n const externalEventHandlers = otherHandlers;\n return _extends({\n 'aria-hidden': true\n }, externalEventHandlers, {\n onClick: createHandleBackdropClick(externalEventHandlers),\n open\n });\n };\n const getTransitionProps = () => {\n const handleEnter = () => {\n setExited(false);\n if (onTransitionEnter) {\n onTransitionEnter();\n }\n };\n const handleExited = () => {\n setExited(true);\n if (onTransitionExited) {\n onTransitionExited();\n }\n if (closeAfterTransition) {\n handleClose();\n }\n };\n return {\n onEnter: createChainedFunction(handleEnter, children == null ? void 0 : children.props.onEnter),\n onExited: createChainedFunction(handleExited, children == null ? void 0 : children.props.onExited)\n };\n };\n return {\n getRootProps,\n getBackdropProps,\n getTransitionProps,\n rootRef: handleRef,\n portalRef: handlePortalRef,\n isTopModal,\n exited,\n hasTransition\n };\n}","'use client';\n\n/* eslint-disable no-constant-condition */\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_setRef as setRef, unstable_useEventCallback as useEventCallback, unstable_useControlled as useControlled, unstable_useId as useId, usePreviousProps } from '@mui/utils';\n\n// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\n// Give up on IE11 support for this feature\nfunction stripDiacritics(string) {\n return typeof string.normalize !== 'undefined' ? string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : string;\n}\nexport function createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n const filteredOptions = !input ? options : options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.indexOf(input) === 0 : candidate.indexOf(input) > -1;\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n}\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n return -1;\n}\nconst defaultFilterOptions = createFilterOptions();\n\n// Number of options to jump in list box when `Page Up` and `Page Down` keys are used.\nconst pageSize = 5;\nconst defaultIsActiveElementInListbox = listboxRef => {\n var _listboxRef$current$p;\n return listboxRef.current !== null && ((_listboxRef$current$p = listboxRef.current.parentElement) == null ? void 0 : _listboxRef$current$p.contains(document.activeElement));\n};\nexport function useAutocomplete(props) {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_isActiveElementInListbox = defaultIsActiveElementInListbox,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_classNamePrefix = 'Mui',\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled: disabledProp,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionKey,\n getOptionLabel: getOptionLabelProp = option => {\n var _option$label;\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n isOptionEqualToValue = (option, value) => option === value,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n readOnly = false,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = useId(idProp);\n let getOptionLabel = getOptionLabelProp;\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n if (typeof optionLabel !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n const erroneousReturn = optionLabel === undefined ? 'undefined' : `${typeof optionLabel} (${optionLabel})`;\n console.error(`MUI: The \\`getOptionLabel\\` method of ${componentName} returned ${erroneousReturn} instead of a string for ${JSON.stringify(option)}.`);\n }\n return String(optionLabel);\n }\n return optionLabel;\n };\n const ignoreFocus = React.useRef(false);\n const firstFocus = React.useRef(true);\n const inputRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [focusedTag, setFocusedTag] = React.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = React.useRef(defaultHighlighted);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = useControlled({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = React.useState(false);\n const resetInputValue = React.useCallback((event, newValue) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n let newInputValue;\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n if (inputValue === newInputValue) {\n return;\n }\n setInputValueState(newInputValue);\n if (onInputChange) {\n onInputChange(event, newInputValue, 'reset');\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = React.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open && !readOnly;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n return true;\n }),\n // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const previousProps = usePreviousProps({\n filteredOptions,\n value,\n inputValue\n });\n React.useEffect(() => {\n const valueChange = value !== previousProps.value;\n if (focused && !valueChange) {\n return;\n }\n\n // Only reset the input's value when freeSolo if the component's value changes.\n if (freeSolo && !valueChange) {\n return;\n }\n resetInputValue(null, value);\n }, [value, resetInputValue, focused, previousProps.value, freeSolo]);\n const listboxAvailable = open && filteredOptions.length > 0 && !readOnly;\n if (process.env.NODE_ENV !== 'production') {\n if (value !== null && !freeSolo && options.length > 0) {\n const missingValue = (multiple ? value : [value]).filter(value2 => !options.some(option => isOptionEqualToValue(option, value2)));\n if (missingValue.length > 0) {\n console.warn([`MUI: The value provided to ${componentName} is invalid.`, `None of the options match with \\`${missingValue.length > 1 ? JSON.stringify(missingValue) : JSON.stringify(missingValue[0])}\\`.`, 'You can use the `isOptionEqualToValue` prop to customize the equality test.'].join('\\n'));\n }\n }\n }\n const focusTag = useEventCallback(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n });\n\n // Ensure the focusedTag is never inconsistent\n React.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index < 0 || index >= filteredOptions.length) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n if (option && option.hasAttribute('tabindex') && !nextFocusDisabled) {\n // The next option is available\n return nextFocus;\n }\n\n // The next option is disabled, move to the next element.\n // with looped index\n if (direction === 'next') {\n nextFocus = (nextFocus + 1) % filteredOptions.length;\n } else {\n nextFocus = (nextFocus - 1 + filteredOptions.length) % filteredOptions.length;\n }\n\n // We end up with initial index, that means we don't have available options.\n // All of them are disabled\n if (nextFocus === index) {\n return -1;\n }\n }\n }\n const setHighlightedIndex = useEventCallback(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index;\n\n // does the index exist?\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n if (!listboxRef.current) {\n return;\n }\n const prev = listboxRef.current.querySelector(`[role=\"option\"].${unstable_classNamePrefix}-focused`);\n if (prev) {\n prev.classList.remove(`${unstable_classNamePrefix}-focused`);\n prev.classList.remove(`${unstable_classNamePrefix}-focusVisible`);\n }\n let listboxNode = listboxRef.current;\n if (listboxRef.current.getAttribute('role') !== 'listbox') {\n listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]');\n }\n\n // \"No results\"\n if (!listboxNode) {\n return;\n }\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n if (!option) {\n return;\n }\n option.classList.add(`${unstable_classNamePrefix}-focused`);\n if (reason === 'keyboard') {\n option.classList.add(`${unstable_classNamePrefix}-focusVisible`);\n }\n\n // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/WAI/content-assets/wai-aria-practices/patterns/combobox/examples/js/select-only.js\n // In case of mouse clicks and touch (in mobile devices) we avoid scrolling the element and keep both behaviors same.\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse' && reason !== 'touch') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = useEventCallback(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n if (diff === 'start') {\n return 0;\n }\n if (diff === 'end') {\n return maxIndex;\n }\n const newIndex = highlightedIndexRef.current + diff;\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n return maxIndex;\n }\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n return 0;\n }\n return newIndex;\n };\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n });\n\n // Sync the content of the input with the highlighted option.\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option;\n\n // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const getPreviousHighlightedOptionIndex = () => {\n const isSameValue = (value1, value2) => {\n const label1 = value1 ? getOptionLabel(value1) : '';\n const label2 = value2 ? getOptionLabel(value2) : '';\n return label1 === label2;\n };\n if (highlightedIndexRef.current !== -1 && previousProps.filteredOptions && previousProps.filteredOptions.length !== filteredOptions.length && previousProps.inputValue === inputValue && (multiple ? value.length === previousProps.value.length && previousProps.value.every((val, i) => getOptionLabel(value[i]) === getOptionLabel(val)) : isSameValue(previousProps.value, value))) {\n const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];\n if (previousHighlightedOption) {\n return findIndex(filteredOptions, option => {\n return getOptionLabel(option) === getOptionLabel(previousHighlightedOption);\n });\n }\n }\n return -1;\n };\n const syncHighlightedIndex = React.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n // Check if the previously highlighted option still exists in the updated filtered options list and if the value and inputValue haven't changed\n // If it exists and the value and the inputValue haven't changed, just update its index, otherwise continue execution\n const previousHighlightedOptionIndex = getPreviousHighlightedOptionIndex();\n if (previousHighlightedOptionIndex !== -1) {\n highlightedIndexRef.current = previousHighlightedOptionIndex;\n return;\n }\n const valueItem = multiple ? value[0] : value;\n\n // The popup is empty, reset\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n if (!listboxRef.current) {\n return;\n }\n\n // Synchronize the value with the highlighted index\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current];\n\n // Keep the current highlighted index if possible\n if (multiple && currentOption && findIndex(value, val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n const itemIndex = findIndex(filteredOptions, optionItem => isOptionEqualToValue(optionItem, valueItem));\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n return;\n }\n\n // Prevent the highlighted index to leak outside the boundaries.\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n }\n\n // Restore the focus to the previous index.\n setHighlightedIndex({\n index: highlightedIndexRef.current\n });\n // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length,\n // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = useEventCallback(node => {\n setRef(listboxRef, node);\n if (!node) {\n return;\n }\n syncHighlightedIndex();\n });\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputRef.current || inputRef.current.nodeName !== 'INPUT') {\n if (inputRef.current && inputRef.current.nodeName === 'TEXTAREA') {\n console.warn([`A textarea element was provided to ${componentName} where input was expected.`, `This is not a supported scenario but it may work under certain conditions.`, `A textarea keyboard navigation may conflict with Autocomplete controls (for example enter and arrow keys).`, `Make sure to test keyboard navigation and add custom event handlers if necessary.`].join('\\n'));\n } else {\n console.error([`MUI: Unable to find the input element. It was resolved to ${inputRef.current} while an HTMLInputElement was expected.`, `Instead, ${componentName} expects an input element.`, '', componentName === 'useAutocomplete' ? 'Make sure you have bound getInputProps correctly and that the normal ref/effect resolutions order is guaranteed.' : 'Make sure you have customized the input component correctly.'].join('\\n'));\n }\n }\n }, [componentName]);\n }\n React.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n const handleOpen = event => {\n if (open) {\n return;\n }\n setOpenState(true);\n setInputPristine(true);\n if (onOpen) {\n onOpen(event);\n }\n };\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n setOpenState(false);\n if (onClose) {\n onClose(event, reason);\n }\n };\n const handleValue = (event, newValue, reason, details) => {\n if (multiple) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n setValueState(newValue);\n };\n const isTouch = React.useRef(false);\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n if (process.env.NODE_ENV !== 'production') {\n const matches = newValue.filter(val => isOptionEqualToValue(option, val));\n if (matches.length > 1) {\n console.error([`MUI: The \\`isOptionEqualToValue\\` method of ${componentName} does not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${matches.length} matches.`].join('\\n'));\n }\n }\n const itemIndex = findIndex(newValue, valueItem => isOptionEqualToValue(option, valueItem));\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n resetInputValue(event, newValue);\n handleValue(event, newValue, reason, {\n option\n });\n if (!disableCloseOnSelect && (!event || !event.ctrlKey && !event.metaKey)) {\n handleClose(event, reason);\n }\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n if (inputValue === '') {\n handleClose(event, 'toggleInput');\n }\n let nextTag = focusedTag;\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n if (nextTag < 0) {\n nextTag = 0;\n }\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n handleValue(event, multiple ? [] : null, 'clear');\n };\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n if (event.defaultMuiPrevented) {\n return;\n }\n if (focusedTag !== -1 && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) === -1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n\n // Wait until IME is settled.\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n\n // Avoid early form validation, let the end-users continue filling the form.\n event.preventDefault();\n if (disabled) {\n return;\n }\n selectNewValue(event, option, 'selectOption');\n\n // Move the selection to the end.\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n break;\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClear(event);\n }\n break;\n case 'Backspace':\n // Remove the value on the left of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n case 'Delete':\n // Remove the value on the right of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0 && focusedTag !== -1) {\n const index = focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n default:\n }\n }\n };\n const handleFocus = event => {\n setFocused(true);\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (unstable_isActiveElementInListbox(listboxRef)) {\n inputRef.current.focus();\n return;\n }\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value);\n }\n handleClose(event, 'blur');\n };\n const handleInputChange = event => {\n const newValue = event.target.value;\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n const handleOptionMouseMove = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n if (highlightedIndexRef.current !== index) {\n setHighlightedIndex({\n event,\n index,\n reason: 'mouse'\n });\n }\n };\n const handleOptionTouchStart = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'touch'\n });\n isTouch.current = true;\n };\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n };\n\n // Prevent input blur when interacting with the combobox\n const handleMouseDown = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n };\n\n // Focus the input when interacting with the combobox\n const handleClick = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n inputRef.current.focus();\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n firstFocus.current = false;\n };\n const handleInputMouseDown = event => {\n if (!disabledProp && (inputValue === '' || !open)) {\n handlePopupIndicator(event);\n }\n };\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (indexBy.get(group) && !warn) {\n console.warn(`MUI: The options provided combined with the \\`groupBy\\` method of ${componentName} returns duplicated headers.`, 'You can solve the issue by sorting the options with the output of `groupBy`.');\n warn = true;\n }\n indexBy.set(group, true);\n }\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n return acc;\n }, []);\n }\n if (disabledProp && focused) {\n handleBlur();\n }\n return {\n getRootProps: (other = {}) => _extends({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null\n }, other, {\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperatively so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n 'aria-expanded': listboxAvailable,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false',\n role: 'combobox',\n disabled: disabledProp\n }),\n getClearProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handlePopupIndicator\n }),\n getTagProps: ({\n index\n }) => _extends({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1\n }, !readOnly && {\n onDelete: handleTagDelete(index)\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n var _getOptionKey;\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: (_getOptionKey = getOptionKey == null ? void 0 : getOptionKey(option)) != null ? _getOptionKey : getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseMove: handleOptionMouseMove,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n expanded: popupOpen && anchorEl,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}","'use client';\n\nimport { usePreviousProps } from '@mui/utils';\n/**\n *\n * Demos:\n *\n * - [Badge](https://mui.com/base-ui/react-badge/#hook)\n *\n * API:\n *\n * - [useBadge API](https://mui.com/base-ui/react-badge/hooks-api/#use-badge)\n */\nexport function useBadge(parameters) {\n const {\n badgeContent: badgeContentProp,\n invisible: invisibleProp = false,\n max: maxProp = 99,\n showZero = false\n } = parameters;\n const prevProps = usePreviousProps({\n badgeContent: badgeContentProp,\n max: maxProp\n });\n let invisible = invisibleProp;\n if (invisibleProp === false && badgeContentProp === 0 && !showZero) {\n invisible = true;\n }\n const {\n badgeContent,\n max = maxProp\n } = invisible ? prevProps : parameters;\n const displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n return {\n badgeContent,\n invisible,\n max,\n displayValue\n };\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useControlled as useControlled, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback, unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible, visuallyHidden, clamp } from '@mui/utils';\nimport { areArraysEqual, extractEventHandlers } from '../utils';\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction asc(a, b) {\n return a - b;\n}\nfunction findClosest(values, currentValue) {\n var _values$reduce;\n const {\n index: closestIndex\n } = (_values$reduce = values.reduce((acc, value, index) => {\n const distance = Math.abs(currentValue - value);\n if (acc === null || distance < acc.distance || distance === acc.distance) {\n return {\n distance,\n index\n };\n }\n return acc;\n }, null)) != null ? _values$reduce : {};\n return closestIndex;\n}\nfunction trackFinger(event, touchId) {\n // The event is TouchEvent\n if (touchId.current !== undefined && event.changedTouches) {\n const touchEvent = event;\n for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n const touch = touchEvent.changedTouches[i];\n if (touch.identifier === touchId.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n return false;\n }\n\n // The event is MouseEvent\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\nexport function valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\nfunction getDecimalPrecision(num) {\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\nfunction roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\nfunction setValueIndex({\n values,\n newValue,\n index\n}) {\n const output = values.slice();\n output[index] = newValue;\n return output.sort(asc);\n}\nfunction focusThumb({\n sliderRef,\n activeIndex,\n setActive\n}) {\n var _sliderRef$current, _doc$activeElement;\n const doc = ownerDocument(sliderRef.current);\n if (!((_sliderRef$current = sliderRef.current) != null && _sliderRef$current.contains(doc.activeElement)) || Number(doc == null || (_doc$activeElement = doc.activeElement) == null ? void 0 : _doc$activeElement.getAttribute('data-index')) !== activeIndex) {\n var _sliderRef$current2;\n (_sliderRef$current2 = sliderRef.current) == null || _sliderRef$current2.querySelector(`[type=\"range\"][data-index=\"${activeIndex}\"]`).focus();\n }\n if (setActive) {\n setActive(activeIndex);\n }\n}\nfunction areValuesEqual(newValue, oldValue) {\n if (typeof newValue === 'number' && typeof oldValue === 'number') {\n return newValue === oldValue;\n }\n if (typeof newValue === 'object' && typeof oldValue === 'object') {\n return areArraysEqual(newValue, oldValue);\n }\n return false;\n}\nconst axisProps = {\n horizontal: {\n offset: percent => ({\n left: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n 'horizontal-reverse': {\n offset: percent => ({\n right: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n vertical: {\n offset: percent => ({\n bottom: `${percent}%`\n }),\n leap: percent => ({\n height: `${percent}%`\n })\n }\n};\nexport const Identity = x => x;\n\n// TODO: remove support for Safari < 13.\n// https://caniuse.com/#search=touch-action\n//\n// Safari, on iOS, supports touch action since v13.\n// Over 80% of the iOS phones are compatible\n// in August 2020.\n// Utilizing the CSS.supports method to check if touch-action is supported.\n// Since CSS.supports is supported on all but Edge@12 and IE and touch-action\n// is supported on both Edge@12 and IE if CSS.supports is not available that means that\n// touch-action will be supported\nlet cachedSupportsTouchActionNone;\nfunction doesSupportTouchActionNone() {\n if (cachedSupportsTouchActionNone === undefined) {\n if (typeof CSS !== 'undefined' && typeof CSS.supports === 'function') {\n cachedSupportsTouchActionNone = CSS.supports('touch-action', 'none');\n } else {\n cachedSupportsTouchActionNone = true;\n }\n }\n return cachedSupportsTouchActionNone;\n}\n/**\n *\n * Demos:\n *\n * - [Slider](https://mui.com/base-ui/react-slider/#hook)\n *\n * API:\n *\n * - [useSlider API](https://mui.com/base-ui/react-slider/hooks-api/#use-slider)\n */\nexport function useSlider(parameters) {\n const {\n 'aria-labelledby': ariaLabelledby,\n defaultValue,\n disabled = false,\n disableSwap = false,\n isRtl = false,\n marks: marksProp = false,\n max = 100,\n min = 0,\n name,\n onChange,\n onChangeCommitted,\n orientation = 'horizontal',\n rootRef: ref,\n scale = Identity,\n step = 1,\n shiftStep = 10,\n tabIndex,\n value: valueProp\n } = parameters;\n const touchId = React.useRef();\n // We can't use the :active browser pseudo-classes.\n // - The active state isn't triggered when clicking on the rail.\n // - The active state isn't transferred when inversing a range slider.\n const [active, setActive] = React.useState(-1);\n const [open, setOpen] = React.useState(-1);\n const [dragging, setDragging] = React.useState(false);\n const moveCount = React.useRef(0);\n const [valueDerived, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue != null ? defaultValue : min,\n name: 'Slider'\n });\n const handleChange = onChange && ((event, value, thumbIndex) => {\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = event.nativeEvent || event;\n // @ts-ignore The nativeEvent is function, not object\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: {\n value,\n name\n }\n });\n onChange(clonedEvent, value, thumbIndex);\n });\n const range = Array.isArray(valueDerived);\n let values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n values = values.map(value => value == null ? min : clamp(value, min, max));\n const marks = marksProp === true && step !== null ? [...Array(Math.floor((max - min) / step) + 1)].map((_, index) => ({\n value: min + step * index\n })) : marksProp || [];\n const marksValues = marks.map(mark => mark.value);\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusedThumbIndex, setFocusedThumbIndex] = React.useState(-1);\n const sliderRef = React.useRef();\n const handleFocusRef = useForkRef(focusVisibleRef, sliderRef);\n const handleRef = useForkRef(ref, handleFocusRef);\n const createHandleHiddenInputFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n const index = Number(event.currentTarget.getAttribute('data-index'));\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusedThumbIndex(index);\n }\n setOpen(index);\n otherHandlers == null || (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n };\n const createHandleHiddenInputBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusedThumbIndex(-1);\n }\n setOpen(-1);\n otherHandlers == null || (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n };\n const changeValue = (event, valueInput) => {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n const marksIndex = marksValues.indexOf(value);\n let newValue = valueInput;\n if (marks && step == null) {\n const maxMarksValue = marksValues[marksValues.length - 1];\n if (newValue > maxMarksValue) {\n newValue = maxMarksValue;\n } else if (newValue < marksValues[0]) {\n newValue = marksValues[0];\n } else {\n newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];\n }\n }\n newValue = clamp(newValue, min, max);\n if (range) {\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);\n }\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index\n });\n let activeIndex = index;\n\n // Potentially swap the index if needed.\n if (!disableSwap) {\n activeIndex = newValue.indexOf(previousValue);\n }\n focusThumb({\n sliderRef,\n activeIndex\n });\n }\n setValueState(newValue);\n setFocusedThumbIndex(index);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(event, newValue, index);\n }\n if (onChangeCommitted) {\n onChangeCommitted(event, newValue);\n }\n };\n const createHandleHiddenInputKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n // The Shift + Up/Down keyboard shortcuts for moving the slider makes sense to be supported\n // only if the step is defined. If the step is null, this means tha the marks are used for specifying the valid values.\n if (step !== null) {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n let newValue = null;\n if ((event.key === 'ArrowLeft' || event.key === 'ArrowDown') && event.shiftKey || event.key === 'PageDown') {\n newValue = Math.max(value - shiftStep, min);\n } else if ((event.key === 'ArrowRight' || event.key === 'ArrowUp') && event.shiftKey || event.key === 'PageUp') {\n newValue = Math.min(value + shiftStep, max);\n }\n if (newValue !== null) {\n changeValue(event, newValue);\n event.preventDefault();\n }\n }\n otherHandlers == null || (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n };\n useEnhancedEffect(() => {\n if (disabled && sliderRef.current.contains(document.activeElement)) {\n var _document$activeEleme;\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/p/sandbox/mui-pr-22247-forked-h151h?file=/src/App.js\n // @ts-ignore\n (_document$activeEleme = document.activeElement) == null || _document$activeEleme.blur();\n }\n }, [disabled]);\n if (disabled && active !== -1) {\n setActive(-1);\n }\n if (disabled && focusedThumbIndex !== -1) {\n setFocusedThumbIndex(-1);\n }\n const createHandleHiddenInputChange = otherHandlers => event => {\n var _otherHandlers$onChan;\n (_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event);\n // @ts-ignore\n changeValue(event, event.target.valueAsNumber);\n };\n const previousIndex = React.useRef();\n let axis = orientation;\n if (isRtl && orientation === 'horizontal') {\n axis += '-reverse';\n }\n const getFingerNewValue = ({\n finger,\n move = false\n }) => {\n const {\n current: slider\n } = sliderRef;\n const {\n width,\n height,\n bottom,\n left\n } = slider.getBoundingClientRect();\n let percent;\n if (axis.indexOf('vertical') === 0) {\n percent = (bottom - finger.y) / height;\n } else {\n percent = (finger.x - left) / width;\n }\n if (axis.indexOf('-reverse') !== -1) {\n percent = 1 - percent;\n }\n let newValue;\n newValue = percentToValue(percent, min, max);\n if (step) {\n newValue = roundValueToStep(newValue, step, min);\n } else {\n const closestIndex = findClosest(marksValues, newValue);\n newValue = marksValues[closestIndex];\n }\n newValue = clamp(newValue, min, max);\n let activeIndex = 0;\n if (range) {\n if (!move) {\n activeIndex = findClosest(values, newValue);\n } else {\n activeIndex = previousIndex.current;\n }\n\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[activeIndex - 1] || -Infinity, values[activeIndex + 1] || Infinity);\n }\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index: activeIndex\n });\n\n // Potentially swap the index if needed.\n if (!(disableSwap && move)) {\n activeIndex = newValue.indexOf(previousValue);\n previousIndex.current = activeIndex;\n }\n }\n return {\n newValue,\n activeIndex\n };\n };\n const handleTouchMove = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n if (!finger) {\n return;\n }\n moveCount.current += 1;\n\n // Cancel move in case some other element consumed a mouseup event and it was not fired.\n // @ts-ignore buttons doesn't not exists on touch event\n if (nativeEvent.type === 'mousemove' && nativeEvent.buttons === 0) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleTouchEnd(nativeEvent);\n return;\n }\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n move: true\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n });\n const handleTouchEnd = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n setDragging(false);\n if (!finger) {\n return;\n }\n const {\n newValue\n } = getFingerNewValue({\n finger,\n move: true\n });\n setActive(-1);\n if (nativeEvent.type === 'touchend') {\n setOpen(-1);\n }\n if (onChangeCommitted) {\n onChangeCommitted(nativeEvent, newValue);\n }\n touchId.current = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stopListening();\n });\n const handleTouchStart = useEventCallback(nativeEvent => {\n if (disabled) {\n return;\n }\n // If touch-action: none; is not supported we need to prevent the scroll manually.\n if (!doesSupportTouchActionNone()) {\n nativeEvent.preventDefault();\n }\n const touch = nativeEvent.changedTouches[0];\n if (touch != null) {\n // A number that uniquely identifies the current finger in the touch session.\n touchId.current = touch.identifier;\n }\n const finger = trackFinger(nativeEvent, touchId);\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n }\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('touchmove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('touchend', handleTouchEnd, {\n passive: true\n });\n });\n const stopListening = React.useCallback(() => {\n const doc = ownerDocument(sliderRef.current);\n doc.removeEventListener('mousemove', handleTouchMove);\n doc.removeEventListener('mouseup', handleTouchEnd);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n }, [handleTouchEnd, handleTouchMove]);\n React.useEffect(() => {\n const {\n current: slider\n } = sliderRef;\n slider.addEventListener('touchstart', handleTouchStart, {\n passive: doesSupportTouchActionNone()\n });\n return () => {\n slider.removeEventListener('touchstart', handleTouchStart);\n stopListening();\n };\n }, [stopListening, handleTouchStart]);\n React.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n const createHandleMouseDown = otherHandlers => event => {\n var _otherHandlers$onMous;\n (_otherHandlers$onMous = otherHandlers.onMouseDown) == null || _otherHandlers$onMous.call(otherHandlers, event);\n if (disabled) {\n return;\n }\n if (event.defaultPrevented) {\n return;\n }\n\n // Only handle left clicks\n if (event.button !== 0) {\n return;\n }\n\n // Avoid text selection\n event.preventDefault();\n const finger = trackFinger(event, touchId);\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(event, newValue, activeIndex);\n }\n }\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('mousemove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('mouseup', handleTouchEnd);\n };\n const trackOffset = valueToPercent(range ? values[0] : min, min, max);\n const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n const getRootProps = (externalProps = {}) => {\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onMouseDown: createHandleMouseDown(externalHandlers || {})\n };\n const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n return _extends({}, externalProps, {\n ref: handleRef\n }, mergedEventHandlers);\n };\n const createHandleMouseOver = otherHandlers => event => {\n var _otherHandlers$onMous2;\n (_otherHandlers$onMous2 = otherHandlers.onMouseOver) == null || _otherHandlers$onMous2.call(otherHandlers, event);\n const index = Number(event.currentTarget.getAttribute('data-index'));\n setOpen(index);\n };\n const createHandleMouseLeave = otherHandlers => event => {\n var _otherHandlers$onMous3;\n (_otherHandlers$onMous3 = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous3.call(otherHandlers, event);\n setOpen(-1);\n };\n const getThumbProps = (externalProps = {}) => {\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onMouseOver: createHandleMouseOver(externalHandlers || {}),\n onMouseLeave: createHandleMouseLeave(externalHandlers || {})\n };\n return _extends({}, externalProps, externalHandlers, ownEventHandlers);\n };\n const getThumbStyle = index => {\n return {\n // So the non active thumb doesn't show its label on hover.\n pointerEvents: active !== -1 && active !== index ? 'none' : undefined\n };\n };\n const getHiddenInputProps = (externalProps = {}) => {\n var _parameters$step;\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onChange: createHandleHiddenInputChange(externalHandlers || {}),\n onFocus: createHandleHiddenInputFocus(externalHandlers || {}),\n onBlur: createHandleHiddenInputBlur(externalHandlers || {}),\n onKeyDown: createHandleHiddenInputKeyDown(externalHandlers || {})\n };\n const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n return _extends({\n tabIndex,\n 'aria-labelledby': ariaLabelledby,\n 'aria-orientation': orientation,\n 'aria-valuemax': scale(max),\n 'aria-valuemin': scale(min),\n name,\n type: 'range',\n min: parameters.min,\n max: parameters.max,\n step: parameters.step === null && parameters.marks ? 'any' : (_parameters$step = parameters.step) != null ? _parameters$step : undefined,\n disabled\n }, externalProps, mergedEventHandlers, {\n style: _extends({}, visuallyHidden, {\n direction: isRtl ? 'rtl' : 'ltr',\n // So that VoiceOver's focus indicator matches the thumb's dimensions\n width: '100%',\n height: '100%'\n })\n });\n };\n return {\n active,\n axis: axis,\n axisProps,\n dragging,\n focusedThumbIndex,\n getHiddenInputProps,\n getRootProps,\n getThumbProps,\n marks: marks,\n open,\n range,\n rootRef: handleRef,\n trackLeap,\n trackOffset,\n values,\n getThumbStyle\n };\n}","export function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {\n return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useEventCallback as useEventCallback, unstable_useTimeout as useTimeout } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\n/**\n * The basic building block for creating custom snackbar.\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/#hook)\n *\n * API:\n *\n * - [useSnackbar API](https://mui.com/base-ui/react-snackbar/hooks-api/#use-snackbar)\n */\nexport function useSnackbar(parameters = {}) {\n const {\n autoHideDuration = null,\n disableWindowBlurListener = false,\n onClose,\n open,\n resumeHideDuration\n } = parameters;\n const timerAutoHide = useTimeout();\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n function handleKeyDown(nativeEvent) {\n if (!nativeEvent.defaultPrevented) {\n // IE11, Edge (prior to using Blink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar\n onClose == null || onClose(nativeEvent, 'escapeKeyDown');\n }\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [open, onClose]);\n const handleClose = useEventCallback((event, reason) => {\n onClose == null || onClose(event, reason);\n });\n const setAutoHideTimer = useEventCallback(autoHideDurationParam => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n timerAutoHide.start(autoHideDurationParam, () => {\n handleClose(null, 'timeout');\n });\n });\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n return timerAutoHide.clear;\n }, [open, autoHideDuration, setAutoHideTimer, timerAutoHide]);\n const handleClickAway = event => {\n onClose == null || onClose(event, 'clickaway');\n };\n\n // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n const handlePause = timerAutoHide.clear;\n\n // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n const createHandleBlur = otherHandlers => event => {\n const onBlurCallback = otherHandlers.onBlur;\n onBlurCallback == null || onBlurCallback(event);\n handleResume();\n };\n const createHandleFocus = otherHandlers => event => {\n const onFocusCallback = otherHandlers.onFocus;\n onFocusCallback == null || onFocusCallback(event);\n handlePause();\n };\n const createMouseEnter = otherHandlers => event => {\n const onMouseEnterCallback = otherHandlers.onMouseEnter;\n onMouseEnterCallback == null || onMouseEnterCallback(event);\n handlePause();\n };\n const createMouseLeave = otherHandlers => event => {\n const onMouseLeaveCallback = otherHandlers.onMouseLeave;\n onMouseLeaveCallback == null || onMouseLeaveCallback(event);\n handleResume();\n };\n React.useEffect(() => {\n // TODO: window global should be refactored here\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n return undefined;\n }, [disableWindowBlurListener, open, handleResume, handlePause]);\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));\n return _extends({\n // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.\n // See https://github.com/mui/material-ui/issues/29080\n role: 'presentation'\n }, externalProps, externalEventHandlers, {\n onBlur: createHandleBlur(externalEventHandlers),\n onFocus: createHandleFocus(externalEventHandlers),\n onMouseEnter: createMouseEnter(externalEventHandlers),\n onMouseLeave: createMouseLeave(externalEventHandlers)\n });\n };\n return {\n getRootProps,\n onClickAway: handleClickAway\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { isHostComponent } from './isHostComponent';\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nexport function appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return _extends({}, otherProps, {\n ownerState: _extends({}, otherProps.ownerState, ownerState)\n });\n}","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nexport function extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nexport function isHostComponent(element) {\n return typeof element === 'string';\n}","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nexport function omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport clsx from 'clsx';\nimport { extractEventHandlers } from './extractEventHandlers';\nimport { omitEventHandlers } from './omitEventHandlers';\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nexport function mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers(_extends({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nexport function resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"elementType\", \"externalSlotProps\", \"ownerState\", \"skipResolvingSlotProps\"];\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { appendOwnerState } from './appendOwnerState';\nimport { mergeSlotProps } from './mergeSlotProps';\nimport { resolveComponentProps } from './resolveComponentProps';\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nexport function useSlotProps(parameters) {\n var _parameters$additiona;\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false\n } = parameters,\n rest = _objectWithoutPropertiesLoose(parameters, _excluded);\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps(_extends({}, rest, {\n externalSlotProps: resolvedComponentsProps\n }));\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);\n const props = appendOwnerState(elementType, _extends({}, mergedProps, {\n ref\n }), ownerState);\n return props;\n}"],"names":["GLOBAL_CLASS_PREFIX","componentName","slot","globalStateClass","buildSlotClass","COMPONENT_NAME","getPopperUtilityClass","slots","result","forEach","generateUtilityClasses","defaultContextValue","disableDefaultClasses","ClassNameConfiguratorContext","_excluded","_excluded2","resolveAnchorEl","anchorEl","isHTMLElement","element","undefined","nodeType","useUtilityClasses","composeClasses","root","generateUtilityClass","useClassNamesOverride","defaultPopperOptions","PopperTooltip","props","forwardedRef","_slots$root","children","direction","disablePortal","modifiers","open","placement","initialPlacement","popperOptions","popperRef","popperRefProp","slotProps","TransitionProps","other","tooltipRef","ownRef","useForkRef","handlePopperRef","handlePopperRefRef","useEnhancedEffect","current","rtlPlacement","flipPlacement","setPlacement","resolvedAnchorElement","setResolvedAnchorElement","forceUpdate","popperModifiers","name","options","altBoundary","enabled","phase","fn","state","concat","popper","destroy","childProps","classes","Root","rootProps","useSlotProps","elementType","externalSlotProps","externalForwardedProps","additionalProps","role","ref","ownerState","className","Popper","container","containerProp","keepMounted","style","transition","exited","setExited","resolvedAnchorEl","ownerDocument","body","display","transitionProps","in","onEnter","onExited","Portal","position","top","left","mountNode","setMountNode","handleRef","getContainer","document","newProps","getStyleValue","value","parseInt","styles","visibility","overflow","height","transform","TextareaAutosize","onChange","maxRows","minRows","isControlled","inputRef","shadowRef","calculateTextareaStyles","input","computedStyle","getComputedStyle","width","outerHeightStyle","overflowing","inputShallow","placeholder","slice","boxSizing","padding","paddingBottom","paddingTop","border","borderBottomWidth","borderTopWidth","innerHeight","scrollHeight","singleRowHeight","outerHeight","Math","max","Number","min","abs","syncHeight","textareaStyles","obj","Object","keys","length","handleResize","rAF","debounceHandleResize","containerWindow","resizeObserver","addEventListener","ResizeObserver","observe","clear","cancelAnimationFrame","removeEventListener","disconnect","event","rows","readOnly","tabIndex","ariaHidden","show","setAttribute","removeAttribute","getPaddingRight","ownerWindow","paddingRight","ariaHiddenSiblings","mountElement","currentElement","elementsToExclude","blacklist","call","isNotExcludedElement","indexOf","isNotForbiddenElement","isForbiddenTagName","tagName","isInputHidden","getAttribute","isAriaHiddenForbiddenOnElement","findIndexOf","items","callback","idx","some","item","index","handleContainer","containerInfo","restoreStyle","disableScrollLock","doc","innerWidth","documentElement","clientWidth","clientHeight","isOverflowing","scrollbarSize","getScrollbarSize","push","property","el","fixedElements","querySelectorAll","scrollContainer","parentNode","DocumentFragment","parent","parentElement","nodeName","overflowY","overflowX","setProperty","removeProperty","defaultManager","constructor","this","containers","modals","add","modal","modalIndex","modalRef","hiddenSiblings","getHiddenSiblings","mount","containerIndex","restore","remove","ariaHiddenState","splice","nextTop","isTopModal","useModal","parameters","disableEscapeKeyDown","manager","closeAfterTransition","onTransitionEnter","onTransitionExited","onClose","rootRef","mountNodeRef","hasTransition","hasOwnProperty","getHasTransition","ariaHiddenProp","getModal","handleMounted","scrollTop","handleOpen","useEventCallback","resolvedContainer","handlePortalRef","node","handleClose","createHandleKeyDown","otherHandlers","_otherHandlers$onKeyD","onKeyDown","key","which","stopPropagation","createHandleBackdropClick","_otherHandlers$onClic","onClick","target","currentTarget","getRootProps","propsEventHandlers","extractEventHandlers","externalEventHandlers","getBackdropProps","getTransitionProps","createChainedFunction","portalRef","stripDiacritics","string","normalize","replace","createFilterOptions","config","ignoreAccents","ignoreCase","limit","matchFrom","stringify","trim","inputValue","getOptionLabel","toLowerCase","filteredOptions","filter","option","candidate","findIndex","array","comp","i","defaultFilterOptions","pageSize","defaultIsActiveElementInListbox","listboxRef","_listboxRef$current$p","contains","activeElement","useAutocomplete","unstable_isActiveElementInListbox","unstable_classNamePrefix","autoComplete","autoHighlight","autoSelect","blurOnSelect","clearOnBlur","freeSolo","clearOnEscape","defaultValue","multiple","disableClearable","disableCloseOnSelect","disabled","disabledProp","disabledItemsFocusable","disableListWrap","filterOptions","filterSelectedOptions","getOptionDisabled","getOptionKey","getOptionLabelProp","_option$label","label","groupBy","handleHomeEndKeys","id","idProp","includeInputInList","inputValueProp","isOptionEqualToValue","onHighlightChange","onInputChange","onOpen","openProp","openOnFocus","selectOnFocus","valueProp","optionLabel","String","ignoreFocus","firstFocus","setAnchorEl","focusedTag","setFocusedTag","defaultHighlighted","highlightedIndexRef","setValueState","controlled","default","setInputValueState","focused","setFocused","resetInputValue","newValue","newInputValue","setOpenState","inputPristine","setInputPristine","inputValueIsSelectedValue","popupOpen","value2","previousProps","valueChange","listboxAvailable","focusTag","tagToFocus","focus","querySelector","setHighlightedIndex","reason","prev","classList","listboxNode","scrollBottom","elementBottom","offsetTop","offsetHeight","changeHighlightedIndex","diff","nextIndex","nextFocus","nextFocusDisabled","hasAttribute","validOptionIndex","maxIndex","newIndex","getNextIndex","setSelectionRange","syncHighlightedIndex","previousHighlightedOptionIndex","every","val","value1","previousHighlightedOption","getPreviousHighlightedOptionIndex","valueItem","currentOption","itemIndex","optionItem","handleListboxRef","handleValue","details","isTouch","selectNewValue","reasonProp","origin","Array","isArray","ctrlKey","metaKey","blur","handleFocusTag","nextTag","validTagIndex","handleClear","handleKeyDown","defaultMuiPrevented","preventDefault","handleFocus","handleBlur","handleInputChange","handleOptionMouseMove","handleOptionTouchStart","handleOptionClick","handleTagDelete","handlePopupIndicator","handleMouseDown","handleClick","selectionEnd","selectionStart","select","handleInputMouseDown","dirty","groupedOptions","Map","reduce","acc","group","onMouseDown","getInputLabelProps","htmlFor","getInputProps","onBlur","onFocus","autoCapitalize","spellCheck","getClearProps","type","getPopupIndicatorProps","getTagProps","onDelete","getListboxProps","getOptionProps","_getOptionKey","selected","onMouseMove","onTouchStart","expanded","useBadge","badgeContent","badgeContentProp","invisible","invisibleProp","maxProp","showZero","prevProps","displayValue","INTENTIONAL_DRAG_COUNT_THRESHOLD","asc","a","b","findClosest","values","currentValue","_values$reduce","closestIndex","distance","trackFinger","touchId","changedTouches","touchEvent","touch","identifier","x","clientX","y","clientY","valueToPercent","roundValueToStep","step","nearest","round","toFixed","num","parts","toExponential","split","matissaDecimalPart","decimalPart","toString","getDecimalPrecision","setValueIndex","output","sort","focusThumb","sliderRef","activeIndex","setActive","_sliderRef$current","_doc$activeElement","_sliderRef$current2","areValuesEqual","oldValue","array1","array2","itemComparer","areArraysEqual","axisProps","horizontal","offset","percent","leap","right","vertical","bottom","Identity","cachedSupportsTouchActionNone","doesSupportTouchActionNone","CSS","supports","useSlider","ariaLabelledby","disableSwap","isRtl","marks","marksProp","onChangeCommitted","orientation","scale","shiftStep","active","setOpen","dragging","setDragging","moveCount","valueDerived","useControlled","handleChange","thumbIndex","nativeEvent","clonedEvent","defineProperty","writable","range","map","clamp","floor","_","marksValues","mark","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","useIsFocusVisible","focusedThumbIndex","setFocusedThumbIndex","handleFocusRef","createHandleHiddenInputFocus","_otherHandlers$onFocu","createHandleHiddenInputBlur","_otherHandlers$onBlur","changeValue","valueInput","marksIndex","maxMarksValue","Infinity","previousValue","createHandleHiddenInputKeyDown","shiftKey","_document$activeEleme","previousIndex","axis","getFingerNewValue","finger","move","slider","getBoundingClientRect","percentToValue","handleTouchMove","buttons","handleTouchEnd","stopListening","handleTouchStart","passive","trackOffset","trackLeap","createHandleMouseLeave","_otherHandlers$onMous3","onMouseLeave","getHiddenInputProps","externalProps","_parameters$step","externalHandlers","ownEventHandlers","_otherHandlers$onChan","valueAsNumber","mergedEventHandlers","visuallyHidden","_otherHandlers$onMous","defaultPrevented","button","getThumbProps","onMouseOver","_otherHandlers$onMous2","getThumbStyle","pointerEvents","useSnackbar","autoHideDuration","disableWindowBlurListener","resumeHideDuration","timerAutoHide","setAutoHideTimer","autoHideDurationParam","start","handlePause","handleResume","createHandleFocus","onFocusCallback","createMouseEnter","onMouseEnterCallback","onMouseEnter","createMouseLeave","onMouseLeaveCallback","window","onBlurCallback","onClickAway","appendOwnerState","otherProps","object","excludeKeys","prop","match","includes","isHostComponent","omitEventHandlers","mergeSlotProps","getSlotProps","joinedClasses","clsx","mergedStyle","internalRef","eventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","resolveComponentProps","componentProps","slotState","_parameters$additiona","skipResolvingSlotProps","rest","resolvedComponentsProps","mergedProps"],"sourceRoot":""}