{"version":3,"file":"static/js/9811_536bd79c65207fcac53d.js","mappings":"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CJ,CACO,SAASG,EAAiBtG,GAE7B,IADA,IAAIxF,EAAO,GACFyC,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCzC,EAAKyC,EAAK,GAAKC,UAAUD,GAE7B,IAAIoD,EAAesF,EAAoBrH,WAAM,GAAQ,QAAc,CAAC0B,GAAUxF,GAAM,IACpF,OAAI6F,GACA+F,EAAkB/F,EAAcL,EAAQO,uBACjCF,EAAa/F,WAEjB,EACX,C,oCEtQO,ICCIiM,ECJPC,EFGOC,EAAkB,CACzBC,MAAO,CACHC,WAAY,CAAC,QAAS,QAE1BC,QAAS,CACLD,WAAY,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAE1GE,MAAO,CACHF,WAAY,CACR,MACA,OACA,MACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,OAGRG,SAAU,CACNH,WAAY,CAAC,OAAQ,YAAa,MAAO,MAAO,QAEpDI,WAAY,CACRJ,WAAY,CAAC,eAEjBK,UAAW,CACPL,WAAY,CAAC,cAEjBM,KAAM,CACFN,WAAY,CACR,OACA,MACA,MACA,MACA,KACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,aACA,cACA,eACA,SACA,MACA,MACA,MACA,QACA,UACA,IACA,MACA,MACA,UACA,KACA,MACA,MACA,OACA,KACA,MACA,MACA,QACA,MACA,SACA,SACA,MACA,MACA,MACA,KACA,SACA,OACA,SACA,MACA,MACA,MACA,IACA,MACA,KACA,QACA,MACA,MACA,OACA,KACA,YACA,MACA,MACA,IACA,MACA,MACA,KACA,MACA,WACA,MACA,UACA,UACA,YACA,KACA,SACA,MACA,IACA,MACA,OACA,aACA,MACA,MACA,KACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QACA,OACA,MACA,OACA,KACA,OACA,MACA,SACA,MACA,IACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,IACA,MACA,OACA,WACA,SACA,KACA,SACA,WACA,QACA,OACA,KACA,MACA,MACA,MACA,KACA,MACA,MACA,OACA,YACA,IACA,MACA,QACA,MACA,OACA,OACA,OACA,OACA,QACA,KACA,KACA,MACA,KACA,UACA,MACA,SACA,OACA,OACA,MACA,KACA,KACA,MACA,IACA,OACA,KACA,MACA,KACA,MACA,KACA,MACA,OACA,OACA,OACA,QACA,MACA,WACA,MACA,MACA,MACA,OACA,OACA,IACA,OACA,QACA,MACA,aACA,aACA,SACA,OACA,OACA,KACA,QACA,MACA,WACA,QACA,MACA,MACA,MACA,MACA,UACA,MACA,MACA,OACA,MACA,KACA,KACA,MACA,MACA,UACA,MACA,OACA,QACA,OACA,MACA,OACA,OACA,OACA,MACA,QAGRO,QAAS,CACLP,WAAY,CAAC,QAGjBQ,IAAK,CACDR,WAAY,CAAC,QAEjBS,SAAU,CACNT,WAAY,CAAC,WAEjBU,cAAe,CAAC,EAChBC,OAAQ,CAAC,EACTC,gBAAiB,CAAC,EAClBC,KAAM,CACFb,WAAY,CAAC,MAAO,OAAQ,OAAQ,SAExCc,KAAM,CACFd,WAAY,CAAC,MAAO,OAAQ,SAEhCe,MAAO,CACHf,WAAY,CAAC,MAAO,MAAO,MAAO,MAAO,QAE7CgB,IAAK,CACDhB,WAAY,CAAC,cAAe,YAAa,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,QAExFiB,gBAAiB,CAAC,EAClBC,OAAQ,CAAC,EACTpI,KAAM,CACFkH,WAAY,CAAC,MAAO,MAAO,SAE/BmB,KAAM,CAAC,EACPC,YAAa,CAAC,EACdC,KAAM,CACFrB,WAAY,CAAC,MAAO,OAAQ,MAAO,UAEvCsB,MAAO,CACHtB,WAAY,CAAC,MAAO,UAExBuB,KAAM,CACFvB,WAAY,CAAC,MAAO,OAAQ,MAAO,UAAW,WAElDwB,aAAc,CAAC,EACfC,SAAU,CAAC,EACXC,KAAM,CACF1B,WAAY,CAAC,QAAS,OAAQ,SAElC2B,cAAe,CAAC,EAChBC,aAAc,CACV5B,WAAY,CAAC,SAEjB6B,OAAQ,CAAC,EACTC,MAAO,CACH9B,WAAY,CACR,MACA,MACA,QACA,OACA,MACA,KACA,OACA,MACA,MACA,MACA,MACA,OACA,OACA,QACA,SACA,MACA,UACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,MAGR+B,IAAK,CACD/B,WAAY,CAAC,QAEjBgC,IAAK,CACDhC,WAAY,CAAC,QAEjBiC,SAAU,CAAC,EACXC,IAAK,CAEDlC,WAAY,CAAC,QAEjBmC,OAAQ,CAEJnC,WAAY,CAAC,cAAe,SAAU,UAAW,WAErDoC,OAAQ,CAAC,EACTC,IAAK,CACDrC,WAAY,CAAC,QAEjBsC,MAAO,CACHtC,WAAY,CACR,MACA,MACA,MACA,MACA,MACA,OACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,QAGRuC,SAAU,CAAC,EACXC,eAAgB,CAAC,EACjBC,KAAM,CACFzC,WAAY,CAAC,MAAO,OAAQ,SAEhC0C,QAAS,CACL1C,WAAY,CAAC,QAAS,SAE1B2C,KAAM,CACF3C,WAAY,CAAC,MAAO,OAAQ,SAEhC4C,KAAM,CACF5C,WAAY,CAAC,MAAO,OAAQ,OAAQ,OAAQ,SAEhD6C,aAAc,CACV7C,WAAY,CAAC,MAAO,UAAW,QAEnC8C,IAAK,CACD9C,WAAY,CAAC,QAEjB+C,IAAK,CACD/C,WAAY,CAAC,SAEjBgD,QAAS,CAAC,EACVC,YAAa,CACTjD,WAAY,CAAC,MAAO,MAAO,SAAU,UAAW,QAEpDkD,IAAK,CACDlD,WAAY,CAAC,OAAQ,OAAQ,MAAO,MAAO,MAAO,UAEtDmD,aAAc,CAAC,EACfC,SAAU,CAAC,EACXC,KAAM,CAAC,EACPC,QAAS,CACLtD,WAAY,CACR,MACA,MACA,MACA,QACA,MACA,MACA,QACA,MACA,KACA,MACA,MACA,MACA,QACA,MACA,KACA,MACA,SACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,QAGRuD,IAAK,CACDvD,WAAY,CAAC,MAAO,OAAQ,SAAU,MAAO,QAAS,aAAc,OAAQ,QAEhFwD,YAAa,CAAC,EACdC,UAAW,CAAC,EACZC,OAAQ,CACJ1D,WAAY,CACR,KACA,MACA,MACA,MACA,QACA,KACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,KACA,MACA,OACA,MACA,OACA,MACA,KACA,WAGR2D,MAAO,CACH3D,WAAY,CACR,MACA,MACA,OACA,OACA,MACA,MACA,SACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,KACA,MACA,KACA,MACA,OACA,OACA,KACA,MACA,QAGR4D,SAAU,CAAC,EACXC,KAAM,CACF7D,WAAY,CAAC,MAAO,MAAO,OAAQ,OAAQ,MAAO,QAEtD8D,KAAM,CACF9D,WAAY,CAAC,MAAO,OAAQ,SAEhC+D,KAAM,CACF/D,WAAY,CAAC,MAAO,OAAQ,OAAQ,QAExCgE,WAAY,CACRhE,WAAY,CAAC,aAAc,SAE/BiE,KAAM,CACFjE,WAAY,CAAC,MAAO,MAAO,OAAQ,OAAQ,OAAQ,QAEvDkE,KAAM,CACFlE,WAAY,CAAC,MAAO,OAAQ,SAEhCmE,IAAK,CACDnE,WAAY,CAAC,OAAQ,MAAO,QAEhCoE,IAAK,CACDpE,WAAY,CAAC,QAEjBqE,IAAK,CACDrE,WAAY,CAAC,UC5iBrB,SAAWJ,GACPA,EAAaA,EAAqB,OAAI,GAAK,SAC3CA,EAAaA,EAAqB,OAAI,GAAK,SAC3CA,EAAaA,EAA0B,YAAI,GAAK,cAChDA,EAAaA,EAAuB,SAAI,GAAK,WAC7CA,EAAaA,EAA2B,aAAI,GAAK,eACjDA,EAAaA,EAAuB,SAAI,GAAK,WAC7CA,EAAaA,EAAqB,OAAI,GAAK,SAC3CA,EAAaA,EAAmB,KAAI,GAAK,OACzCA,EAAaA,EAA4B,cAAI,GAAK,gBAClDA,EAAaA,EAA8B,gBAAI,IAAM,kBACrDA,EAAaA,EAA6B,eAAI,IAAM,iBACpDA,EAAaA,EAA2B,aAAI,IAAM,eAClDA,EAAaA,EAAmB,KAAI,IAAM,OAC1CA,EAAaA,EAAmB,KAAI,IAAM,OAC1CA,EAAaA,EAAmB,KAAI,IAAM,OAC1CA,EAAaA,EAAuB,SAAI,IAAM,WAC9CA,EAAaA,EAA4B,cAAI,IAAM,eACtD,CAlBD,CAkBGA,IAAiBA,EAAe,CAAC,ICtBpC,IAAI0E,EAAe,cACfC,EAAS,SACTC,EAAgB,eAChBC,EAAgB,SAChBC,EAAY,WACZC,EAAO,SACPC,EAAiB,WACjBC,EAAO,UACPC,EAAS,QACTC,EAAiB,gBACjBC,EAAmB,kBACnBC,EAAkB,iBAClBC,EAAgB,eAChBC,EAAO,OACPC,EAAO,OACPC,EAAW,WACXC,EAAiB,gBACVC,EAAoB,GAQxB,SAASC,EAAqBnM,GAEjC,IAAIoM,EACAC,EAAYrM,EAAQqM,UAAWC,EAAOtM,EAAQsM,KAAMC,EAAOvM,EAAQuM,KAAMC,EAAgBxM,EAAQwM,cACrGJ,EAOG,SAAgDC,EAAWC,GAC9D,IAAIF,EACJ,GAAIC,EAAW,CACX,IAAK7F,EAED,IAAK,IAAIiG,KADTjG,EAAuB,CAAC,EACHC,EACjB,GAAIA,EAAgBhJ,eAAegP,GAAW,CAC1C,IAAI9F,EAAaF,EAAgBgG,GAAU9F,WAC3C,GAAIA,EACA,IAAK,IAAI5B,EAAI,EAAGA,EAAI4B,EAAWtL,OAAQ0J,IACnCyB,EAAqBG,EAAW5B,IAAM0H,CAGlD,CAKR,OADAJ,EAAYA,EAAU/J,QAAQ,IAAK,IAAIpB,cAChCsF,EAAqB6F,IAAcpB,CAC9C,CACK,GAAIqB,EACL,OAAQA,GACJ,KAAK/F,EAAae,OACd8E,EAAehB,EACf,MACJ,KAAK7E,EAAasB,OACduE,EAAelB,EACf,MACJ,KAAK3E,EAAamG,SACdN,EAAef,EACf,MACJ,KAAK9E,EAAaoG,aACdP,EAAejB,EACf,MACJ,KAAK5E,EAAaqG,OACdR,EAAeX,EACf,MACJ,KAAKlF,EAAaqC,SACdwD,EAAeb,EACf,MACJ,KAAKhF,EAAasG,KACdT,EAAeZ,EACf,MACJ,KAAKjF,EAAauG,cACdV,EAAeV,EACf,MACJ,KAAKnF,EAAawG,gBACdX,EAAeT,EACf,MACJ,KAAKpF,EAAayG,eACdZ,EAAeR,EACf,MACJ,KAAKrF,EAAa0G,aACdb,EAAeP,EACf,MACJ,KAAKtF,EAAa2G,KACdd,EAAed,EACf,MACJ,KAAK/E,EAAauB,KACdsE,EAAeN,EACf,MACJ,KAAKvF,EAAayD,KACdoC,EAAeL,EACf,MACJ,KAAKxF,EAAawD,SACdqC,EAAeJ,EACf,MACJ,KAAKzF,EAAa+B,cACd8D,EAAeH,EAI3B,OAAOG,GAAgBnB,CAC3B,CAhFmBkC,CAAuCd,EAAWC,GAGjE,IACIc,EA6ED,SAA+Bb,EAAMC,QAClB,IAAlBA,IAA4BA,EAAgB,OAChD,IAAIa,EAAmBpW,OAAOoW,iBAC1BC,EAAyB,GAGP,QAAlBd,GAA2Ba,EAAmB,GAAKA,GAAoB,IAE1D,KAATd,IACAe,EAAyB,SAGN,QAAlBd,IAEDa,EAAmB,GAAKA,GAAoB,IAE5CC,EAAkC,KAATf,EAAc,MAAQ,QAE1Cc,EAAmB,KAAOA,GAAoB,EACnDC,EAAyB,MAEpBD,EAAmB,GAAKA,GAAoB,EACjDC,EAAyB,MAEpBD,EAAmB,IACxBC,EAAyB,QAGjC,OAAOf,EAAOe,EAAyB,IAAMd,CACjD,CA1GiBe,CADDhB,GAAQL,EACsBM,GAC1C,MAAO,CAAEC,SAAUL,EAAegB,EAAQ,aAAcf,EAC5D,C,uCCxBImB,E,oMARAC,EAAyB,oBAEzBC,EAAyB,oBACzBC,EAAW,WACXC,EAAmB,wBACnBC,EAAqB,0BACrBC,EAA6B,UAC7BC,GAAuC,UAM3C,SAASC,EAA4B5I,EAAQ6I,GACzC,IAAIC,EACsB,mBAAfC,WACPD,EAAQ,IAAIC,WAAW,QAAS,CAC5BC,QAASH,aAA+B,EAASA,EAAGG,QACpDC,QAASJ,aAA+B,EAASA,EAAGI,QACpDC,SAAUL,aAA+B,EAASA,EAAGK,SACrDC,OAAQN,aAA+B,EAASA,EAAGM,OACnDC,QAASP,aAA+B,EAASA,EAAGO,QACpDC,WAAYR,aAA+B,EAASA,EAAGQ,cAK3DP,EAAQ9X,SAASsY,YAAY,gBAEvBC,eAAe,UAASV,GAAKA,EAAGO,UAAiBP,GAAKA,EAAGQ,WAE/DxX,OACA,EACA,EACA,EACA,EACA,IACAgX,GAAKA,EAAGG,UAAiBH,GAAKA,EAAGM,SAAgBN,GAAKA,EAAGK,WAAkBL,GAAKA,EAAGI,QAAiB,EACpG,MAEJjJ,EAAOwJ,cAAcV,EACzB,CAcA,IAAIW,EAAgB,CAAC,EACjBC,EAAc,IAAIC,IAClBC,EAAsB,CAAC,OAAQ,SAAU,WAAY,QAAS,MAAO,MAAO,SAAU,YACtFC,GAAyB,EACzBC,EAA2B,SAAUC,GAErC,SAASD,EAAUE,GACf,IACIlY,EAAII,EAAIC,EAAIC,EADZoC,EAAQjC,MAEZiC,EAAQuV,EAAOE,KAAK1X,KAAMyX,IAAUzX,MAC9B2X,MAAQ,cACd1V,EAAM2V,YAAa,SACnB3V,EAAM4V,SAAW,SAAUvB,GACvB,IAAIrU,EAAM6V,uBAAuBxB,EAAG7I,QAApC,CAIA,IAMIsK,EANAxY,EAAK0C,EAAMwV,MAAOO,EAAyBzY,EAAGyY,uBAElDC,EAAkC1Y,EAAG0Y,gCAAiCC,EAAuB3Y,EAAG2Y,qBAEhGC,EAAsB5Y,EAAG4Y,oBAAqBC,EAAU7Y,EAAG6Y,QAASC,EAA2C9Y,EAAG8Y,yCAA0CC,EAAyB/Y,EAAG+Y,uBACpLC,EAAwBtW,EAAMuW,6BAA6BlC,EAAG7I,QAElE,GAAI8K,EACAR,EAAmBzB,EAAG7I,YAItB,IADA,IAAIgL,EAAgBnC,EAAG7I,OAChBgL,GAAiBA,IAAkBxW,EAAM0V,MAAMe,SAAS,CAC3D,IAAI,QAAkBD,IAAkBxW,EAAMuW,6BAA6BC,GAAgB,CACvFV,EAAmBU,EACnB,KACJ,CACAA,GAAgB,OAAUA,EAAenB,EAC7C,CAGJ,GAAIe,GAA4C/B,EAAG7I,SAAWxL,EAAM0V,MAAMe,QAAS,CAC/E,IAAIC,EAAsBL,GACY,mBAA3BA,GACPrW,EAAM0V,MAAMe,SACZJ,EAAuBrW,EAAM0V,MAAMe,SAEnCC,IAAuB,QAAkBA,IACzCZ,EAAmBY,EACnBA,EAAoBC,UAIpB3W,EAAM2W,OAAM,GACR3W,EAAM4W,iBAENd,EAAmB,MAG/B,CACA,IAAIe,GAAyB7W,EAAM4W,eAG/Bd,GAAoBA,IAAqB9V,EAAM4W,kBAC3CN,GAAyBO,IACzB7W,EAAM8W,mBAAmBhB,GAAkB,GAAM,GAErD9V,EAAM4W,eAAiBd,EACnBe,GACA7W,EAAM+W,qBAGVhB,GACAA,EAAuB/V,EAAM4W,eAAgBvC,IAE7C4B,GAAwBD,IACxB3B,EAAG2C,kBAEHb,EACAA,EAAQ9B,GAEH6B,GACLA,GA/DJ,CAiEJ,EACAlW,EAAMiX,QAAU,WACZjX,EAAMkX,iBAAgB,EAC1B,EACAlX,EAAMmX,aAAe,SAAU9C,GAC3B,IAAIrU,EAAM6V,uBAAuBxB,EAAG7I,UAIrBxL,EAAMwV,MAAM4B,SAC3B,CAKA,IAFA,IAAI5L,EAAS6I,EAAG7I,OACZ6L,EAAO,GACJ7L,GAAUA,IAAWxL,EAAM0V,MAAMe,SACpCY,EAAKpX,KAAKuL,GACVA,GAAS,OAAUA,EAAQ6J,GAE/B,KAAOgC,EAAK5V,UACR+J,EAAS6L,EAAKC,SACA,QAAkB9L,IAC5BxL,EAAMuX,kBAAkB/L,GAAQ,KAEhC,QAAmBA,MAZ3B,CAiBJ,EAIAxL,EAAMwX,WAAa,SAAUnD,EAAIoD,GAC7B,IAAIzX,EAAM6V,uBAAuBxB,EAAG7I,QAApC,CAKA,IAAIlO,EAAK0C,EAAMwV,MAAOkC,EAAYpa,EAAGoa,UAAWN,EAAW9Z,EAAG8Z,SAAUO,EAAuBra,EAAGqa,qBAAsBC,EAAwBta,EAAGsa,sBAAuBC,EAAuBva,EAAGua,qBACpM,KAAIT,IAGApX,EAAMwV,MAAMsC,WACZ9X,EAAMwV,MAAMsC,UAAUzD,GAGtBA,EAAG0D,sBAGH/X,EAAMgY,eAAeC,gBAAkBjY,EAAM0V,MAAMe,SAAWzW,EAAMkY,eAAxE,CAKA,IAAML,GAAwBA,EAAqBxD,IAASsD,GAAwBA,EAAqBtD,KACrGrU,EAAMuW,6BAA6BlC,EAAG7I,QAAS,CAE/C,IAAI2M,EAAYnY,EAAMoY,qBACtB,GAAID,GACA,IAAKA,EAAUxB,OAAM,GACjB,WAGH,MAAI,QAAsBtC,EAAG7I,QAM9B,OALA,IAAKxL,EAAMqY,cAAa,QAAehE,EAAG7I,OAAQ6I,EAAG7I,OAAO8M,YAAY,IACpE,MAKR,CACJ,KACK,IAAIjE,EAAGM,OACR,OAIA,OAAQN,EAAGkE,OACP,KAAK,UACD,GAAIvY,EAAMwY,2BAA6BxY,EAAMyY,4BAA4BpE,EAAG7I,OAAQ6I,GAChF,MAEJ,OACJ,KAAK,SACD,GAAIqD,IAAc,eACd1X,EAAM0Y,2BAA2BrE,GAC7BrU,EAAM2Y,eAAelB,IACrB,MAGR,OACJ,KAAK,UACD,GAAIC,IAAc,eACd1X,EAAM0Y,2BAA2BrE,GAC7BrU,EAAM4Y,gBAAgBnB,IACtB,MAGR,OACJ,KAAK,OACD,GAAIC,IAAc,iBACd1X,EAAM0Y,2BAA2BrE,GAC7BrU,EAAM6Y,gBACN,MAGR,OACJ,KAAK,SACD,GAAInB,IAAc,iBACd1X,EAAM0Y,2BAA2BrE,GAC7BrU,EAAM8Y,kBACN,MAGR,OACJ,KAAK,aACD,IAAKlB,GAAyB5X,EAAM+Y,kBAAiB,GACjD,MAEJ,OACJ,KAAK,WACD,IAAKnB,GAAyB5X,EAAM+Y,kBAAiB,GACjD,MAEJ,OACJ,KAAK,QACD,GAEA/Y,EAAMwV,MAAMwD,aACRhZ,EAAMwV,MAAMyD,eAAiB,SAC5BjZ,EAAMwV,MAAMyD,eAAiB,eAC1BjZ,EAAMkZ,gBAAgB7E,EAAG7I,QAAU,CACvC,IAAI2N,GAAe,EAEnB,GADAnZ,EAAMoZ,mBAAoB,EACtB1B,IAAc,cACb1X,EAAMqZ,iBAAiBrZ,EAAM4W,eAAgB3C,GAK9CkF,IADuB,QAAO1B,IAAUpD,EAAGK,SAAWL,EAAGK,UACvB1U,EAAM2Y,eAAelB,GAASzX,EAAM4Y,gBAAgBnB,QAJtF0B,EAAe9E,EAAGK,SAAW1U,EAAM6Y,eAAiB7Y,EAAM8Y,iBAO9D,GADA9Y,EAAMoZ,mBAAoB,EACtBD,EACA,MAEKnZ,EAAMwV,MAAM8D,0CACjBtZ,EAAM4W,eAAiB,KAE/B,CACA,OACJ,KAAK,SACD,GAAI5W,EAAMuZ,0BAA0BlF,EAAG7I,SAClCxL,EAAMkZ,gBAAgB7E,EAAG7I,UACrBxL,EAAMwZ,sBAAsBnF,EAAG7I,QAAQ,GAC5C,OAAO,EAEX,IAAI8M,EAAatY,EAAM0V,MAAMe,SAAWzW,EAAM0V,MAAMe,QAAQ6B,WAC5D,GAAItY,EAAM0V,MAAMe,SACZ6B,GACAtY,EAAMqY,cAAa,QAAerY,EAAM0V,MAAMe,QAAS6B,GAAY,IACnE,MAEJ,OACJ,KAAK,QACD,GAAItY,EAAMuZ,0BAA0BlF,EAAG7I,SAClCxL,EAAMkZ,gBAAgB7E,EAAG7I,UACrBxL,EAAMwZ,sBAAsBnF,EAAG7I,QAAQ,GAC5C,OAAO,EAEX,IAAIiO,EAAYzZ,EAAM0V,MAAMe,SAAWzW,EAAM0V,MAAMe,QAAQgD,UAC3D,GAAIzZ,EAAM0V,MAAMe,SACZzW,EAAMqY,cAAa,QAAmBrY,EAAM0V,MAAMe,QAASgD,GAAW,GAAM,GAAM,IAClF,MAEJ,OACJ,KAAK,UACD,GAAIzZ,EAAM0Z,2BAA6B1Z,EAAMyY,4BAA4BpE,EAAG7I,OAAQ6I,GAChF,MAEJ,OACJ,QACI,OAEZ,CACAA,EAAGsF,iBACHtF,EAAG2C,iBArIH,CAjBA,CAuJJ,EACAhX,EAAM4Z,iCAAmC,SAAUC,EAEnDC,EAEAC,GAEI,IAAIC,EAAgBha,EAAMia,gBAAgBC,MAAQla,EAAMia,gBAAgBE,GAAK,EAKzEC,EAAgBC,KAAKC,MAAMP,EAAWQ,KACtCC,EAAmBH,KAAKC,MAAMR,EAAWW,QACzCC,EAAmBL,KAAKC,MAAMP,EAAWU,QACzCE,EAAgBN,KAAKC,MAAMR,EAAWS,KAG1C,OAFmCV,GAAaO,EAAgBI,IAC9BX,GAAaa,EAAmBC,EAE1DX,GAAiBD,EAAWG,MAAQF,GAAiBD,EAAWG,KAAOH,EAAWa,MAC3E,EAEJP,KAAKQ,IAAId,EAAWG,KAAOH,EAAWa,MAAQ,EAAIZ,GAExDha,EAAMqZ,iBAAiBrZ,EAAM4W,eAAgB5C,GAG3CE,EAFIC,CAGf,GAEA,OAAuBnU,GAUvBA,EAAM8a,KAAM,OAAM,aAClB9a,EAAMia,gBAAkB,CACpBC,KAAM,EACNK,IAAK,GAETva,EAAMoZ,mBAAoB,EAC1B,IAAI2B,EAAgJ,QAAnHrd,EAAwC,QAAlCJ,EAAKkY,EAAMwF,yBAAsC,IAAP1d,EAAgBA,EAAKgY,EAAU2F,aAAaD,yBAAsC,IAAPtd,GAAgBA,EAG5K,OAFAsC,EAAM0Z,0BAAsE,QAAzC/b,EAAK6X,EAAM0F,gCAA6C,IAAPvd,EAAgBA,EAAKod,EACzG/a,EAAMwY,0BAAsE,QAAzC5a,EAAK4X,EAAM2F,gCAA6C,IAAPvd,EAAgBA,EAAKmd,EAClG/a,CACX,CAguBA,OA1hCA,QAAUsV,EAAWC,GA4TrBD,EAAU8F,cAAgB,WACtB,OAAOlG,EAAYvC,IACvB,EAMA2C,EAAU+F,kBAAoB,SAAUhH,GAEhCA,EAAGkE,QAAU,SACbrD,EAAYrT,SAAQ,SAAUyZ,GAAQ,OAAOA,EAAKvE,mBAAqB,GAE/E,EACAzB,EAAU7V,UAAU8b,kBAAoB,WACpC,IAAIC,EAAOzd,KAAK2X,MAAMe,QAEtB,GADAxB,EAAclX,KAAK+c,KAAO/c,KACtByd,EAAM,CAEN,IADA,IAAIhF,GAAgB,OAAUgF,EAAMnG,GAC7BmB,GAAiBA,IAAkBzY,KAAKia,eAAeyD,MAAmC,IAA3BjF,EAAckF,UAAgB,CAChG,IAAI,QAAmBlF,GAAgB,CACnCzY,KAAKma,cAAe,EACpB,KACJ,CACA1B,GAAgB,OAAUA,EAAenB,EAC7C,CACKtX,KAAKma,eACNhD,EAAYyG,IAAI5d,MAChBA,KAAK2X,MAAMe,SAAW1Y,KAAK2X,MAAMe,QAAQmF,iBAAiB,UAAWtG,EAAU+F,mBAAmB,IAEtGtd,KAAK2X,MAAMe,SAAW1Y,KAAK2X,MAAMe,QAAQmF,iBAAiB,OAAQ7d,KAAKkZ,SAAS,GAEhFlZ,KAAKgZ,oBACDhZ,KAAKyX,MAAMa,wBAAuE,iBAAtCtY,KAAKyX,MAAMa,uBACvDtY,KAAK6Y,eAAiB7Y,KAAKia,eAAe9U,cAAcnF,KAAKyX,MAAMa,wBAG9DtY,KAAKyX,MAAMqG,uBAEhB9d,KAAK6Y,eAAiB7Y,KAAKia,eAAe9U,cAAcnF,KAAKyX,MAAMqG,uBAEnE9d,KAAKyX,MAAMsG,oBACX/d,KAAK4Y,OAEb,CACJ,EACArB,EAAU7V,UAAUsc,mBAAqB,WACrC,IAAIP,EAAOzd,KAAK2X,MAAMe,QAClBrP,EAAMrJ,KAAKia,eAUf,IAPKja,KAAK6Y,kBAAmB,OAAgB7Y,KAAK2X,MAAMe,QAAS1Y,KAAK6Y,eAAgBvB,IACjFtX,KAAKie,wBACD,OAAgBje,KAAK2X,MAAMe,QAAS1Y,KAAKie,qBAAsB3G,MACpEtX,KAAK6Y,eAAiB,KACtB7Y,KAAKie,qBAAuB,KAC5Bje,KAAKgZ,sBAEJhZ,KAAKyX,MAAMyG,yBACZ7U,GACArJ,KAAKme,iBACJ9U,EAAI6Q,gBAAkB7Q,EAAIqU,MAA8B,OAAtBrU,EAAI6Q,eAA0B7Q,EAAI6Q,gBAAkBuD,GAAO,CAE9F,IAAIW,GAAiB,QAAwBX,EAAMzd,KAAKme,gBACpDC,GACApe,KAAKwZ,kBAAkB4E,GAAgB,GACvCA,EAAexF,QACf5Y,KAAKmZ,iBAAgB,IAKrBnZ,KAAKmZ,iBAAgB,EAE7B,CACJ,EACA5B,EAAU7V,UAAU2c,qBAAuB,kBAChCnH,EAAclX,KAAK+c,KACrB/c,KAAKma,eACNhD,EAAYmH,OAAOte,MACnBA,KAAK2X,MAAMe,SAAW1Y,KAAK2X,MAAMe,QAAQ6F,oBAAoB,UAAWhH,EAAU+F,mBAAmB,IAErGtd,KAAK2X,MAAMe,SACX1Y,KAAK2X,MAAMe,QAAQ6F,oBAAoB,OAAQve,KAAKkZ,SAAS,GAEjElZ,KAAK6Y,eAAiB,KACtB7Y,KAAKie,qBAAuB,IAChC,EACA1G,EAAU7V,UAAU8c,OAAS,WACzB,IAAIvc,EAAQjC,KAERT,EAAKS,KAAKyX,MAAOgH,EAAMlf,EAAGmf,GAAIC,EAAcpf,EAAGof,YAAaC,EAAYrf,EAAGqf,UAAWC,EAAkBtf,EAAGsf,gBAAiBC,EAAiBvf,EAAGuf,eAAgBnc,EAAYpD,EAAGoD,UAC/Koc,GAAW,QAAe/e,KAAKyX,MAAO,MACtCuH,EAAMP,GAAOE,GAAe,MAMhC3e,KAAKif,6BAEL,IAAIvF,GAAQ,UACZ,OAAQ,gBAAoBsF,GAAK,QAAS,CAAE,kBAAmBF,EAAgB,mBAAoBD,GAAmBE,EAAUH,EAAW,CAIvIjc,WAAW,QAtbdkT,IACDA,GAAkB,OAAY,CAC1B7I,UAAW,CACP,SAAU,CACNkS,QAAS,UAvCR,iBA4CVrJ,GA6agClT,GAE/Bwc,IAAKnf,KAAK4X,WAAW5X,KAAKyX,MAAM2H,WAAYpf,KAAK2X,OAAQ,oBAAqB3X,KAAK+c,IAEnFhD,UAAW,SAAUzD,GAAM,OAAOrU,EAAMwX,WAAWnD,EAAIoD,EAAQ,EAAGtB,QAASpY,KAAK6X,SAAUwH,mBAAoBrf,KAAKoZ,eAAiBpZ,KAAKyX,MAAM6H,SACvJ,EAQA/H,EAAU7V,UAAUkX,MAAQ,SAAU2G,EAAuBC,GAGzD,QAF8B,IAA1BD,IAAoCA,GAAwB,QACnC,IAAzBC,IAAmCA,GAAuB,GAC1Dxf,KAAK2X,MAAMe,QAAS,CACpB,IAAK6G,GAC2D,SAA5Dvf,KAAK2X,MAAMe,QAAQ/Z,aAAamX,IAChC9V,KAAKma,aAAc,CACnB,IAAIsF,EAAmBzf,KAAK0f,cAAc1f,KAAK2X,MAAMe,SACrD,GAAI+G,IAAqBzf,KAAK2X,MAAMe,QAAS,CACzC,IAAIiH,EAAYzI,EAAcuI,EAAiB9gB,aAAaoX,IAC5D,QAAS4J,GAAaA,EAAUrF,aAAata,KAAK2X,MAAMe,QAC5D,CACA,OAAO,CACX,CACK,IAAK6G,GACNvf,KAAK6Y,iBACL,OAAgB7Y,KAAK2X,MAAMe,QAAS1Y,KAAK6Y,kBACzC,QAAkB7Y,KAAK6Y,mBACrB2G,IAAwB,QAA6Bxf,KAAK6Y,iBAE5D,OADA7Y,KAAK6Y,eAAeD,SACb,EAGP,IAAI2B,EAAava,KAAK2X,MAAMe,QAAQ6B,WACpC,OAAOva,KAAKsa,cAAa,QAAeta,KAAK2X,MAAMe,QAAS6B,GAAY,OAAM/b,OAAWA,OAAWA,OAAWA,OAAWA,EAAWghB,GAE7I,CACA,OAAO,CACX,EAKAjI,EAAU7V,UAAUke,UAAY,WAC5B,GAAI5f,KAAK2X,MAAMe,QAAS,CACpB,IAAIgD,EAAY1b,KAAK2X,MAAMe,SAAW1Y,KAAK2X,MAAMe,QAAQgD,UACzD,OAAO1b,KAAKsa,cAAa,QAAmBta,KAAK2X,MAAMe,QAASgD,GAAW,GAAM,GAAM,GAC3F,CACA,OAAO,CACX,EASAnE,EAAU7V,UAAU4Y,aAAe,SAAUhX,EAASuc,GAElD,IAAItgB,EAAKS,KAAKyX,MAAOqI,EAAgBvgB,EAAGugB,cAAeC,EAAqBxgB,EAAGwgB,mBAC/E,QAAKA,IAAuBA,EAAmBzc,IAAcwc,IAAkBA,EAAcxc,QAGzFA,IAEAtD,KAAKwZ,kBAAkBlW,EAASuc,GAC5B7f,KAAK6Y,gBACL7Y,KAAK6Y,eAAeD,SAEjB,GAGf,EAMArB,EAAU7V,UAAUse,kBAAoB,SAAUC,GAC9CjgB,KAAKkc,gBAAkB+D,CAC3B,EACA5Z,OAAO6Z,eAAe3I,EAAU7V,UAAW,sBAAuB,CAC9Dye,IAAK,WACD,OAAOngB,KAAKie,oBAChB,EACAmC,YAAY,EACZC,cAAc,IAElBha,OAAO6Z,eAAe3I,EAAU7V,UAAW,gBAAiB,CACxDye,IAAK,WACD,OAAOngB,KAAK6Y,cAChB,EACAuH,YAAY,EACZC,cAAc,IAElB9I,EAAU7V,UAAUud,2BAA6B,WAC7C,IAAIxB,EAAOzd,KAAK2X,MAAMe,QAClBrP,EAAMrJ,KAAKia,eACf,GAAI5Q,EAAK,CACL,IAAIiX,EAAiBjX,EAAI6Q,cAEzB,GAAIoG,IAAmB7C,EAAM,CACzB,IAAI8C,GAAqB,OAAgB9C,EAAM6C,GAAgB,GAC/DtgB,KAAKme,eAAiBoC,GAAqB,QAAoB9C,EAAM6C,QAAkB9hB,CAC3F,CACJ,CACJ,EAOA+Y,EAAU7V,UAAUyX,gBAAkB,SAAUqH,GAC5C,IAAI/C,EAAOzd,KAAK2X,MAAMe,QAClB+E,GAAQzd,KAAKygB,YAAcD,IAC3BxgB,KAAKygB,UAAYD,EACbA,GACKxgB,KAAKyX,MAAMiJ,iBACZ1gB,KAAK2gB,gBAAkBlD,EAAK9e,aAAa,YACzC8e,EAAK9Y,aAAa,WAAY,OAElC8Y,EAAK7E,SAEC5Y,KAAKyX,MAAMiJ,iBACb1gB,KAAK2gB,iBACLlD,EAAK9Y,aAAa,WAAY3E,KAAK2gB,iBACnC3gB,KAAK2gB,qBAAkBniB,GAGvBif,EAAKmD,gBAAgB,aAIrC,EACArJ,EAAU7V,UAAU8X,kBAAoB,SAAUlW,EAASuc,GACvD,IAAIgB,EAAwB7gB,KAAK6Y,eACjC7Y,KAAK6Y,eAAiBvV,EAClBud,KACI,QAAmBA,IACnB7gB,KAAKgZ,kBAAkB6H,GAE3BA,EAAsBC,UAAY,GAElC9gB,KAAK6Y,iBACA7Y,KAAKkc,kBAAmB2D,GACzB7f,KAAK+Y,mBAAmBzV,GAAS,GAAM,GAE3CtD,KAAK6Y,eAAeiI,SAAW,EAEvC,EACAvJ,EAAU7V,UAAUiZ,2BAA6B,SAAUrE,GACvDtW,KAAKyX,MAAMsJ,2BAA6BzK,EAAGsF,gBAC/C,EAIArE,EAAU7V,UAAUgZ,4BAA8B,SAAUsG,EAAe1K,GACvE,IAAI7I,EAASuT,EACb,GAAIvT,IAAWzN,KAAK2X,MAAMe,QACtB,OAAO,EAEX,EAAG,CACC,GAAuB,WAAnBjL,EAAOwT,SACY,MAAnBxT,EAAOwT,SACY,UAAnBxT,EAAOwT,SACY,aAAnBxT,EAAOwT,SACY,YAAnBxT,EAAOwT,QACP,OAAO,EAEX,GAAIjhB,KAAKwY,6BAA6B/K,IACc,SAAhDA,EAAO9O,aAAamX,IACiC,SAArDrI,EAAO9O,aAjpBW,+BAmpBlB,OADA0X,EAA4B5I,EAAQ6I,IAC7B,EAEX7I,GAAS,OAAUA,EAAQ6J,EAC/B,OAAS7J,IAAWzN,KAAK2X,MAAMe,SAC/B,OAAO,CACX,EAIAnB,EAAU7V,UAAU2Y,mBAAqB,SAAU6G,GAE/C,KADAA,EAAcA,GAAelhB,KAAK6Y,gBAAkB7Y,KAAK2X,MAAMe,SAE3D,OAAO,KAEX,IAAI,QAAmBwI,GACnB,OAAOhK,EAAcgK,EAAYviB,aAAaoX,IAGlD,IADA,IAAIoL,EAAQD,EAAYE,kBACjBD,GAAO,CACV,IAAI,QAAmBA,GACnB,OAAOjK,EAAciK,EAAMxiB,aAAaoX,IAE5C,IAAIhK,EAAQ/L,KAAKqa,mBAAmB8G,GACpC,GAAIpV,EACA,OAAOA,EAEXoV,EAAQA,EAAMtc,kBAClB,CACA,OAAO,IACX,EACA0S,EAAU7V,UAAU2f,WAAa,SAAUvF,EAE3CwF,EAAuBhL,EAAIiL,QACA,IAAnBA,IAA6BA,GAAiB,GAClD,IAAIje,EAAUtD,KAAK6Y,eACf2I,GAAqB,EACrBC,OAAmBjjB,EACnBkjB,GAAe,EACfC,EAAkB3hB,KAAKyX,MAAMkC,YAAc,kBAC/C,IAAKrW,IAAYtD,KAAK2X,MAAMe,QACxB,OAAO,EAEX,GAAI1Y,KAAKmb,gBAAgB7X,KAChBtD,KAAKyb,sBAAsBnY,EAASwY,GACrC,OAAO,EAGf,IAAIC,EAAa4F,EAAkBre,EAAQse,wBAA0B,KACrE,EAAG,CAEC,GADAte,EAAWwY,GAAY,QAAe9b,KAAK2X,MAAMe,QAASpV,IAAW,QAAmBtD,KAAK2X,MAAMe,QAASpV,IACxGqe,EAkBC,CACDF,EAAmBne,EACnB,KACJ,CApBI,GAAIA,EAAS,CACT,IAEIue,EAAkBP,EAAsBvF,EAF3BzY,EAAQse,yBAGzB,IAAyB,IAArBC,IAAiD,IAAvBL,EAA0B,CACpDC,EAAmBne,EACnB,KACJ,CAKA,GAJIue,GAAmB,KAA6B,IAAvBL,GAA4BK,EAAkBL,KACvEA,EAAoBK,EACpBJ,EAAmBne,GAEnBke,GAAqB,GAAKK,EAAkB,EAC5C,KAER,CAMR,OAASve,GAET,GAAIme,GAAoBA,IAAqBzhB,KAAK6Y,eAC9C6I,GAAe,EACf1hB,KAAKsa,aAAamH,QAEjB,GAAIzhB,KAAKyX,MAAMqK,sBAAwBP,EACxC,OAAIzF,EACO9b,KAAKsa,cAAa,QAAeta,KAAK2X,MAAMe,QAAS1Y,KAAK2X,MAAMe,QAAQ0I,mBAAmB,IAG3FphB,KAAKsa,cAAa,QAAmBta,KAAK2X,MAAMe,QAAS1Y,KAAK2X,MAAMe,QAAQqJ,kBAAkB,GAAM,GAAM,IAGzH,OAAOL,CACX,EACAnK,EAAU7V,UAAUqZ,eAAiB,WACjC,IAAI9Y,EAAQjC,KACRgiB,GAAa,EAEb/F,EAAgBjc,KAAKkc,gBAAgBC,MAAQnc,KAAKkc,gBAAgBE,GAAK,EAC3E,QAEApc,KAAKqhB,YAAW,GAAM,SAAUtF,EAAYC,GACxC,IAAIiG,GAAY,EAKZ5F,EAAgBC,KAAKC,MAAMP,EAAWQ,KACtCC,EAAmBH,KAAKC,MAAMR,EAAWW,QAC7C,OAAIL,EAAgBI,EACXxa,EAAMqZ,iBAAiBrZ,EAAM4W,eAAgB5C,GAG3CE,EAFIC,KAIK,IAAf4L,GAAoB3F,GAAiBI,GAAqBJ,IAAkB2F,KAC7EA,EAAY3F,EAER4F,EADAhG,GAAiBD,EAAWG,MAAQF,GAAiBD,EAAWG,KAAOH,EAAWa,MACvE,EAGAP,KAAKQ,IAAId,EAAWG,KAAOH,EAAWa,MAAQ,EAAIZ,IAG9DgG,EACX,MACIjiB,KAAK+Y,mBAAmB/Y,KAAK6Y,gBAAgB,GAAO,IAC7C,EAGf,EACAtB,EAAU7V,UAAUoZ,aAAe,WAC/B,IAAI7Y,EAAQjC,KACRgiB,GAAa,EAEb/F,EAAgBjc,KAAKkc,gBAAgBC,MAAQnc,KAAKkc,gBAAgBE,GAAK,EAC3E,QAEApc,KAAKqhB,YAAW,GAAO,SAAUtF,EAAYC,GACzC,IAAIiG,GAAY,EAKZtF,EAAmBL,KAAKC,MAAMP,EAAWU,QACzCL,EAAgBC,KAAKC,MAAMP,EAAWQ,KACtCI,EAAgBN,KAAKC,MAAMR,EAAWS,KAC1C,OAAIG,EAAmBC,EACd3a,EAAMqZ,iBAAiBrZ,EAAM4W,eAAgB5C,GAG3CE,EAFIC,KAIK,IAAf4L,GAAoBrF,GAAoBC,GAAkBP,IAAkB2F,KAC7EA,EAAY3F,EAER4F,EADAhG,GAAiBD,EAAWG,MAAQF,GAAiBD,EAAWG,KAAOH,EAAWa,MACvE,EAGAP,KAAKQ,IAAId,EAAWG,KAAOH,EAAWa,MAAQ,EAAIZ,IAG9DgG,EACX,MACIjiB,KAAK+Y,mBAAmB/Y,KAAK6Y,gBAAgB,GAAO,IAC7C,EAGf,EACAtB,EAAU7V,UAAUkZ,eAAiB,SAAUlB,GAC3C,IAAIzX,EAAQjC,KACRkiB,EAAaliB,KAAKsb,iBAAiBtb,KAAK6Y,eAAgB3C,GAC5D,QAAIlW,KAAKqhB,YAAW,QAAO3H,IAE3B,SAAUqC,EAAYC,GAClB,IAAIiG,GAAY,EAoBhB,QAlBI,QAAOvI,GAKeyI,WAAWnG,EAAWQ,IAAI4F,QAAQ,IAAMD,WAAWpG,EAAWW,OAAO0F,QAAQ,IAG7ED,WAAWnG,EAAWU,OAAO0F,QAAQ,IAAMD,WAAWpG,EAAWS,IAAI4F,QAAQ,MAGnGpG,EAAWqG,OAAStG,EAAWsG,OAC/BpgB,EAAMwV,MAAMkC,YAAc,aAC1BsI,EAAWlG,EAAWsG,MAAQrG,EAAWqG,MAEnCH,IACND,EAAW7L,GAER6L,CACX,QAAGzjB,EAAkB0jB,KACjBliB,KAAK+Y,mBAAmB/Y,KAAK6Y,gBAAgB,GAAM,IAC5C,EAGf,EACAtB,EAAU7V,UAAUmZ,gBAAkB,SAAUnB,GAC5C,IAAIzX,EAAQjC,KACRkiB,EAAaliB,KAAKsb,iBAAiBtb,KAAK6Y,eAAgB3C,GAC5D,QAAIlW,KAAKqhB,aAAY,QAAO3H,IAE5B,SAAUqC,EAAYC,GAClB,IAAIiG,GAAY,EAoBhB,QAlBI,QAAOvI,GAKeyI,WAAWnG,EAAWU,OAAO0F,QAAQ,IAAMD,WAAWpG,EAAWS,IAAI4F,QAAQ,IAG7ED,WAAWnG,EAAWQ,IAAI4F,QAAQ,IAAMD,WAAWpG,EAAWW,OAAO0F,QAAQ,MAGnGpG,EAAWG,MAAQJ,EAAWI,MAC9Bla,EAAMwV,MAAMkC,YAAc,aAC1BsI,EAAWjG,EAAWG,KAAOJ,EAAWI,KAElC+F,IACND,EAAW7L,GAER6L,CACX,QAAGzjB,EAAkB0jB,KACjBliB,KAAK+Y,mBAAmB/Y,KAAK6Y,gBAAgB,GAAM,IAC5C,EAGf,EACAtB,EAAU7V,UAAUsZ,iBAAmB,SAAUc,EAAWyF,QACjC,IAAnBA,IAA6BA,GAAiB,GAClD,IAAIje,EAAUtD,KAAK6Y,eACnB,IAAKvV,IAAYtD,KAAK2X,MAAMe,QACxB,OAAO,EAEX,GAAI1Y,KAAKmb,gBAAgB7X,KAChBtD,KAAKyb,sBAAsBnY,EAASwY,GACrC,OAAO,EAGf,IAAIwG,GAAmB,QAAqBhf,GAC5C,IAAKgf,EACD,OAAO,EAEX,IAAId,GAAqB,EACrBC,OAAmBjjB,EACnBwjB,GAAa,EACbO,GAAgB,EAChBC,EAAWF,EAAiBG,aAC5B1G,EAAazY,EAAQse,wBACzB,GAII,GAHAte,EAAUwY,GACJ,QAAe9b,KAAK2X,MAAMe,QAASpV,IACnC,QAAmBtD,KAAK2X,MAAMe,QAASpV,GAChC,CACT,IAAI0Y,EAAa1Y,EAAQse,wBACrBvF,EAAgBC,KAAKC,MAAMP,EAAWQ,KACtCC,EAAmBH,KAAKC,MAAMR,EAAWW,QACzCC,EAAmBL,KAAKC,MAAMP,EAAWU,QACzCE,EAAgBN,KAAKC,MAAMR,EAAWS,KACtCqF,EAAkB7hB,KAAK6b,iCAAiCC,EAAWC,EAAYC,GAGnF,GAF0CF,GAAaO,EAAgBI,EAAmB+F,IACjD1G,GAAaa,EAAmBC,EAAgB4F,EAErF,MAEAX,GAAmB,IAEf/F,GAAaO,EAAgB2F,GAC7BA,EAAY3F,EACZmF,EAAoBK,EACpBJ,EAAmBne,IAEbwY,GAAaa,EAAmB4F,GAEtCA,EAAe5F,EACf6E,EAAoBK,EACpBJ,EAAmBne,KAES,IAAvBke,GAA4BK,GAAmBL,KACpDA,EAAoBK,EACpBJ,EAAmBne,GAG/B,QACKA,GACT,IAAIoe,GAAe,EAEnB,GAAID,GAAoBA,IAAqBzhB,KAAK6Y,eAC9C6I,GAAe,EACf1hB,KAAKsa,aAAamH,GAClBzhB,KAAK+Y,mBAAmB0I,GAAkB,GAAO,QAEhD,GAAIzhB,KAAKyX,MAAMqK,sBAAwBP,EACxC,OAAIzF,EACO9b,KAAKsa,cAAa,QAAeta,KAAK2X,MAAMe,QAAS1Y,KAAK2X,MAAMe,QAAQ0I,mBAAmB,IAE/FphB,KAAKsa,cAAa,QAAmBta,KAAK2X,MAAMe,QAAS1Y,KAAK2X,MAAMe,QAAQqJ,kBAAkB,GAAM,GAAM,IAErH,OAAOL,CACX,EACAnK,EAAU7V,UAAUqX,mBAAqB,SAAUzV,EAASof,EAAcC,GACtE,GAAI3iB,KAAKyX,MAAMkC,YAAc,qBACvB3Z,KAAKkc,iBAAmBwG,GAAgBC,GAAa,CACvD,IAAIC,EAAOtf,EAAQse,wBACfzF,EAAOyG,EAAKzG,KAAOyG,EAAK/F,MAAQ,EAChCgG,EAAQD,EAAKpG,IAAMoG,EAAKE,OAAS,EAChC9iB,KAAKkc,kBACNlc,KAAKkc,gBAAkB,CAAEC,KAAMA,EAAMK,IAAKqG,IAE1CH,IACA1iB,KAAKkc,gBAAgBC,KAAOA,GAE5BwG,IACA3iB,KAAKkc,gBAAgBM,IAAMqG,EAEnC,CACJ,EACAtL,EAAU7V,UAAU8W,6BAA+B,SAAUlV,GACzD,OAAOtD,KAAK0f,cAAcpc,KAAatD,KAAK2X,MAAMe,OACtD,EACAnB,EAAU7V,UAAUge,cAAgB,SAAUpc,GAE1C,IADA,IAAImV,GAAgB,OAAUnV,EAASgU,GAChCmB,GAAiBA,IAAkBzY,KAAK2X,MAAMe,SAAWD,IAAkBzY,KAAKia,eAAeyD,MAAM,CACxG,IAAI,QAAmBjF,GACnB,OAAOA,EAEXA,GAAgB,OAAUA,EAAenB,EAC7C,CACA,OAAOmB,CACX,EACAlB,EAAU7V,UAAUsX,kBAAoB,SAAU1V,IACzCtD,KAAK6Y,gBACN7Y,KAAKyX,MAAMa,wBACkC,mBAAtCtY,KAAKyX,MAAMa,yBAClBtY,KAAK6Y,eAAiB7Y,KAAKyX,MAAMa,uBAAuBtY,KAAK2X,MAAMe,WAElEpV,GAAWtD,KAAK2X,MAAMe,UACvB1Y,KAAKie,qBAAuB,KAC5B3a,EAAUtD,KAAK2X,MAAMe,QACjB1Y,KAAK6Y,kBAAmB,OAAgBvV,EAAStD,KAAK6Y,kBACtD7Y,KAAK6Y,eAAiB,OAK1B7Y,KAAK6Y,kBAAmB,QAAkB7Y,KAAK6Y,kBAC/C7Y,KAAK6Y,eAAiB,MAG1B,IADA,IAAI7T,EAAa1B,GAAWA,EAAQgc,SAC3ByD,EAAa,EAAG/d,GAAc+d,EAAa/d,EAAWtB,OAAQqf,IAAc,CACjF,IAAI5B,EAAQnc,EAAW+d,IAClB,QAAmB5B,GAyBgC,SAA/CA,EAAMxiB,aAAamX,KACnB9V,KAAKma,eACHna,KAAK6Y,gBAAmB7Y,KAAKie,uBAAyBje,KAAK6Y,iBAAmBsI,EAM3C,OAAjCA,EAAMxiB,aAAaqX,IACxBmL,EAAMxc,aAAaqR,EAAU,OAN7BhW,KAAKie,qBAAuBkD,EACS,MAAjCA,EAAMxiB,aAAaqX,IACnBmL,EAAMxc,aAAaqR,EAAU,QA5BjCmL,EAAMxiB,cAA+D,UAA/CwiB,EAAMxiB,aAAamX,IACzCqL,EAAMxc,aAAaqR,EAAU,OAE7B,QAAkBmL,GACdnhB,KAAKyX,MAAM4B,SACX8H,EAAMxc,aAAaqR,EAAU,MAEvBhW,KAAKma,eACRna,KAAK6Y,gBAAmB7Y,KAAKie,uBAAyBje,KAAK6Y,iBAAmBsI,EAM3C,OAAjCA,EAAMxiB,aAAaqX,IACxBmL,EAAMxc,aAAaqR,EAAU,OAN7BhW,KAAKie,qBAAuBkD,EACS,MAAjCA,EAAMxiB,aAAaqX,IACnBmL,EAAMxc,aAAaqR,EAAU,MAOd,QAAlBmL,EAAMF,SAAyD,UAApCE,EAAMxiB,aAAa,cAEnDwiB,EAAMxc,aAAa,YAAa,UAexC3E,KAAKgZ,kBAAkBmI,EAC3B,CACJ,EACA5J,EAAU7V,UAAU8Z,0BAA4B,SAAUlY,GACtD,OAAOA,GAAuD,SAA5CA,EAAQ3E,aAAa,kBAC3C,EACA4Y,EAAU7V,UAAUyZ,gBAAkB,SAAU7X,GAC5C,SAAIA,IACAA,EAAQ2d,SAC2B,UAAlC3d,EAAQ2d,QAAQ1X,eAA+D,aAAlCjG,EAAQ2d,QAAQ1X,cAItE,EACAgO,EAAU7V,UAAU+Z,sBAAwB,SAAUnY,EAASwY,GAE3D,IAAK9b,KAAKqb,mBACN/X,GACAA,EAAQqR,MACR0C,EAAoB3P,QAAQpE,EAAQqR,KAAKpL,gBAAkB,EAAG,CAC9D,IAAIyZ,EAAiB1f,EAAQ0f,eAEzBC,EAAkBD,IADH1f,EAAQ4f,aAEvBC,EAAa7f,EAAQwG,MACrBsZ,EAAa9f,EAAQ+f,SAQzB,GAAIJ,GACCD,EAAiB,IAAMlH,IAAcsH,GACrCJ,IAAmBG,EAAWzf,QAAUoY,IAAcsH,GACpDpjB,KAAKyX,MAAMyD,gBACRlb,KAAKyX,MAAM6L,iCAAkCtjB,KAAKyX,MAAM6L,+BAA+BhgB,IAC7F,OAAO,CAEf,CACA,OAAO,CACX,EACAiU,EAAU7V,UAAU4Z,iBAAmB,SAAUhY,EAASigB,GACtD,OAAOvjB,KAAKyX,MAAM+L,iBAAiB,QAAgBlgB,EAASigB,EAChE,EAIAhM,EAAU7V,UAAUoW,uBAAyB,SAAUxU,GACnD,OAAOA,KAAatD,KAAK2X,MAAMe,UAAW,OAAsBpV,EAAStD,KAAK2X,MAAMe,QACxF,EACAnB,EAAU7V,UAAUuY,aAAe,WAC/B,OAAO,OAAYja,KAAK2X,MAAMe,QAClC,EACAnB,EAAU2F,aAAe,CACrB4E,sBAAsB,EACtBnI,UAAW,kBACXsD,mBAAmB,EAEnB,eAAgB,wBAEb1F,CACX,CA5hC8B,CA4hC5B,Y,2CC1lCK,IAWIkM,EAXAC,EAA4B,CAEnCC,KAAM,EAENC,IAAK,EAELC,UAAW,IAMf,SAAWJ,GAEPA,EAAmBA,EAA6B,SAAI,GAAK,WAEzDA,EAAmBA,EAA+B,WAAI,GAAK,aAE3DA,EAAmBA,EAAkC,cAAI,GAAK,gBAK9DA,EAAmBA,EAA6B,SAAI,GAAK,UAC5D,CAZD,CAYGA,IAAuBA,EAAqB,CAAC,G,6DCtBzC,SAASK,IACZ,IAAIC,EAAW,WAWf,OAVKA,EAASrL,UACVqL,EAASrL,QAAU,IAAI,KAE3B,aAAgB,WACZ,OAAO,WACH,IAAInZ,EACwB,QAA3BA,EAAKwkB,EAASrL,eAA4B,IAAPnZ,GAAyBA,EAAGykB,UAChED,EAASrL,aAAUla,CACvB,CACJ,GAAG,IACIulB,EAASrL,OACpB,C,6DCTO,SAASuL,EAAWC,GACvB,IAAI3kB,EAAK,WAAe2kB,GAAepa,EAAQvK,EAAG,GAAI4kB,EAAW5kB,EAAG,GAUpE,MAAO,CAACuK,EAAO,CAAEsa,SATH,QAAS,WAAc,OAAO,WACxCD,GAAS,EACb,CAAG,IAOgCE,UANpB,QAAS,WAAc,OAAO,WACzCF,GAAS,EACb,CAAG,IAIoDG,QAH1C,QAAS,WAAc,OAAO,WACvCH,GAAS,SAAUje,GAAgB,OAAQA,CAAc,GAC7D,CAAG,KAEP,C,kDCTO,SAASqe,EAASC,GAIrB,IAAIrF,EAAM,WAQV,YAPoB3gB,IAAhB2gB,EAAIzG,UAGJyG,EAAIzG,QAAU,CACV5O,MAA+B,mBAAjB0a,EAA8BA,IAAiBA,IAG9DrF,EAAIzG,QAAQ5O,KACvB,C,6DCvBO,SAAS2a,EAAqBC,EAAiBC,EAA0BC,GAC5E,IAAIrlB,EAAK,WAAeolB,GAA2B7a,EAAQvK,EAAG,GAAI4kB,EAAW5kB,EAAG,GAC5EslB,GAAe,YAA6BrmB,IAApBkmB,GACxBxe,EAAe2e,EAAeH,EAAkB5a,EAGhDgb,EAAW,SAAa5e,GACxB6e,EAAc,SAAaH,GAC/B,aAAgB,WACZE,EAASpM,QAAUxS,EACnB6e,EAAYrM,QAAUkM,CAC1B,IAGA,IAAII,GAAyB,QAAS,WAAc,OAAO,SAAUC,EAAQ3O,GAGzE,IAAI4O,EAA6B,mBAAXD,EAAwBA,EAAOH,EAASpM,SAAWuM,EACrEF,EAAYrM,SACZqM,EAAYrM,QAAQpC,EAAI4O,GAEvBL,GACDV,EAASe,EAEjB,CAAG,IACH,MAAO,CAAChf,EAAc8e,EAC1B,C,wECVO,SAASG,EAAiBC,GAC7B,IAAIC,EAAc,UAAa,WAC3B,MAAM,IAAIC,MAAM,+CACpB,IAMA,OALA,QAA0B,WACtBD,EAAY3M,QAAU0M,CAC1B,GAAG,CAACA,KAGG,QAAS,WAAc,OAAO,WAEjC,IADA,IAAIviB,EAAO,GACFyC,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCzC,EAAKyC,GAAMC,UAAUD,GAGzB,OADe+f,EAAY3M,QACX/R,WAAM,EAAQ9D,EAClC,CAAG,GACP,C,6DCzBO,SAAS0iB,EAAM/iB,EAAQgjB,GAG1B,IAAIrG,EAAM,SAAaqG,GAIvB,OAHKrG,EAAIzG,UACLyG,EAAIzG,SAAU,OAAMlW,IAEjB2c,EAAIzG,OACf,C,6DCVO,SAAS+M,IAEZ,IADA,IAAIC,EAAO,GACFpgB,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCogB,EAAKpgB,GAAMC,UAAUD,GAEzB,IAAIqgB,EAAiB,eAAkB,SAAU7b,GAE7C6b,EAAejN,QAAU5O,EACzB,IAAK,IAAIxE,EAAK,EAAGsgB,EAASF,EAAMpgB,EAAKsgB,EAAOliB,OAAQ4B,IAAM,CACtD,IAAI6Z,EAAMyG,EAAOtgB,GACE,mBAAR6Z,EACPA,EAAIrV,GAECqV,IAELA,EAAIzG,QAAU5O,EAEtB,CACJ,IAAG,QAAc,GAAI4b,GAAM,IAC3B,OAAOC,CACX,C,4DCnBO,SAASE,EAAWviB,EAASwiB,EAAW9jB,EAAU+jB,GAErD,IAAIV,EAAc,SAAarjB,GAC/BqjB,EAAY3M,QAAU1W,EACtB,aAAgB,WACZ,IAAIgkB,EAAgB1iB,GAAW,YAAaA,EAAUA,EAAQoV,QAAUpV,EACxE,GAAK0iB,GAAkBA,EAAcnI,iBAIrC,OADc,IAAAoI,IAAGD,EAAeF,GAAW,SAAUxP,GAAM,OAAO+O,EAAY3M,QAAQpC,EAAK,GAAGyP,EAElG,GAAG,CAACziB,EAASwiB,EAAWC,GAC5B,C,kDCfO,SAASG,EAAYpc,GACxB,IAAIqV,GAAM,IAAAgH,UAIV,OAHA,IAAAC,YAAU,WACNjH,EAAIzG,QAAU5O,CAClB,IACOqV,EAAIzG,OACf,C,4DCPW2N,EAAgB,WACvB,IAAIC,GAAa,OAAS,CAAC,GAY3B,OAVA,aAAgB,WAAc,OAAO,WACjC,IAAK,IAAIhhB,EAAK,EAAG/F,EAAK8G,OAAOC,KAAKggB,GAAahhB,EAAK/F,EAAGmE,OAAQ4B,IAAM,CACjE,IAAIihB,EAAKhnB,EAAG+F,GAEZkhB,aAAaD,EACjB,CACJ,CAAG,GAEH,CAACD,KAEM,OAAS,CACZG,WAAY,SAAUC,EAAMC,GACxB,IAAIJ,EAAKE,WAAWC,EAAMC,GAE1B,OADAL,EAAWC,GAAM,EACVA,CACX,EACAC,aAAc,SAAUD,UACbD,EAAWC,GAClBC,aAAaD,EACjB,GAER,C,wECnBO,SAASK,EAAUnZ,EAAQoZ,GAC9B,IAAIC,EAAqB,WACrBC,EAAY,SAAa,MAKzBC,GAAe,UAInB,IAAKvZ,GAAUA,IAAWqZ,EAAmBpO,SAA6B,iBAAXjL,EAAqB,CAChF,IAAIwZ,EAAiBJ,aAAiD,EAASA,EAAYnO,QAC3F,GAAIjL,EACA,GAAsB,iBAAXA,EAAqB,CAC5B,IAAIyZ,GAAa,OAAYD,GAC7BF,EAAUrO,QAAUwO,EAAaA,EAAW/hB,cAAcsI,GAAU,IACxE,MAEIsZ,EAAUrO,QADL,oBAAqBjL,GAGrB,0BAA2BA,EAFZA,EAKf,YAAaA,EACEA,EAAOiL,QAGPjL,EAG5BqZ,EAAmBpO,QAAUjL,CACjC,CACA,MAAO,CAACsZ,EAAWC,EACvB,C,kDCtCWG,EAAa,SAAUnlB,GAC9B,IAAIolB,EAAa,SAAaplB,GAC9BolB,EAAW1O,QAAU1W,EACrB,aAAgB,WAAc,OAAO,WACjC,IAAIzC,EAC0B,QAA7BA,EAAK6nB,EAAW1O,eAA4B,IAAPnZ,GAAyBA,EAAGmY,KAAK0P,EAC3E,CAAG,GAAG,GACV,C,4CCFO,SAASC,EAAYhf,GA8B5B,C,0DCxCA,MAAMif,EAAuB,qBAAoB9oB,GAC3C+oB,EAAmC,CAAC,EAC7BC,EAA+BF,EAAqBG,SACpDC,EAAiB,IAAM,aAAiBJ,GAAwB,aAAiBA,GAAwBC,C,mFCFtH,MAAMI,GAAgB,OAAS,CAC7B,KAAQ,CACN,OAAU,WACV,QAAW,UACX,OAAU,WAEZ,IAAO,CACL,QAAW,aAEZ,CACD,EAAK,CAAC,6BAA8B,2BAA4B,oHAChE,EAAK,CAAC,yEAEKC,EAAe,CAACnQ,EAAOpP,KAClC,MAAM,MACJwf,EAAK,YACLC,EAAc,kBACXC,GACDtQ,EACEuQ,EAAQ,IACTD,EACHF,WAAOrpB,EACPypB,KAAMH,GAEF5gB,EAASygB,IACTO,GAAc,SAUpB,OATAF,EAAMrlB,WAAY,OAAauE,EAAOuW,MAAOpV,aAAyC,EAASA,EAAQ8f,YAAwG,SAAzFD,aAAiD,EAASA,EAAYE,gBAA4BlhB,EAAOrI,IAAKmpB,EAAMrlB,WACtOklB,IACFG,EAAM,cAAgBH,GAEnBG,EAAM,eAAkBA,EAAM,mBAGjCA,EAAY,KAAI,MAFhBA,EAAM,gBAAiB,EAIlBA,CAAK,ECnCDK,EAAmB,CAAC9lB,EAAasa,EAAOyL,EAAOjgB,KAC1D,MAAMkgB,EAAyB,QAAV1L,EAAkB,KAAOA,EACxC2L,EAAO,cAAiB,CAAC/Q,EAAO0H,KACpC,MAAM6I,EAAQ,IACTJ,EAAanQ,EAAO,CACrB0Q,UAAW9f,aAAyC,EAASA,EAAQ8f,YAEvEhJ,MACAtC,QACAiG,OAAQjG,EACR4L,QAAS,OAAOF,KAAgBA,IAChCG,MAAO,8BAET,OAAO,gBAAoB,MAAOV,KAAUM,EAAM1hB,KAAI+hB,GAAK,gBAAoB,OAAQ,CACrFA,IACAV,KAAMD,EAAMC,SACV,IAGN,OADAO,EAAKjmB,YAAcA,EACZimB,CAAI,C,yECwDb,MAAMI,EAEe,mBAAdviB,OAAOwiB,GAAoBxiB,OAAOwiB,GAPzC,SAAYzM,EAAG0M,GACX,OAAO1M,IAAM0M,IAAY,IAAN1M,GAAW,EAAIA,GAAM,EAAI0M,IAAM1M,GAAMA,GAAK0M,GAAMA,CAEvE,EC1EaC,EC0CoB,CAACC,IAE9B,MAAMC,EAAU,gBAAoB,CAChCnf,MAAO,CACH4O,QAASsQ,GAEbE,QAAS,CACLxQ,SAAU,GAEdyQ,UAAW,KAjDI,IAACC,EAsDpB,OAHAH,EAAQxB,UAnDY2B,EAmDcH,EAAQxB,SAlDxBhQ,IAEd,MAAMqN,EAAW,SAAarN,EAAM3N,OAE9Buf,EAAa,SAAa,GAE1BC,EAAe,WAsBrB,OArBKA,EAAa5Q,UACd4Q,EAAa5Q,QAAU,CACnB5O,MAAOgb,EACPoE,QAASG,EACTF,UAAW,MAGnB,EAAAI,EAAA,IAA0B,KACtBzE,EAASpM,QAAUjB,EAAM3N,MACzBuf,EAAW3Q,SAAW,GACtB,8BAAgB,2BAAgB,KAC5B4Q,EAAa5Q,QAAQyQ,UAAUrlB,SAAS0lB,IACpCA,EAAS,CACLH,EAAW3Q,QACXjB,EAAM3N,OACR,GACJ,GACJ,GACH,CACC2N,EAAM3N,QAEH,gBAAoBsf,EAAU,CACjCtf,MAAOwf,EAAa5Q,SACrBjB,EAAM6H,SAAS,UAsBf2J,EAAQQ,SACRR,CAAO,EDxDYS,MAAclrB,GACtCmrB,EAA6B,CAC/BC,MAAM,EACNC,QAAS,IAAI,KACbC,WAAY,IAAI,KAChBC,WAAY,CACRrR,QAAS,MAEbsR,WAAY,CACRtR,QAAS,MAEbuR,SAAU,CACNvR,QAAS,MAEbwR,eAAe,EACfC,aAAa,EACbvV,KAAM,SACNwV,WAAW,EACXC,QAAQ,GAGCC,GADkBvB,EAAetB,SACHhc,GDfL,EAACwd,EAASxd,KAC5C,MAAM6d,EAAe,aAAiBL,IAC9Bnf,OAAS4O,QAAS5O,GAASof,SAAWxQ,QAASwQ,GAAS,UAAEC,GAAcG,EAC1EiB,EAAW9e,EAAS3B,IACnBke,EAAOwC,GAAY,cAAiB,CAACC,EAAWC,KACnD,IAAKA,EAED,MAAO,CACH5gB,EACAygB,GAGR,GAAIG,EAAQ,IAAMxB,EACd,OAAIN,EAAS6B,EAAU,GAAIF,GAChBE,EAEJ,CACH3gB,EACAygB,GAGR,IACI,GAAI3B,EAAS6B,EAAU,GAAIC,EAAQ,IAC/B,OAAOD,EAEX,MAAME,EAAelf,EAASif,EAAQ,IACtC,OAAI9B,EAAS6B,EAAU,GAAIE,GAChBF,EAEJ,CACHC,EAAQ,GACRC,EAER,CAAE,MAAOhnB,GAET,CAEA,MAAO,CACH8mB,EAAU,GACVA,EAAU,GACb,GACF,CACC3gB,EACAygB,IAgBJ,OAdK3B,EAASZ,EAAM,GAAIuC,IAGpBC,OAAShsB,IAEb,EAAA+qB,EAAA,IAA0B,KACtBJ,EAAUjnB,KAAKsoB,GACR,KACH,MAAMrhB,EAAQggB,EAAUzhB,QAAQ8iB,GAChCrB,EAAUpb,OAAO5E,EAAO,EAAE,IAE/B,CACCggB,IAEGnB,EAAM,EAAE,EC5CmC4C,CAAmB7B,GAAgB,CAAC8B,EAAMlB,IAA6Ble,EAASof,K,kDErBlIC,EAAsB,qBAAoBtsB,GAC1CusB,EAAkC,WAClC,OAAO,WAEP,CACJ,EACyCD,EAAoBrD,SACtD,SAASuD,IACZ,IAAIC,EACJ,OAAuE,QAA/DA,EAAoB,aAAiBH,UAAwD,IAAtBG,EAA+BA,EAAoBF,CACtI,C,2FCPO,SAASG,EAAUC,EAASC,GAC/B,OAAO,SAAazW,EAAM0W,EAAezoB,EAAK0oB,EAAQC,GAIlD,OAAI,EAAAC,EAAApe,GAAOie,GACAD,ECLZ,SAAmCzW,EAAM8C,GAC5C,MAAO,IACAA,EACH,CAAC,KAA2B9C,EAEpC,CDA+B8W,CAA0B9W,EAAM0W,GAAgB,KAAMzoB,EAAK0oB,EAAQC,IAEtF,EAAAC,EAAApe,GAAOuH,GACAyW,EAAYzW,EAAM0W,EAAezoB,EAAK0oB,EAAQC,GAGlDJ,EAAQxW,EAAM0W,EAAezoB,EAAK0oB,EAAQC,EACrD,CACJ,CEfW,SAASG,EAA6B/W,GAC7C,MAAM,GAAE+J,EAAI,CAAC,KAA2BiN,EAAiB,CAAC,KAA8BC,KAAmBC,GAAyBlX,EAC9H8C,EAAQoU,EACRlN,EAAyC,iBAApBgN,GAA+BjN,QAA+BA,EAAuBiN,EAIhH,MAH2B,iBAAhBhN,GAA4BD,IACnCjH,EAAMiH,GAAKA,GAER,CACHC,cACAlH,QACAmU,iBAER,C,eCdO,MAAME,E,SCIAC,EAAMb,EAAUY,EAAQC,KCFd,CAACpX,EAAM0W,EAAezoB,KACzC,MAAM,YAAE+b,EAAW,eAAEiN,EAAgBnU,MAAOuU,GAAcN,EAA6B/W,GACjF8C,EAAQ,IACPuU,KACAX,GAEP,OAAIO,EACOE,EAAQC,IAAI,WAAgB,CAC/BzM,SAAUsM,EAAejN,EAAalH,IACvC7U,GAEAkpB,EAAQC,IAAIpN,EAAalH,EAAO7U,EAAI,IDRlCqpB,EAAOf,EAAUY,EAAQG,MEHd,CAACtX,EAAM0W,EAAezoB,KAC1C,MAAM,YAAE+b,EAAW,eAAEiN,EAAgBnU,MAAOuU,GAAcN,EAA6B/W,GACjF8C,EAAQ,IACPuU,KACAX,GAEP,OAAIO,EAKOE,EAAQC,IAAI,WAAgB,CAC/BzM,SAAUsM,EAAejN,EAAa,IAC/BlH,EACH6H,SAAUwM,EAAQG,KAAK,WAAgB,CACnC3M,SAAU7H,EAAM6H,eACjB9gB,MAERoE,GAEAkpB,EAAQG,KAAKtN,EAAalH,EAAO7U,EAAI,I,qCCpBrC,MAAMspB,EAAe,qBAAoB1tB,GAGnC2tB,EAAgBD,EAAazE,SCApC2E,EAAwB,qBAAoB5tB,GAEzC6tB,EAAyBD,EAAsB3E,SCLjD,MAAM6E,EAA0B,qBAAoB9tB,GAI9C+tB,EAA2BD,EAAwB7E,SCH1D+E,EAA2B,qBAAoBhuB,GAIxCiuB,EAA4BD,EAAyB/E,SCL3D,MAAMiF,EAAmB,qBAAoBluB,GAGvCmuB,EAAoBD,EAAiBjF,S,8BCO3C,SAASmF,EAActpB,EAAS+E,GACvC,IAAIwkB,EACJ,MAAMC,EAAexpB,EACrB,IAAIypB,EACJ,OAAOC,SAASF,SAA2H,QAA9DD,EAA8BC,EAAazrB,qBAA2D,IAAhCwrB,OAAhF,EAAkIA,EAA4BI,cAAgBH,aAAwBA,EAAazrB,cAAc4rB,YAAuH,QAA1GF,EAA2B1kB,aAAyC,EAASA,EAAQ6kB,uBAA0D,IAA7BH,EAAsCA,EAA2B,eACxe,C,0BCXW,SAASI,EAA0BC,EAAOpG,GACjD,GAAIqG,EAAeD,GAEf,MAAO,KAAa,EAExB,MAAMpF,EAAQ,CACVtP,aAASla,GAEP8uB,GAAU,QAActG,GAC9B,SAASuG,EAA4BC,GAC7BF,EAAQG,4BAA8Bb,EAAcY,KACpDxF,EAAMtP,QAAU8U,EAChBA,EAAG7oB,aAAa,KAAoB,IAE5C,CACA,SAAS+oB,IACD1F,EAAMtP,UACNsP,EAAMtP,QAAQkI,gBAAgB,MAC9BoH,EAAMtP,aAAUla,EAExB,CAEA8uB,EAAQK,WAAWF,IACVA,GACDC,GACJ,IAIJ,MAAME,EAAmBjqB,IACrB+pB,IAEAH,EADe5pB,EAAEkqB,eAAe,GACG,EAGjCC,EAAgBnqB,MACbA,EAAEoqB,eAAiBnB,EAAcjpB,EAAEoqB,iBAAmBX,EAAMloB,SAASvB,EAAEoqB,iBACxEL,GACJ,EAOJ,OALAN,EAAMvP,iBAAiB,KAAiB+P,GACxCR,EAAMvP,iBAAiB,WAAYiQ,GACnCV,EAAMY,cAAe,EACrBT,EAA4BvG,EAAavoB,SAASyb,eAE3C,KACHwT,IACAN,EAAM7O,oBAAoB,KAAiBqP,GAC3CR,EAAM7O,oBAAoB,WAAYuP,UAC/BV,EAAMY,cACb,QAAeV,EAAQ,CAE/B,CACA,SAASD,EAAeG,GACpB,QAAKA,MAGDA,EAAGQ,cAGAX,EAAeG,aAA+B,EAASA,EAAG/U,eACrE,CCjEO,SAASwV,EAAgB5lB,EAAU,CAAC,GACvC,MAAMihB,GAAe,SACf4E,EAAW,SAAa,MAC9B,IAAIC,EACJ,MAAMC,EAAwE,QAAtDD,EAA0B9lB,EAAQ+lB,sBAAwD,IAA5BD,EAAqCA,EAA0B7E,EAAa8E,eASlK,OARA,aAAgB,KACZ,IAAKA,aAAuD,EAASA,EAAenB,cAAgBiB,EAASxV,QACzG,OAAOyU,EAA0Be,EAASxV,QAAS0V,EAAenB,YACtE,GACD,CACCiB,EACAE,IAEGF,CACX,C,0BCVW,MAAMG,EAA2B,CAAqDpN,EAA6CxJ,EAAsE6W,KAChN,IAAIC,EAEJ,OAAO,EAAAC,EAAA,GAAiD,QAA1BD,EAAY9W,EAAMiH,UAA8B,IAAd6P,EAAuBA,EAAYtN,EAASxJ,EAAO6W,EAAkB,E,0BCJ9H,MAAM,EAAyB,CACtC5V,QAAS,GAEA+V,EAA2B,qBAAoBjwB,GAGjD,SAASkwB,IAChB,IAAIzD,EACJ,OAA8D,QAAtDA,EAAoB,aAAiBwD,UAA+C,IAAtBxD,EAA+BA,EAAoB,CAC7H,CCbA,MAAM0D,EAAkB,qBAAoBnwB,GAIRmwB,EAAgBlH,SAgBzC,SAASlC,EAAM/iB,EAAS,OAAQgjB,GACvC,MAAM8D,EAAeoF,IACfE,EAhBC,aAAiBD,IAAoB,GAmBtCE,EAAS,EAAkB,MACjC,GAAIA,EAAQ,CACR,MAAMC,EAAcD,IAEdE,EAAY,WAAc,IAAID,EAAYnkB,QAAQ,KAAM,KAAK,CAC/DmkB,IAEJ,OAAOtJ,GAAc,GAAGoJ,IAAWpsB,IAASusB,GAChD,CAIA,OAAO,WAAc,IACbvJ,GAGG,GAAGoJ,IAAWpsB,MAAW8mB,EAAa5Q,WAC9C,CACCkW,EACApsB,EACAgjB,EACA8D,GAER,C,0BC/CO,MAAM0F,EACL,qBAEFC,GAAyB,OAAS,CACtCxR,KAAM,CACJyR,OAAQ,UACRC,OAAQ,UACRC,OAAQ,CAAC,WAAY,WACrBC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,aAEV,CACD7G,EAAG,CAAC,kDAAmD,6DAA8D,8BAA+B,8BAA+B,+CAAgD,8CAA+C,kDAAmD,sDCZjU8G,EAAqB,EAA+B,mBAAI,EAA+B,mBAAIlG,EAAA,EA4BhFmG,EAAkCrnB,IAC/C,MAAM,eAAE+lB,EAAc,MAAE1U,EAAK,mBAAEiW,GAAuBtnB,EAChDunB,EAAW,WACXC,EAAatK,EAAMyJ,GACnBc,EAAyBH,EACzBvsB,EAAO,WAAc,IClCpB,SAAgCqI,EAAUiO,GACjD,GAAIA,EAIA,MAAO,GAAGjO,OAHcpF,OAAOC,KAAKoT,GAAOtN,QAAO,CAAC2jB,EAAYC,IACpD,GAAGD,MAAeC,MAAWtW,EAAMsW,QAC3C,QAGP,MAAO,GAAGvkB,MACd,CD0BmCwkB,CAAuB,IAAIJ,IAAcnW,IAAQ,CAC5EA,EACAmW,IAsDJ,OAKJ,SAAmCzB,EAAgByB,GAK/C,YAAe,KACX,IAAKzB,EACD,OAEJ,MAAM8B,EAAoB9B,EAAe+B,eAAeN,GACpDK,GACA9B,EAAe7pB,KAAK6rB,OAAOF,EAC/B,GAER,CA5CIG,CAA0BjC,EAAgByB,GAC1CJ,GAAmB,KAEf,MAAMa,EAAkBlC,aAAuD,EAASA,EAAe+B,eAAeN,GAYtH,OAXIS,EACAV,EAASlX,QAAU4X,GAEnBV,EAASlX,QAtEE,EAACjL,EAAQ8iB,KAC5B,IAAK9iB,EACD,OAEJ,MAAMgR,EAAMhR,EAAOhJ,cAAc,SAKjC,OAJA4B,OAAOC,KAAKiqB,GAAmBzsB,SAAS0sB,IACpC/R,EAAI9Z,aAAa6rB,EAAUD,EAAkBC,GAAU,IAE3D/iB,EAAOlJ,KAAKX,YAAY6a,GACjBA,CAAG,EA6DiBgS,CAAerC,EAAgB,IAC3C0B,EACHvJ,GAAIsJ,IAEJD,EAASlX,SA/DL,EAAC+F,EAAKrb,KACtB,MAAMI,EAAQib,EAAIjb,MACdA,IACIA,EAAMC,SAASC,OAAS,GACxBF,EAAMktB,WAAW,GAErBltB,EAAML,WAAWC,EAAM,GACwB,EAyDvCutB,CAAYf,EAASlX,QAAStV,IAG/B,KACH,IAAIwtB,EACuC,QAA1CA,EAAoBhB,EAASlX,eAA2C,IAAtBkY,GAAwCA,EAAkBC,QAAQ,CACxH,GACF,CACChB,EACAzB,EACAhrB,EACA0sB,IAEG,CACHD,aACAzsB,OACH,EE1FL,MAAM0tB,EAAe,CAAC,EASLC,EAA6B,CAACtZ,EAAO0H,KAClD,MAAM6R,GAAgB,SAChBC,EAgFC,aAAiB/E,GA/ElBgF,EVV8D,QAA5DjG,EAAoB,aAAiByB,UAAqD,IAAtBzB,EAA+BA,EAAoB,CAAC,EAF7H,IACCA,EUYJ,MAAMkG,EAAyB,aAAiB7E,IAA4BwE,GAKpE,qBAAEM,GAAuB,EAAI,0BACrCC,EAAyB,IAAEC,EAAMN,EAAcM,IAAG,eAAElD,EAAiB4C,EAAc5C,eAAc,MAAE1U,EAAO6X,mBAAoBC,EAAY,CAAC,GAAM/Z,EAC3Iga,EAAcC,EAAaT,EAAavX,GACxCiY,EAAkBD,EAAaR,EAAiBM,GAChDI,EAAyBF,EAAaP,EAAwBE,GAC9DQ,GAAW,SACjB,IAAIC,EACJ,MAAM,WAAEjC,EAAU,KAAEzsB,GAASssB,EAA+B,CACxDhW,MAAO+X,EACPrD,iBACAuB,mBAA6F,QAAxEmC,EAAmCD,EAAS/B,8BAAyE,IAArCgC,EAA8CA,EAAmC,CAAC,IAe3L,MAAO,CACHV,uBAEAC,0BAA2BO,EAC3BN,MACAlD,iBACA1U,MAAO+X,EAEPF,mBAAoBI,EACpBI,eAAgBlC,EAChBmC,WAAY,CACRvU,KAAM,OAEVA,KAAMwU,EAAA,GAAY5D,EAAyB,MAAO,IAC3C5W,EACH6Z,MAIAnS,KAAK,EAAAsG,EAAA,GAActG,EAAK8O,EAAgB,CACpCG,sBAEJ,CACAzP,YAAa,QAEjBuT,iBAAkB,CACdC,QAAS/uB,EACTgvB,WAAY,IACLP,EAAS/B,uBACZvJ,GAAIsJ,IAGf,EAEL,SAAS6B,EAAaW,EAAGC,GAErB,OAAID,GAAKC,EACE,IACAD,KACAC,GAGPD,GAGGC,CACX,CC3FO,MAAMC,EAA+B,cAAiB,CAAC9a,EAAO0H,KACjE,MAAM6I,EAAQ+I,EAA2BtZ,EAAO0H,GJcJ6I,KAC9C,MAAM6J,GAAW,SACX3qB,EAAS+nB,EAAU,CACvBqC,IAAKtJ,EAAMsJ,IACXO,aAEF7J,EAAMvK,KAAK9a,WAAY,OAAaqsB,EAA+BhH,EAAM+J,eAAgB7qB,EAAOuW,KAAMuK,EAAMvK,KAAK9a,UACrG,EIpBV6vB,CAAiCxK,GACjC,MAAMyK,ECPH,SAAiDzK,GACpD,MAAM,qBAAEoJ,EAAoB,0BAC5BC,EAAyB,IAAEC,EAAG,KAAE7T,EAAI,eAAE2Q,EAAc,MAAE1U,EAAK,eAAEqY,EAAc,mBAC3ER,GAAuBvJ,EACjB0K,EAAW,WAAc,KAAI,CAC3BpB,MACAlD,oBACA,CACJkD,EACAlD,KAGGuE,GAAW,YAAe,KAAI,CAAG,KAClCC,EAAgB,WAAc,KAAI,CAChCxK,cAAekJ,KACf,CACJA,IAEJ,MAAO,CAEHD,4BAEAE,qBACAmB,WACAtK,cAAekJ,EACfsB,gBACAD,UACAjZ,QACAqY,eAAgBX,EAAuB3T,EAAK9a,UAAYovB,EAEhE,CDvB0Bc,CAAwC7K,GAC9D,MEF6C,EAACA,EAAOyK,IAKhC,EAAK,IAAU,CAChC3oB,MAAO2oB,EAAcC,SACrBpT,SAAwB,EAAK6M,EAAe,CACxCriB,MAAO2oB,EAAc/Y,MACrB4F,SAAwB,EAAK+M,EAAwB,CACjDviB,MAAO2oB,EAAcV,eACrBzS,SAAwB,EAAKiN,EAA0B,CACnDziB,MAAO2oB,EAAcpB,0BACrB/R,SAAwB,EAAKmN,EAA2B,CACpD3iB,MAAO2oB,EAAcE,QACrBrT,SAAwB,EAAK,IAAuB,CAChDgS,IAAKmB,EAAcrK,cACnB9I,SAAwB,EAAKgI,EAAA,EAA8B,CACvDxd,MAAO2oB,EAAcG,cACrBtT,SAAwB,EAAKqN,EAAmB,CAC5C7iB,MAAO2oB,EAAclB,mBACrBjS,SAAwB,EAAM0I,EAAMvK,KAAM,CACtC6B,SAAU,EACN,SAAc,KAAqB,EAAK,QAAS,CAI7CwT,wBAAyB,CACrBC,OAAQ/K,EAAMkK,iBAAiBC,YAEhCnK,EAAMkK,iBAAiBE,aAE9BpK,EAAMvK,KAAK6B,4BF9B5C0T,CAA8BhL,EAAOyK,EAAc,IAE9DF,EAAehwB,YAAc,gB,0DGRzB,MAAM0wB,EAAkB,qBAAoBz0B,GAC1C00B,EAA8B,CAEhC9E,eAAoC,iBAAb3vB,SAAwBA,cAAWD,EAC1D8yB,IAAK,OAIQ7J,EAAWwL,EAAgBxL,SACrC,SAAS0L,IACZ,IAAIlI,EACJ,OAAmE,QAA3DA,EAAoB,aAAiBgI,UAAoD,IAAtBhI,EAA+BA,EAAoBiI,CAClI,C,sDCfO,MAIUE,EAAqB,yBAGrBC,EAAoB,wBACxBC,EAAiB,CAC1B7pB,MAAO,CAAC,EACRgC,SAAU,QACV8nB,kBAAoB9nB,GAAWA,E,wECmBxB,SAAS+nB,EAAgC/pB,GAASgC,SAAUgoB,EAAe,cAAuB,kBAAEF,EAAoB,wBAAqC,MACpK,MAAO,CACH,CAACA,EAAkBG,EAAmBD,KAAiBhqB,EAE/D,CACA,SAASiqB,EAAmBD,GACxB,OAAOA,GACH,IAAK,QACD,MAAO,KAAK,QAChB,IAAK,eACD,MAAO,KAAK,qBAExB,CChCI,SAASE,GAAmB,aAAEC,EAAY,cAAEC,GAAiBC,GAC7D,MAAMC,GAAeF,aAAqD,EAASA,EAAcC,KAAcD,EAC/G,OAAKA,EAGE,cAAcD,OAAkBG,KAF5B,QAAQH,SAGvB,CAOI,MAAMI,EAAyB3rB,IAC/B,MAAM,cAAE4rB,EAAa,aAAEC,EAAY,aAAEN,GAAiBvrB,EACtD,MAAO,IACA,iBAAuB,eAC1B,iCAAkC,CAC9B,UAAW,IACJ,iBAAuB,eAGlC,UAAW,CACP8rB,QAAS,KACTL,SAAU,WACVM,cAAe,OACfC,OAAQ,KACL,iBAAuB,YACvB,iBAAuBT,MACvB,kBAAwBK,MACxB,iBAAuBC,GAC1B1X,IAAKmX,EAAmBtrB,EAAS,OACjCga,MAAOsR,EAAmBtrB,EAAS,SACnCqU,OAAQiX,EAAmBtrB,EAAS,UACpC8T,KAAMwX,EAAmBtrB,EAAS,SAEzC,EAQYisB,EAA0B,EAAGC,iBAAgB,EAAO9oB,WAAW,cAAyB8nB,oBAAmB9pB,QAAQ,YAAyB,QAAiB,CACtK,SAAU,CACN+qB,aAAcD,OAAgB/1B,EAAY,QAE9C,iBAAkB,CACdg2B,aAAcD,OAAgB/1B,EAAY,WAE3Cg1B,EAAgCQ,EAAsB,CACrDE,aAAcO,EAAA,oBACdR,cAAeQ,EAAA,qBAEfb,aAAc,SACXnqB,IACH,CACAgC,WACA8nB,uB,wEC/DD,MAAMmB,EAA0B,CAACrsB,EAAU,CAAC,KACnD,MAAM,SAAEssB,EAAQ,KAAEC,EAAI,gBAAEC,GAAkB,EAAI,SAAEC,EAAQ,qBAAEC,EAAoB,oBAC9EC,GAAwB3sB,EAClB4sB,GAAU,IAAAC,KAIhB,OAHID,IACA,QAASA,IAEN,OAAqB,CACxBE,MAAO,CACHC,SAAUT,EACVhb,UAAW0b,EAAqBT,QAAmCA,EAAO,YAC1EC,kBACAC,WACAQ,WAAYN,MAEbD,GAAwB,CACvBQ,UAAW,CACPC,cAAeT,KAGzB,EAEN,SAASM,EAAqBT,GAC1B,OAAOA,GACH,IAAK,aACD,OAAO,gCACX,IAAK,OACD,OAAO,0BACX,IAAK,cACD,OAAO,gCACX,IAAK,OACD,OAAO,0BAEX,QACI,OAAO,8BAEnB,C,wECpCW,MAAMa,EAAqBptB,IAClC,MAAM4sB,GAAU,IAAAC,KAIhB,OAHID,IACA,QAAYA,IAET,OAAqB,CACxBS,SAAU,CACNC,YAAaC,EAAevtB,aAAyC,EAASA,EAAQwtB,cAE1FN,UAAW,CACPC,cAAentB,aAAyC,EAASA,EAAQ0sB,uBAE/E,EAEAa,EAAkBC,IACpB,OAAOA,GACH,IAAK,YACD,OAAO,qCACX,IAAK,UACD,OAAO,mCACX,IAAK,qBACD,OAAO,4CACX,QACI,OACR,C,wECnBO,SAASC,EAAU3U,EAAO9Y,EAAU,CAAC,GAC5C,IAAK8Y,EACD,OAAO,KAEX,IAAK9Y,EAAQ0tB,YAAa,CACtB,MAAMC,EAZV,SAA0B7U,GAC1B,OCFiC7d,EDET6d,ICDJ7d,EAAQ2yB,UDCK9U,EAAM8U,SAASC,QAAiB,KCF1D,IAA0B5yB,CDGrC,CAU8B6yB,CAAiBhV,GACvC,GAAI6U,EACA,OAAOA,CAEf,CACA,MAAME,EAAS/U,EAAMiV,WACrB,OAAIF,GAAUA,EAAOvY,WAAa0Y,KAAKC,uBAC5BJ,EAAOK,KAEXL,CACX,C,eEhBW,MAAMM,EAAa,KAC1B,MAAM,eAAEpI,IAAmB,SACrBnB,GAAemB,aAAuD,EAASA,EAAenB,mBAAgBzuB,EAC9Gi4B,EAAexJ,aAAiD,EAASA,EAAYyJ,sBACrFzB,EAAU,WAAc,IACrBhI,GAGE,QAAcA,EAAa,CAC9B0J,SAAU,CAAC,EACXC,YAAY,EACZd,UAAS,EACTe,+BAAiCvzB,IAC7B,IAAIwzB,EACJ,SAAuE,QAA5DA,EAA6BxzB,EAAQ8d,yBAA8D,IAA/B0V,OAAwC,EAASA,EAA2BC,aAAa,kCAAkC,EAE9MC,OAAQP,IAVD,MAYZ,CACCxJ,EACAwJ,IAWJ,OATA,EAAAlN,EAAA,IAA0B,IACf,KACC0L,IACA,QAAeA,EACnB,GAEL,CACCA,IAEGA,CAAO,C,wECnCP,MAAMgC,EAAwBxf,KAGrC,IAAAyd,KACA,MAAMgC,GAAU,QAAoBzf,GAAO,GAC3C,OAAO,WAAc,KAAI,CACjB,CAAC,2BAAoCyf,KACrC,CACJA,GACF,C,2CCZK,MAAMC,EAA8BC,OAAOC,IAAI,0BAIzCC,EAA2BF,OAAOC,IAAI,sB,2ECe5C,SAASE,EAASvP,GAEzB,MAAMwP,EAAQ,CAAC,EACTxL,EAAY,CAAC,EACbyL,EAAYpxB,OAAOC,KAAK0hB,EAAMgK,YACpC,IAAK,MAAM0F,KAAYD,EAAU,CAC7B,MAAOxF,EAAMxa,GAASkgB,EAAQ3P,EAAO0P,GAErCF,EAAME,GAAYzF,EAClBjG,EAAU0L,GAAYjgB,CAC1B,CAEA,MAAO,CACH+f,QACAxL,UAAWA,EAEnB,CACA,SAAS2L,EAAQ3P,EAAO0P,GACpB,IAAIE,EAAmBC,EACvB,MAAMpgB,EAAQuQ,EAAM0P,GACpB,QAAcl5B,IAAViZ,EACA,MAAO,CACH,UACAjZ,GAIR,MAAQkgB,GAAIoZ,EAAM,SAAExY,KAAayI,GAAStQ,EACpCmU,GAAiB,EAAAJ,EAAApe,GAAOqK,GAASA,EAAM,UAA+BjZ,EACtEyzB,OAAoIzzB,KAAjF,QAA1Co5B,EAAoB5P,EAAMgK,kBAA8C,IAAtB4F,OAA+B,EAASA,EAAkBF,KAAkE,iBAA/B1P,EAAMgK,WAAW0F,GAAyBI,IAAuD,QAA3CD,EAAqB7P,EAAMgK,kBAA+C,IAAvB6F,OAAgC,EAASA,EAAmBH,KAAc,MAAQ1P,EAAMgK,WAAW0F,GAC1W,GAAI9L,GAAsC,mBAAbtM,EAAyB,CAClD,MAAMd,EAASoN,GAAkBtM,EACjC,MAAO,CACH,WACA,CACIA,SAAUd,EAAOyT,EAAMlK,IAGnC,CAKA,MAAO,CACHkK,EALqC,iBAATA,GAAqB6F,EChDlD,SAAcC,EAAKC,GAEtB,MAAMhxB,EAAS,CAAC,EAChB,IAAI,MAAMpE,KAAOm1B,GACoB,IAA7BC,EAAWtwB,QAAQ9E,IAAem1B,EAAIjyB,eAAelD,KACrDoE,EAAOpE,GAAOm1B,EAAIn1B,IAG1B,OAAOoE,CACX,CDwCyCixB,CAAKxgB,EAAO,CAC7C,OACCA,EAKT,C,kDE3DO,MAAMygB,EAAmB,CAACpuB,EAAOzB,IAAU,KAAcyB,EAAO,IAC5DzB,EACH8vB,gBAAiB9vB,aAAyC,EAASA,EAAQ+vB,SAG3EzZ,iBAAangB,G,iDCXV,SAASgtB,EAAOloB,GACvB,OAAO0pB,QAAQ1pB,aAAyC,EAASA,EAAQwC,eAAe,KAC5F,C,uECGW,SAASuyB,EAAOvuB,EAAOzB,GAC9B,MAAM,aAAE6U,EAAY,YAAEyB,GAAgBtW,EAChCoP,EAuCC,SAA0B3N,GACjC,GAAqB,iBAAVA,GAAuC,iBAAVA,GAAsB3D,MAAMC,QAAQ0D,IAC5E,iBAAqBA,GACjB,MAAO,CACHwV,SAAUxV,GAGdA,EAQJ,OAAOA,CACX,CAvDkBouB,CAAiBpuB,GAMvBwuB,EAAoB,IACrBpb,KACAzF,EACH,CAAC,KAA2BkH,GAMhC,OAJIlH,GAAmC,mBAAnBA,EAAM6H,WACtBgZ,EAAkB,KAA+B7gB,EAAM6H,SACvDgZ,EAAkBhZ,SAAWpC,aAAmD,EAASA,EAAaoC,UAEnGgZ,CACX,CAaW,SAASC,EAASzuB,EAAOzB,GAChC,GAAc,OAAVyB,SAA4BtL,IAAVsL,GAAwBzB,EAAQ8vB,iBAGtD,OAAOE,EAAOvuB,EAAOzB,EACzB,C,kDClCO,MAAMkhB,GAA4B,E,SAAA,KAAc,kBAAwB,W,kDCLpE,SAAS9D,KAAiBC,GACjC,MAAMC,EAAiB,eAAmB7b,IAEtC6b,EAAejN,QAAU5O,EACzB,IAAK,MAAMqV,KAAOuG,EACK,mBAARvG,EACPA,EAAIrV,GACGqV,IAEPA,EAAIzG,QAAU5O,EAEtB,GAEJ,IACO4b,IAEP,OAAOC,CACX,C,kBCrBW,SAAS6S,IAChB,MACkB,oBAAXl5B,WAA6BA,OAAOb,WAAYa,OAAOb,SAASgG,cAC3E,C,oECLA,MAAMg0B,EAAc,IAAIC,KACpB,MAAM1xB,EAAS,CAAC,EAChB,IAAK,MAAM2xB,KAAQD,EAAM,CACrB,MAAMpyB,EAAOH,MAAMC,QAAQuyB,GAAQA,EAAOtyB,OAAOC,KAAKqyB,GACtD,IAAK,MAAM/1B,KAAO0D,EACdU,EAAOpE,GAAO,CAEtB,CACA,OAAOoE,CAAM,EAMA4xB,EAAoBH,EAAY,CAC7C,aACA,iBACA,mBACA,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAMaI,EAAwBJ,EAAY,CACjD,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAMaK,EAAsBL,EAAY,CAC/C,SACA,WACA,UACA,YACA,aAMaM,EAAwBN,EAAYI,EAAuBD,EAAmBE,GAK9EE,EAAkBP,EAAYM,E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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/StyleOptionsState.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/Stylesheet.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/concatStyleSets.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/concatStyleSetsWithProps.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/extractStyleParts.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/fontFace.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/keyframes.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/mergeStyleSets.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/mergeStyles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/getVendorSettings.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/transforms/kebabRules.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/transforms/prefixRules.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/transforms/provideUnits.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/transforms/rtlifyRules.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/styleToClassName.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+merge-styles@8.5.15/node_modules/@fluentui/merge-styles/lib/tokenizeWithParentheses.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-file-type-icons@8.10.2_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-file-type-icons/lib/FileTypeIconMap.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-file-type-icons@8.10.2_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-file-type-icons/lib/FileIconType.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-file-type-icons@8.10.2_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-file-type-icons/lib/getFileTypeIconProps.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-focus@8.8.40_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-focus@8.8.40_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useAsync.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useBoolean.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useConst.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useControllableValue.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useEventCallback.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useId.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useOnEvent.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/usePrevious.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useSetTimeout.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useTarget.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useUnmount.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-hooks@8.6.36_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-hooks/lib/useWarnings.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-icons@2.0.226_react@18.2.0/node_modules/@fluentui/react-icons/lib/contexts/IconDirectionContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-icons@2.0.226_react@18.2.0/node_modules/@fluentui/react-icons/lib/utils/useIconState.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-icons@2.0.226_react@18.2.0/node_modules/@fluentui/react-icons/lib/utils/createFluentIcon.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-context-selector@9.1.51_5p7m7uxxnvpyuidfr5eob3wnea/node_modules/@fluentui/react-context-selector/lib/useContextSelector.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-popover@9.8.37_5p7m7uxxnvpyuidfr5eob3wnea/node_modules/@fluentui/react-popover/lib/popoverContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-context-selector@9.1.51_5p7m7uxxnvpyuidfr5eob3wnea/node_modules/@fluentui/react-context-selector/lib/createContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-portal-compat-context@9.0.11_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.29_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-jsx-runtime/lib/jsx/createJSX.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.29_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-jsx-runtime/lib/utils/createCompatSlotComponent.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.29_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-jsx-runtime/lib/utils/getMetadataFromSlotComponent.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.29_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-jsx-runtime/lib/utils/Runtime.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.29_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-jsx-runtime/lib/jsx-runtime.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.29_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-jsx-runtime/lib/jsx/jsxSlot.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.29_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-jsx-runtime/lib/jsx/jsxsSlot.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-shared-contexts@9.14.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-shared-contexts/lib/ThemeContext/ThemeContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-shared-contexts@9.14.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-shared-contexts/lib/ThemeClassNameContext/ThemeClassNameContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-shared-contexts@9.14.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-shared-contexts/lib/CustomStyleHooksContext/CustomStyleHooksContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-shared-contexts@9.14.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-shared-contexts/lib/TooltipVisibilityContext/TooltipContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-shared-contexts@9.14.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-shared-contexts/lib/OverridesContext/OverridesContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/utils/isHTMLElement.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/focus/focusVisiblePolyfill.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/hooks/useFocusVisible.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/compose/getIntrinsicElementProps.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/ssr/SSRContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/hooks/useId.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-provider@9.13.10_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderStyles.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-provider@9.13.10_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderThemeStyleTag.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-provider@9.13.10_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-provider/lib/components/FluentProvider/createCSSRuleFromTheme.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-provider@9.13.10_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProvider.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-provider@9.13.10_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-provider/lib/components/FluentProvider/FluentProvider.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-provider@9.13.10_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderContextValues.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-provider@9.13.10_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-provider/lib/components/FluentProvider/renderFluentProvider.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-shared-contexts@9.14.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-shared-contexts/lib/ProviderContext/ProviderContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/focus/constants.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/focus/createCustomFocusIndicatorStyle.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/focus/createFocusOutlineStyle.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/hooks/useArrowNavigationGroup.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/hooks/useFocusableGroup.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/virtualParent/getParent.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/virtualParent/isVirtualElement.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/hooks/useTabster.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-tabster@9.18.0_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react-tabster/lib/hooks/useTabsterAttributes.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/compose/constants.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/compose/deprecated/getSlots.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/utils/omit.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/compose/deprecated/resolveShorthand.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/compose/isSlot.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/compose/slot.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/hooks/useIsomorphicLayoutEffect.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/hooks/useMergedRefs.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/ssr/canUseDOM.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/utils/properties.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-utilities@9.18.0_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-utilities/lib/utils/getNativeElementProps.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react-window-provider@2.2.18_z4qn5m62jnw5xrigtnmlk62un4/node_modules/@fluentui/react-window-provider/lib/WindowProvider.js"],"sourcesContent":["/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL) {\n if (_rtl !== isRTL) {\n _rtl = isRTL;\n }\n}\n/**\n * Gets the current RTL value.\n */\nexport function getRTL() {\n if (_rtl === undefined) {\n _rtl =\n // eslint-disable-next-line no-restricted-globals\n typeof document !== 'undefined' &&\n // eslint-disable-next-line no-restricted-globals\n !!document.documentElement &&\n // eslint-disable-next-line no-restricted-globals\n document.documentElement.getAttribute('dir') === 'rtl';\n }\n return _rtl;\n}\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nvar _rtl;\n_rtl = getRTL();\nexport function getStyleOptions() {\n return {\n rtl: getRTL(),\n };\n}\n//# sourceMappingURL=StyleOptionsState.js.map","import { __assign } from \"tslib\";\nexport var InjectionMode = {\n /**\n * Avoids style injection, use getRules() to read the styles.\n */\n none: 0,\n /**\n * Inserts rules using the insertRule api.\n */\n insertNode: 1,\n /**\n * Appends rules using appendChild.\n */\n appendChild: 2,\n};\nvar STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nvar REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\nvar _global = {};\n// Grab window.\ntry {\n // Why the cast?\n // if compiled/type checked in same program with `@fluentui/font-icons-mdl2` which extends `Window` on global\n // ( check packages/font-icons-mdl2/src/index.ts ) the definitions don't match! Thus the need of this extra assertion\n _global = (window || {});\n}\ncatch (_a) {\n /* leave as blank object */\n}\nvar _stylesheet;\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nvar Stylesheet = /** @class */ (function () {\n function Stylesheet(config, serializedStylesheet) {\n var _a, _b, _c, _d, _e, _f;\n this._rules = [];\n this._preservedRules = [];\n this._counter = 0;\n this._keyToClassName = {};\n this._onInsertRuleCallbacks = [];\n this._onResetCallbacks = [];\n this._classNameToArgs = {};\n this._config = __assign({ \n // If there is no document we won't have an element to inject into.\n injectionMode: typeof document === 'undefined' ? InjectionMode.none : InjectionMode.insertNode, defaultPrefix: 'css', namespace: undefined, cspSettings: undefined }, config);\n this._classNameToArgs = (_a = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.classNameToArgs) !== null && _a !== void 0 ? _a : this._classNameToArgs;\n this._counter = (_b = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.counter) !== null && _b !== void 0 ? _b : this._counter;\n this._keyToClassName = (_d = (_c = this._config.classNameCache) !== null && _c !== void 0 ? _c : serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.keyToClassName) !== null && _d !== void 0 ? _d : this._keyToClassName;\n this._preservedRules = (_e = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.preservedRules) !== null && _e !== void 0 ? _e : this._preservedRules;\n this._rules = (_f = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.rules) !== null && _f !== void 0 ? _f : this._rules;\n }\n /**\n * Gets the singleton instance.\n */\n Stylesheet.getInstance = function () {\n _stylesheet = _global[STYLESHEET_SETTING];\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n var fabricConfig = (_global === null || _global === void 0 ? void 0 : _global.FabricConfig) || {};\n var stylesheet = new Stylesheet(fabricConfig.mergeStyles, fabricConfig.serializedStylesheet);\n _stylesheet = stylesheet;\n _global[STYLESHEET_SETTING] = stylesheet;\n }\n return _stylesheet;\n };\n /**\n * Serializes the Stylesheet instance into a format which allows rehydration on creation.\n * @returns string representation of `ISerializedStylesheet` interface.\n */\n Stylesheet.prototype.serialize = function () {\n return JSON.stringify({\n classNameToArgs: this._classNameToArgs,\n counter: this._counter,\n keyToClassName: this._keyToClassName,\n preservedRules: this._preservedRules,\n rules: this._rules,\n });\n };\n /**\n * Configures the stylesheet.\n */\n Stylesheet.prototype.setConfig = function (config) {\n this._config = __assign(__assign({}, this._config), config);\n };\n /**\n * Configures a reset callback.\n *\n * @param callback - A callback which will be called when the Stylesheet is reset.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onReset = function (callback) {\n var _this = this;\n this._onResetCallbacks.push(callback);\n return function () {\n _this._onResetCallbacks = _this._onResetCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Configures an insert rule callback.\n *\n * @param callback - A callback which will be called when a rule is inserted.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onInsertRule = function (callback) {\n var _this = this;\n this._onInsertRuleCallbacks.push(callback);\n return function () {\n _this._onInsertRuleCallbacks = _this._onInsertRuleCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Generates a unique classname.\n *\n * @param displayName - Optional value to use as a prefix.\n */\n Stylesheet.prototype.getClassName = function (displayName) {\n var namespace = this._config.namespace;\n var prefix = displayName || this._config.defaultPrefix;\n return \"\".concat(namespace ? namespace + '-' : '').concat(prefix, \"-\").concat(this._counter++);\n };\n /**\n * Used internally to cache information about a class which was\n * registered with the stylesheet.\n */\n Stylesheet.prototype.cacheClassName = function (className, key, args, rules) {\n this._keyToClassName[key] = className;\n this._classNameToArgs[className] = {\n args: args,\n rules: rules,\n };\n };\n /**\n * Gets the appropriate classname given a key which was previously\n * registered using cacheClassName.\n */\n Stylesheet.prototype.classNameFromKey = function (key) {\n return this._keyToClassName[key];\n };\n /**\n * Gets all classnames cache with the stylesheet.\n */\n Stylesheet.prototype.getClassNameCache = function () {\n return this._keyToClassName;\n };\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.argsFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.args;\n };\n /**\n * Gets the rules associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.insertedRulesFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.rules;\n };\n /**\n * Inserts a css rule into the stylesheet.\n * @param preserve - Preserves the rule beyond a reset boundary.\n */\n Stylesheet.prototype.insertRule = function (rule, preserve) {\n var injectionMode = this._config.injectionMode;\n var element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n if (preserve) {\n this._preservedRules.push(rule);\n }\n if (element) {\n switch (injectionMode) {\n case InjectionMode.insertNode:\n var sheet = element.sheet;\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n catch (e) {\n // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n // which could be slower and bulkier.\n }\n break;\n case InjectionMode.appendChild:\n element.appendChild(document.createTextNode(rule));\n break;\n }\n }\n else {\n this._rules.push(rule);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (this._config.onInsertRule) {\n // eslint-disable-next-line deprecation/deprecation\n this._config.onInsertRule(rule);\n }\n this._onInsertRuleCallbacks.forEach(function (callback) { return callback(); });\n };\n /**\n * Gets all rules registered with the stylesheet; only valid when\n * using InsertionMode.none.\n */\n Stylesheet.prototype.getRules = function (includePreservedRules) {\n return (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('');\n };\n /**\n * Resets the internal state of the stylesheet. Only used in server\n * rendered scenarios where we're using InsertionMode.none.\n */\n Stylesheet.prototype.reset = function () {\n this._rules = [];\n this._counter = 0;\n this._classNameToArgs = {};\n this._keyToClassName = {};\n this._onResetCallbacks.forEach(function (callback) { return callback(); });\n };\n // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n Stylesheet.prototype.resetKeys = function () {\n this._keyToClassName = {};\n };\n Stylesheet.prototype._getStyleElement = function () {\n var _this = this;\n if (!this._styleElement && typeof document !== 'undefined') {\n this._styleElement = this._createStyleElement();\n if (!REUSE_STYLE_NODE) {\n // Reset the style element on the next frame.\n window.requestAnimationFrame(function () {\n _this._styleElement = undefined;\n });\n }\n }\n return this._styleElement;\n };\n Stylesheet.prototype._createStyleElement = function () {\n var head = document.head;\n var styleElement = document.createElement('style');\n var nodeToInsertBefore = null;\n styleElement.setAttribute('data-merge-styles', 'true');\n var cspSettings = this._config.cspSettings;\n if (cspSettings) {\n if (cspSettings.nonce) {\n styleElement.setAttribute('nonce', cspSettings.nonce);\n }\n }\n if (this._lastStyleElement) {\n // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n nodeToInsertBefore = this._lastStyleElement.nextElementSibling;\n }\n else {\n var placeholderStyleTag = this._findPlaceholderStyleTag();\n if (placeholderStyleTag) {\n nodeToInsertBefore = placeholderStyleTag.nextElementSibling;\n }\n else {\n nodeToInsertBefore = head.childNodes[0];\n }\n }\n head.insertBefore(styleElement, head.contains(nodeToInsertBefore) ? nodeToInsertBefore : null);\n this._lastStyleElement = styleElement;\n return styleElement;\n };\n Stylesheet.prototype._findPlaceholderStyleTag = function () {\n var head = document.head;\n if (head) {\n return head.querySelector('style[data-merge-styles]');\n }\n return null;\n };\n return Stylesheet;\n}());\nexport { Stylesheet };\n//# sourceMappingURL=Stylesheet.js.map","import { __spreadArray } from \"tslib\";\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n if (styleSets && styleSets.length === 1 && styleSets[0] && !styleSets[0].subComponentStyles) {\n return styleSets[0];\n }\n var mergedSet = {};\n // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.\n var workingSubcomponentStyles = {};\n for (var _a = 0, styleSets_1 = styleSets; _a < styleSets_1.length; _a++) {\n var currentSet = styleSets_1[_a];\n if (currentSet) {\n for (var prop in currentSet) {\n if (currentSet.hasOwnProperty(prop)) {\n if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {\n // subcomponent styles - style functions or objects\n var currentComponentStyles = currentSet.subComponentStyles;\n for (var subCompProp in currentComponentStyles) {\n if (currentComponentStyles.hasOwnProperty(subCompProp)) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);\n }\n else {\n workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];\n }\n }\n }\n continue;\n }\n // the as any casts below is a workaround for ts 2.8.\n // todo: remove cast to any in ts 2.9.\n var mergedValue = mergedSet[prop];\n var currentValue = currentSet[prop];\n if (mergedValue === undefined) {\n mergedSet[prop] = currentValue;\n }\n else {\n mergedSet[prop] = __spreadArray(__spreadArray([], (Array.isArray(mergedValue) ? mergedValue : [mergedValue]), true), (Array.isArray(currentValue) ? currentValue : [currentValue]), true);\n }\n }\n }\n }\n }\n if (Object.keys(workingSubcomponentStyles).length > 0) {\n mergedSet.subComponentStyles = {};\n var mergedSubStyles = mergedSet.subComponentStyles;\n var _loop_1 = function (subCompProp) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n var workingSet_1 = workingSubcomponentStyles[subCompProp];\n mergedSubStyles[subCompProp] = function (styleProps) {\n return concatStyleSets.apply(void 0, workingSet_1.map(function (styleFunctionOrObject) {\n return typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject;\n }));\n };\n }\n };\n // now we process the subcomponent styles if there are any\n for (var subCompProp in workingSubcomponentStyles) {\n _loop_1(subCompProp);\n }\n }\n return mergedSet;\n}\n//# sourceMappingURL=concatStyleSets.js.map","import { concatStyleSets } from './concatStyleSets';\n/**\n * Concatenates style sets into one, but resolves functional sets using the given props.\n * @param styleProps - Props used to resolve functional sets.\n * @param allStyles - Style sets, which can be functions or objects.\n */\nexport function concatStyleSetsWithProps(styleProps) {\n var allStyles = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n allStyles[_i - 1] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, allStyles_1 = allStyles; _a < allStyles_1.length; _a++) {\n var styles = allStyles_1[_a];\n if (styles) {\n result.push(typeof styles === 'function' ? styles(styleProps) : styles);\n }\n }\n if (result.length === 1) {\n return result[0];\n }\n else if (result.length) {\n // cliffkoh: I cannot figure out how to avoid the cast to any here.\n // It is something to do with the use of Omit in IStyleSet.\n // It might not be necessary once Omit becomes part of lib.d.ts (when we remove our own Omit and rely on\n // the official version).\n return concatStyleSets.apply(void 0, result);\n }\n return {};\n}\n//# sourceMappingURL=concatStyleSetsWithProps.js.map","import { Stylesheet } from './Stylesheet';\n/**\n * Separates the classes and style objects. Any classes that are pre-registered\n * args are auto expanded into objects.\n */\nexport function extractStyleParts() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n var objects = [];\n var stylesheet = Stylesheet.getInstance();\n function _processArgs(argsList) {\n for (var _i = 0, argsList_1 = argsList; _i < argsList_1.length; _i++) {\n var arg = argsList_1[_i];\n if (arg) {\n if (typeof arg === 'string') {\n if (arg.indexOf(' ') >= 0) {\n _processArgs(arg.split(' '));\n }\n else {\n var translatedArgs = stylesheet.argsFromClassName(arg);\n if (translatedArgs) {\n _processArgs(translatedArgs);\n }\n else {\n // Avoid adding the same class twice.\n if (classes.indexOf(arg) === -1) {\n classes.push(arg);\n }\n }\n }\n }\n else if (Array.isArray(arg)) {\n _processArgs(arg);\n }\n else if (typeof arg === 'object') {\n objects.push(arg);\n }\n }\n }\n }\n _processArgs(args);\n return {\n classes: classes,\n objects: objects,\n };\n}\n//# sourceMappingURL=extractStyleParts.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers a font face.\n * @public\n */\nexport function fontFace(font) {\n var stylesheet = Stylesheet.getInstance();\n var rule = serializeRuleEntries(getStyleOptions(), font);\n var className = stylesheet.classNameFromKey(rule);\n if (className) {\n return;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@font-face{\".concat(rule, \"}\"), true);\n stylesheet.cacheClassName(name, rule, [], ['font-face', rule]);\n}\n//# sourceMappingURL=fontFace.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline) {\n var stylesheet = Stylesheet.getInstance();\n var rulesArray = [];\n for (var prop in timeline) {\n if (timeline.hasOwnProperty(prop)) {\n rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n }\n }\n var rules = rulesArray.join('');\n var className = stylesheet.classNameFromKey(rules);\n if (className) {\n return className;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@keyframes \".concat(name, \"{\").concat(rules, \"}\"), true);\n stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n return name;\n}\n//# sourceMappingURL=keyframes.js.map","import { concatStyleSets } from './concatStyleSets';\nimport { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { applyRegistration, styleToRegistration } from './styleToClassName';\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n */\nexport function mergeStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n return mergeCssSets(styleSets, getStyleOptions());\n}\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(styleSets, options) {\n var classNameSet = { subComponentStyles: {} };\n var styleSet = styleSets[0];\n if (!styleSet && styleSets.length <= 1) {\n return { subComponentStyles: {} };\n }\n var concatenatedStyleSet = concatStyleSets.apply(void 0, styleSets);\n var registrations = [];\n for (var styleSetArea in concatenatedStyleSet) {\n if (concatenatedStyleSet.hasOwnProperty(styleSetArea)) {\n if (styleSetArea === 'subComponentStyles') {\n classNameSet.subComponentStyles = concatenatedStyleSet.subComponentStyles || {};\n continue;\n }\n var styles = concatenatedStyleSet[styleSetArea];\n var _a = extractStyleParts(styles), classes = _a.classes, objects = _a.objects;\n if (objects === null || objects === void 0 ? void 0 : objects.length) {\n var registration = styleToRegistration(options || {}, { displayName: styleSetArea }, objects);\n if (registration) {\n registrations.push(registration);\n // FIXME: classNameSet invalid types - exposed in TS 4.5 - cast needed\n classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');\n }\n }\n else {\n // FIXME: classNameSet invalid types - exposed in TS 4.5 - cast needed\n classNameSet[styleSetArea] = classes.join(' ');\n }\n }\n }\n for (var _i = 0, registrations_1 = registrations; _i < registrations_1.length; _i++) {\n var registration = registrations_1[_i];\n if (registration) {\n applyRegistration(registration, options === null || options === void 0 ? void 0 : options.specificityMultiplier);\n }\n }\n return classNameSet;\n}\n//# sourceMappingURL=mergeStyleSets.js.map","import { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { styleToClassName } from './styleToClassName';\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function mergeStyles() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return mergeCss(args, getStyleOptions());\n}\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n * Accepts a set of options that will be used when calculating styles.\n *\n * @public\n */\nexport function mergeCss(args, options) {\n var styleArgs = args instanceof Array ? args : [args];\n var _a = extractStyleParts(styleArgs), classes = _a.classes, objects = _a.objects;\n if (objects.length) {\n classes.push(styleToClassName(options || {}, objects));\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=mergeStyles.js.map","var _vendorSettings;\nexport function getVendorSettings() {\n var _a;\n if (!_vendorSettings) {\n // eslint-disable-next-line no-restricted-globals\n var doc = typeof document !== 'undefined' ? document : undefined;\n var nav = typeof navigator !== 'undefined' ? navigator : undefined;\n var userAgent = (_a = nav === null || nav === void 0 ? void 0 : nav.userAgent) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (!doc) {\n _vendorSettings = {\n isWebkit: true,\n isMoz: true,\n isOpera: true,\n isMs: true,\n };\n }\n else {\n _vendorSettings = {\n isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n };\n }\n }\n return _vendorSettings;\n}\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings) {\n _vendorSettings = vendorSettings;\n}\n//# sourceMappingURL=getVendorSettings.js.map","var rules = {};\nexport function kebabRules(rulePairs, index) {\n var rule = rulePairs[index];\n if (rule.charAt(0) !== '-') {\n rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n}\n//# sourceMappingURL=kebabRules.js.map","import { getVendorSettings } from '../getVendorSettings';\nvar autoPrefixNames = {\n 'user-select': 1,\n};\nexport function prefixRules(rulePairs, index) {\n var vendorSettings = getVendorSettings();\n var name = rulePairs[index];\n if (autoPrefixNames[name]) {\n var value = rulePairs[index + 1];\n if (autoPrefixNames[name]) {\n if (vendorSettings.isWebkit) {\n rulePairs.push('-webkit-' + name, value);\n }\n if (vendorSettings.isMoz) {\n rulePairs.push('-moz-' + name, value);\n }\n if (vendorSettings.isMs) {\n rulePairs.push('-ms-' + name, value);\n }\n if (vendorSettings.isOpera) {\n rulePairs.push('-o-' + name, value);\n }\n }\n }\n}\n//# sourceMappingURL=prefixRules.js.map","var NON_PIXEL_NUMBER_PROPS = [\n 'column-count',\n 'font-weight',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'fill-opacity',\n 'opacity',\n 'order',\n 'z-index',\n 'zoom',\n];\nexport function provideUnits(rulePairs, index) {\n var name = rulePairs[index];\n var value = rulePairs[index + 1];\n if (typeof value === 'number') {\n var isNonPixelProp = NON_PIXEL_NUMBER_PROPS.indexOf(name) > -1;\n var isVariableOrPrefixed = name.indexOf('--') > -1;\n var unit = isNonPixelProp || isVariableOrPrefixed ? '' : 'px';\n rulePairs[index + 1] = \"\".concat(value).concat(unit);\n }\n}\n//# sourceMappingURL=provideUnits.js.map","var _a;\nvar LEFT = 'left';\nvar RIGHT = 'right';\nvar NO_FLIP = '@noflip';\nvar NAME_REPLACEMENTS = (_a = {},\n _a[LEFT] = RIGHT,\n _a[RIGHT] = LEFT,\n _a);\nvar VALUE_REPLACEMENTS = {\n 'w-resize': 'e-resize',\n 'sw-resize': 'se-resize',\n 'nw-resize': 'ne-resize',\n};\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options, rulePairs, index) {\n if (options.rtl) {\n var name_1 = rulePairs[index];\n if (!name_1) {\n return;\n }\n var value = rulePairs[index + 1];\n if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n }\n else if (name_1.indexOf(LEFT) >= 0) {\n rulePairs[index] = name_1.replace(LEFT, RIGHT);\n }\n else if (name_1.indexOf(RIGHT) >= 0) {\n rulePairs[index] = name_1.replace(RIGHT, LEFT);\n }\n else if (String(value).indexOf(LEFT) >= 0) {\n rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n }\n else if (String(value).indexOf(RIGHT) >= 0) {\n rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n }\n else if (NAME_REPLACEMENTS[name_1]) {\n rulePairs[index] = NAME_REPLACEMENTS[name_1];\n }\n else if (VALUE_REPLACEMENTS[value]) {\n rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n }\n else {\n switch (name_1) {\n case 'margin':\n case 'padding':\n rulePairs[index + 1] = flipQuad(value);\n break;\n case 'box-shadow':\n rulePairs[index + 1] = negateNum(value, 0);\n break;\n }\n }\n }\n}\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value, partIndex) {\n var parts = value.split(' ');\n var numberVal = parseInt(parts[partIndex], 10);\n parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n return parts.join(' ');\n}\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value) {\n if (typeof value === 'string') {\n var parts = value.split(' ');\n if (parts.length === 4) {\n return \"\".concat(parts[0], \" \").concat(parts[3], \" \").concat(parts[2], \" \").concat(parts[1]);\n }\n }\n return value;\n}\n//# sourceMappingURL=rtlifyRules.js.map","import { __spreadArray } from \"tslib\";\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { tokenizeWithParentheses } from './tokenizeWithParentheses';\nvar DISPLAY_NAME = 'displayName';\nfunction getDisplayName(rules) {\n var rootStyle = rules && rules['&'];\n return rootStyle ? rootStyle.displayName : undefined;\n}\nvar globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals) {\n // We the selector does not have a :global() we can shortcut\n if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n return selectorWithGlobals;\n }\n var replacementInfo = [];\n var findGlobal = /\\:global\\((.+?)\\)/g;\n var match = null;\n // Create a result list for global selectors so we can replace them.\n while ((match = findGlobal.exec(selectorWithGlobals))) {\n // Only if the found selector is a comma separated list we'll process it.\n if (match[1].indexOf(',') > -1) {\n replacementInfo.push([\n match.index,\n match.index + match[0].length,\n // Wrap each of the found selectors in :global()\n match[1]\n .split(',')\n .map(function (v) { return \":global(\".concat(v.trim(), \")\"); })\n .join(', '),\n ]);\n }\n }\n // Replace the found selectors with their wrapped variants in reverse order\n return replacementInfo\n .reverse()\n .reduce(function (selector, _a) {\n var matchIndex = _a[0], matchEndIndex = _a[1], replacement = _a[2];\n var prefix = selector.slice(0, matchIndex);\n var suffix = selector.slice(matchEndIndex);\n return prefix + replacement + suffix;\n }, selectorWithGlobals);\n}\nfunction expandSelector(newSelector, currentSelector) {\n if (newSelector.indexOf(':global(') >= 0) {\n return newSelector.replace(globalSelectorRegExp, '$1');\n }\n else if (newSelector.indexOf(':') === 0) {\n return currentSelector + newSelector;\n }\n else if (newSelector.indexOf('&') < 0) {\n return currentSelector + ' ' + newSelector;\n }\n return newSelector;\n}\nfunction extractSelector(currentSelector, rules, selector, value) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (selector.indexOf('@') === 0) {\n selector = selector + '{' + currentSelector;\n extractRules([value], rules, selector);\n }\n else if (selector.indexOf(',') > -1) {\n expandCommaSeparatedGlobals(selector)\n .split(',')\n .map(function (s) { return s.trim(); })\n .forEach(function (separatedSelector) {\n return extractRules([value], rules, expandSelector(separatedSelector, currentSelector));\n });\n }\n else {\n extractRules([value], rules, expandSelector(selector, currentSelector));\n }\n}\nfunction extractRules(args, rules, currentSelector) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (currentSelector === void 0) { currentSelector = '&'; }\n var stylesheet = Stylesheet.getInstance();\n var currentRules = rules[currentSelector];\n if (!currentRules) {\n currentRules = {};\n rules[currentSelector] = currentRules;\n rules.__order.push(currentSelector);\n }\n for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {\n var arg = args_1[_i];\n // If the arg is a string, we need to look up the class map and merge.\n if (typeof arg === 'string') {\n var expandedRules = stylesheet.argsFromClassName(arg);\n if (expandedRules) {\n extractRules(expandedRules, rules, currentSelector);\n }\n // Else if the arg is an array, we need to recurse in.\n }\n else if (Array.isArray(arg)) {\n extractRules(arg, rules, currentSelector);\n }\n else {\n for (var prop in arg) {\n if (arg.hasOwnProperty(prop)) {\n var propValue = arg[prop];\n if (prop === 'selectors') {\n // every child is a selector.\n var selectors = arg.selectors;\n for (var newSelector in selectors) {\n if (selectors.hasOwnProperty(newSelector)) {\n extractSelector(currentSelector, rules, newSelector, selectors[newSelector]);\n }\n }\n }\n else if (typeof propValue === 'object') {\n // prop is a selector.\n if (propValue !== null) {\n extractSelector(currentSelector, rules, prop, propValue);\n }\n }\n else {\n if (propValue !== undefined) {\n // Else, add the rule to the currentSelector.\n if (prop === 'margin' || prop === 'padding') {\n expandQuads(currentRules, prop, propValue);\n }\n else {\n currentRules[prop] = propValue;\n }\n }\n }\n }\n }\n }\n }\n return rules;\n}\nfunction expandQuads(currentRules, name, value) {\n var parts = typeof value === 'string' ? tokenizeWithParentheses(value) : [value];\n if (parts.length === 0) {\n parts.push(value);\n }\n if (parts[parts.length - 1] === '!important') {\n // Remove !important from parts, and append it to each part individually\n parts = parts.slice(0, -1).map(function (p) { return p + ' !important'; });\n }\n currentRules[name + 'Top'] = parts[0];\n currentRules[name + 'Right'] = parts[1] || parts[0];\n currentRules[name + 'Bottom'] = parts[2] || parts[0];\n currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\nfunction getKeyForRules(options, rules) {\n var serialized = [options.rtl ? 'rtl' : 'ltr'];\n var hasProps = false;\n for (var _i = 0, _a = rules.__order; _i < _a.length; _i++) {\n var selector = _a[_i];\n serialized.push(selector);\n var rulesForSelector = rules[selector];\n for (var propName in rulesForSelector) {\n if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n hasProps = true;\n serialized.push(propName, rulesForSelector[propName]);\n }\n }\n }\n return hasProps ? serialized.join('') : undefined;\n}\nfunction repeatString(target, count) {\n if (count <= 0) {\n return '';\n }\n if (count === 1) {\n return target;\n }\n return target + repeatString(target, count - 1);\n}\nexport function serializeRuleEntries(options, ruleEntries) {\n if (!ruleEntries) {\n return '';\n }\n var allEntries = [];\n for (var entry in ruleEntries) {\n if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n allEntries.push(entry, ruleEntries[entry]);\n }\n }\n // Apply transforms.\n for (var i = 0; i < allEntries.length; i += 2) {\n kebabRules(allEntries, i);\n provideUnits(allEntries, i);\n rtlifyRules(options, allEntries, i);\n prefixRules(allEntries, i);\n }\n // Apply punctuation.\n for (var i = 1; i < allEntries.length; i += 4) {\n allEntries.splice(i, 1, ':', allEntries[i], ';');\n }\n return allEntries.join('');\n}\nexport function styleToRegistration(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var rules = extractRules(args);\n var key = getKeyForRules(options, rules);\n if (key) {\n var stylesheet = Stylesheet.getInstance();\n var registration = {\n className: stylesheet.classNameFromKey(key),\n key: key,\n args: args,\n };\n if (!registration.className) {\n registration.className = stylesheet.getClassName(getDisplayName(rules));\n var rulesToInsert = [];\n for (var _a = 0, _b = rules.__order; _a < _b.length; _a++) {\n var selector = _b[_a];\n rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n }\n registration.rulesToInsert = rulesToInsert;\n }\n return registration;\n }\n return undefined;\n}\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration, specificityMultiplier) {\n if (specificityMultiplier === void 0) { specificityMultiplier = 1; }\n var stylesheet = Stylesheet.getInstance();\n var className = registration.className, key = registration.key, args = registration.args, rulesToInsert = registration.rulesToInsert;\n if (rulesToInsert) {\n // rulesToInsert is an ordered array of selector/rule pairs.\n for (var i = 0; i < rulesToInsert.length; i += 2) {\n var rules = rulesToInsert[i + 1];\n if (rules) {\n var selector = rulesToInsert[i];\n selector = selector.replace(/&/g, repeatString(\".\".concat(registration.className), specificityMultiplier));\n // Insert. Note if a media query, we must close the query with a final bracket.\n var processedRule = \"\".concat(selector, \"{\").concat(rules, \"}\").concat(selector.indexOf('@') === 0 ? '}' : '');\n stylesheet.insertRule(processedRule);\n }\n }\n stylesheet.cacheClassName(className, key, args, rulesToInsert);\n }\n}\nexport function styleToClassName(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var registration = styleToRegistration.apply(void 0, __spreadArray([options], args, false));\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier);\n return registration.className;\n }\n return '';\n}\n//# sourceMappingURL=styleToClassName.js.map","/**\n * Split a string into tokens separated by whitespace, except all text within parentheses\n * is treated as a single token (whitespace is ignored within parentheses).\n *\n * Unlike String.split(' '), multiple consecutive space characters are collapsed and\n * removed from the returned array (including leading and trailing spaces).\n *\n * For example:\n * `tokenizeWithParentheses(\"3px calc(var(--x) / 2) 9px 0 \")`\n * => `[\"3px\", \"calc(var(--x) / 2)\", \"9px\", \"0\"]`\n *\n * @returns The array of tokens. Returns an empty array if the string was empty or contained only whitespace.\n */\nexport function tokenizeWithParentheses(value) {\n var parts = [];\n var partStart = 0;\n var parens = 0;\n for (var i = 0; i < value.length; i++) {\n switch (value[i]) {\n case '(':\n parens++;\n break;\n case ')':\n if (parens) {\n parens--;\n }\n break;\n case '\\t':\n case ' ':\n if (!parens) {\n // Add the new part if it's not an empty string\n if (i > partStart) {\n parts.push(value.substring(partStart, i));\n }\n partStart = i + 1;\n }\n break;\n }\n }\n // Add the last part\n if (partStart < value.length) {\n parts.push(value.substring(partStart));\n }\n return parts;\n}\n//# sourceMappingURL=tokenizeWithParentheses.js.map","/**\n * Enumeration of icon file names, and what extensions they map to.\n * Please keep items alphabetical. Items without extensions may require specific logic in the code to map.\n * Always use getFileTypeIconProps to get the most up-to-date icon at the right pixel density.\n */\nexport var FileTypeIconMap = {\n accdb: {\n extensions: ['accdb', 'mdb'],\n },\n archive: {\n extensions: ['7z', 'ace', 'arc', 'arj', 'dmg', 'gz', 'iso', 'lzh', 'pkg', 'rar', 'sit', 'tgz', 'tar', 'z'],\n },\n audio: {\n extensions: [\n 'aif',\n 'aiff',\n 'aac',\n 'alac',\n 'amr',\n 'ape',\n 'au',\n 'awb',\n 'dct',\n 'dss',\n 'dvf',\n 'flac',\n 'gsm',\n 'm4a',\n 'm4p',\n 'mid',\n 'mmf',\n 'mp3',\n 'oga',\n 'ra',\n 'rm',\n 'wav',\n 'wma',\n 'wv',\n ],\n },\n calendar: {\n extensions: ['ical', 'icalendar', 'ics', 'ifb', 'vcs'],\n },\n classifier: {\n extensions: ['classifier'],\n },\n clipchamp: {\n extensions: ['clipchamp'],\n },\n code: {\n extensions: [\n 'abap',\n 'ada',\n 'adp',\n 'ahk',\n 'as',\n 'as3',\n 'asc',\n 'ascx',\n 'asm',\n 'asp',\n 'awk',\n 'bash',\n 'bash_login',\n 'bash_logout',\n 'bash_profile',\n 'bashrc',\n 'bat',\n 'bib',\n 'bsh',\n 'build',\n 'builder',\n 'c',\n 'cbl',\n 'c++',\n 'capfile',\n 'cc',\n 'cfc',\n 'cfm',\n 'cfml',\n 'cl',\n 'clj',\n 'cls',\n 'cmake',\n 'cmd',\n 'coffee',\n 'config',\n 'cpp',\n 'cpt',\n 'cpy',\n 'cs',\n 'cshtml',\n 'cson',\n 'csproj',\n 'css',\n 'ctp',\n 'cxx',\n 'd',\n 'ddl',\n 'di',\n 'disco',\n 'dml',\n 'dtd',\n 'dtml',\n 'el',\n 'emakefile',\n 'erb',\n 'erl',\n 'f',\n 'f90',\n 'f95',\n 'fs',\n 'fsi',\n 'fsscript',\n 'fsx',\n 'gemfile',\n 'gemspec',\n 'gitconfig',\n 'go',\n 'groovy',\n 'gvy',\n 'h',\n 'h++',\n 'haml',\n 'handlebars',\n 'hbs',\n 'hcp',\n 'hh',\n 'hpp',\n 'hrl',\n 'hs',\n 'htc',\n 'hxx',\n 'idl',\n 'iim',\n 'inc',\n 'inf',\n 'ini',\n 'inl',\n 'ipp',\n 'irbrc',\n 'jade',\n 'jav',\n 'java',\n 'js',\n 'json',\n 'jsp',\n 'jsproj',\n 'jsx',\n 'l',\n 'less',\n 'lhs',\n 'lisp',\n 'log',\n 'lst',\n 'ltx',\n 'lua',\n 'm',\n 'mak',\n 'make',\n 'manifest',\n 'master',\n 'md',\n 'markdn',\n 'markdown',\n 'mdown',\n 'mkdn',\n 'ml',\n 'mli',\n 'mll',\n 'mly',\n 'mm',\n 'mud',\n 'nfo',\n 'opml',\n 'osascript',\n 'p',\n 'pas',\n 'patch',\n 'php',\n 'php2',\n 'php3',\n 'php4',\n 'php5',\n 'phtml',\n 'pl',\n 'pm',\n 'pod',\n 'pp',\n 'profile',\n 'ps1',\n 'ps1xml',\n 'psd1',\n 'psm1',\n 'pss',\n 'pt',\n 'py',\n 'pyw',\n 'r',\n 'rake',\n 'rb',\n 'rbx',\n 'rc',\n 'rdf',\n 're',\n 'reg',\n 'rest',\n 'resw',\n 'resx',\n 'rhtml',\n 'rjs',\n 'rprofile',\n 'rpy',\n 'rss',\n 'rst',\n 'ruby',\n 'rxml',\n 's',\n 'sass',\n 'scala',\n 'scm',\n 'sconscript',\n 'sconstruct',\n 'script',\n 'scss',\n 'sgml',\n 'sh',\n 'shtml',\n 'sml',\n 'svn-base',\n 'swift',\n 'sql',\n 'sty',\n 'tcl',\n 'tex',\n 'textile',\n 'tld',\n 'tli',\n 'tmpl',\n 'tpl',\n 'vb',\n 'vi',\n 'vim',\n 'vmg',\n 'webpart',\n 'wsp',\n 'wsdl',\n 'xhtml',\n 'xoml',\n 'xsd',\n 'xslt',\n 'yaml',\n 'yaws',\n 'yml',\n 'zsh',\n ],\n },\n contact: {\n extensions: ['vcf'],\n },\n /* css: {}, not broken out yet, snapping to 'code' for now */\n csv: {\n extensions: ['csv'],\n },\n designer: {\n extensions: ['design'],\n },\n desktopfolder: {},\n docset: {},\n documentsfolder: {},\n docx: {\n extensions: ['doc', 'docm', 'docx', 'docb'],\n },\n dotx: {\n extensions: ['dot', 'dotm', 'dotx'],\n },\n email: {\n extensions: ['eml', 'msg', 'oft', 'ost', 'pst'],\n },\n exe: {\n extensions: ['application', 'appref-ms', 'apk', 'app', 'appx', 'exe', 'ipa', 'msi', 'xap'],\n },\n favoritesfolder: {},\n folder: {},\n font: {\n extensions: ['ttf', 'otf', 'woff'],\n },\n form: {},\n genericfile: {},\n html: {\n extensions: ['htm', 'html', 'mht', 'mhtml'],\n },\n ipynb: {\n extensions: ['nnb', 'ipynb'],\n },\n link: {\n extensions: ['lnk', 'link', 'url', 'website', 'webloc'],\n },\n linkedfolder: {},\n listitem: {},\n loop: {\n extensions: ['fluid', 'loop', 'note'],\n },\n loopworkspace: {},\n officescript: {\n extensions: ['osts'],\n },\n splist: {},\n model: {\n extensions: [\n '3ds',\n '3mf',\n 'blend',\n 'cool',\n 'dae',\n 'df',\n 'dwfx',\n 'dwg',\n 'dxf',\n 'fbx',\n 'glb',\n 'gltf',\n 'holo',\n 'layer',\n 'layout',\n 'max',\n 'mcworld',\n 'mtl',\n 'obj',\n 'off',\n 'ply',\n 'skp',\n 'stp',\n 'stl',\n 't',\n 'thl',\n 'x',\n ],\n },\n mpp: {\n extensions: ['mpp'],\n },\n mpt: {\n extensions: ['mpt'],\n },\n multiple: {},\n one: {\n // This is a partial OneNote page or section export. Not whole notebooks, see \"onetoc\"\n extensions: ['one'],\n },\n onetoc: {\n // This is an entire OneNote notebook.\n extensions: ['ms-one-stub', 'onetoc', 'onetoc2', 'onepkg'], // This represents a complete, logical notebook.\n },\n pbiapp: {},\n pdf: {\n extensions: ['pdf'],\n },\n photo: {\n extensions: [\n 'arw',\n 'bmp',\n 'cr2',\n 'crw',\n 'dic',\n 'dicm',\n 'dcm',\n 'dcm30',\n 'dcr',\n 'dds',\n 'dib',\n 'dng',\n 'erf',\n 'gif',\n 'heic',\n 'heif',\n 'ico',\n 'jfi',\n 'jfif',\n 'jif',\n 'jpe',\n 'jpeg',\n 'jpg',\n 'jxr',\n 'kdc',\n 'mrw',\n 'nef',\n 'orf',\n 'pct',\n 'pict',\n 'png',\n 'pns',\n 'psb',\n 'psd',\n 'raw',\n 'tga',\n 'tif',\n 'tiff',\n 'wdp',\n ],\n },\n photo360: {},\n picturesfolder: {},\n potx: {\n extensions: ['pot', 'potm', 'potx'],\n },\n powerbi: {\n extensions: ['pbids', 'pbix'],\n },\n ppsx: {\n extensions: ['pps', 'ppsm', 'ppsx'],\n },\n pptx: {\n extensions: ['ppt', 'pptm', 'pptx', 'sldx', 'sldm'],\n },\n presentation: {\n extensions: ['odp', 'gslides', 'key'],\n },\n pub: {\n extensions: ['pub'],\n },\n spo: {\n extensions: ['aspx'],\n },\n sponews: {},\n spreadsheet: {\n extensions: ['odc', 'ods', 'gsheet', 'numbers', 'tsv'],\n },\n rtf: {\n extensions: ['epub', 'gdoc', 'odt', 'rtf', 'wri', 'pages'],\n },\n sharedfolder: {},\n playlist: {},\n sway: {},\n sysfile: {\n extensions: [\n 'bak',\n 'bin',\n 'cab',\n 'cache',\n 'cat',\n 'cer',\n 'class',\n 'dat',\n 'db',\n 'dbg',\n 'dl_',\n 'dll',\n 'ithmb',\n 'jar',\n 'kb',\n 'ldt',\n 'lrprev',\n 'pkpass',\n 'ppa',\n 'ppam',\n 'pdb',\n 'rom',\n 'thm',\n 'thmx',\n 'vsl',\n 'xla',\n 'xlam',\n 'xlb',\n 'xll',\n ],\n },\n txt: {\n extensions: ['dif', 'diff', 'readme', 'out', 'plist', 'properties', 'text', 'txt'],\n },\n vaultclosed: {},\n vaultopen: {},\n vector: {\n extensions: [\n 'ai',\n 'ait',\n 'cvs',\n 'dgn',\n 'gdraw',\n 'pd',\n 'emf',\n 'eps',\n 'fig',\n 'ind',\n 'indd',\n 'indl',\n 'indt',\n 'indb',\n 'ps',\n 'svg',\n 'svgz',\n 'wmf',\n 'oxps',\n 'xps',\n 'xd',\n 'sketch',\n ],\n },\n video: {\n extensions: [\n '3g2',\n '3gp',\n '3gp2',\n '3gpp',\n 'asf',\n 'avi',\n 'dvr-ms',\n 'flv',\n 'm1v',\n 'm4v',\n 'mkv',\n 'mod',\n 'mov',\n 'mm4p',\n 'mp2',\n 'mp2v',\n 'mp4',\n 'mp4v',\n 'mpa',\n 'mpe',\n 'mpeg',\n 'mpg',\n 'mpv',\n 'mpv2',\n 'mts',\n 'ogg',\n 'qt',\n 'swf',\n 'ts',\n 'vob',\n 'webm',\n 'wlmp',\n 'wm',\n 'wmv',\n 'wmx',\n ],\n },\n video360: {},\n vsdx: {\n extensions: ['vdx', 'vsd', 'vsdm', 'vsdx', 'vsw', 'vdw'],\n },\n vssx: {\n extensions: ['vss', 'vssm', 'vssx'],\n },\n vstx: {\n extensions: ['vst', 'vstm', 'vstx', 'vsx'],\n },\n whiteboard: {\n extensions: ['whiteboard', 'wbtx'],\n },\n xlsx: {\n extensions: ['xlc', 'xls', 'xlsb', 'xlsm', 'xlsx', 'xlw'],\n },\n xltx: {\n extensions: ['xlt', 'xltm', 'xltx'],\n },\n xml: {\n extensions: ['xaml', 'xml', 'xsl'],\n },\n xsn: {\n extensions: ['xsn'],\n },\n zip: {\n extensions: ['zip'],\n },\n};\n//# sourceMappingURL=FileTypeIconMap.js.map","/**\n * Enumerates special file type icons that do not map to any file extensions.\n * For example, the 'pptx' icon maps to the extensions 'ppt', 'pptm', 'pptx',\n * but the 'folder' icon does not map to any extensions and should be obtained\n * via this enum.\n */\nexport var FileIconType;\n(function (FileIconType) {\n FileIconType[FileIconType[\"docset\"] = 1] = \"docset\";\n FileIconType[FileIconType[\"folder\"] = 2] = \"folder\";\n FileIconType[FileIconType[\"genericFile\"] = 3] = \"genericFile\";\n FileIconType[FileIconType[\"listItem\"] = 4] = \"listItem\";\n FileIconType[FileIconType[\"sharedFolder\"] = 5] = \"sharedFolder\";\n FileIconType[FileIconType[\"multiple\"] = 6] = \"multiple\";\n FileIconType[FileIconType[\"stream\"] = 7] = \"stream\";\n FileIconType[FileIconType[\"news\"] = 8] = \"news\";\n FileIconType[FileIconType[\"desktopFolder\"] = 9] = \"desktopFolder\";\n FileIconType[FileIconType[\"documentsFolder\"] = 10] = \"documentsFolder\";\n FileIconType[FileIconType[\"picturesFolder\"] = 11] = \"picturesFolder\";\n FileIconType[FileIconType[\"linkedFolder\"] = 12] = \"linkedFolder\";\n FileIconType[FileIconType[\"list\"] = 13] = \"list\";\n FileIconType[FileIconType[\"form\"] = 14] = \"form\";\n FileIconType[FileIconType[\"sway\"] = 15] = \"sway\";\n FileIconType[FileIconType[\"playlist\"] = 16] = \"playlist\";\n FileIconType[FileIconType[\"loopworkspace\"] = 17] = \"loopworkspace\";\n})(FileIconType || (FileIconType = {}));\n//# sourceMappingURL=FileIconType.js.map","import { FileTypeIconMap } from './FileTypeIconMap';\nimport { FileIconType } from './FileIconType';\nvar _extensionToIconName;\nvar GENERIC_FILE = 'genericfile';\nvar FOLDER = 'folder';\nvar SHARED_FOLDER = 'sharedfolder';\nvar DOCSET_FOLDER = 'docset';\nvar LIST_ITEM = 'listitem';\nvar LIST = 'splist';\nvar MULTIPLE_ITEMS = 'multiple';\nvar NEWS = 'sponews';\nvar STREAM = 'video';\nvar DESKTOP_FOLDER = 'desktopfolder';\nvar DOCUMENTS_FOLDER = 'documentsfolder';\nvar PICTURES_FOLDER = 'picturesfolder';\nvar LINKED_FOLDER = 'linkedfolder';\nvar FORM = 'form';\nvar SWAY = 'sway';\nvar PLAYLIST = 'playlist';\nvar LOOP_WORKSPACE = 'loopworkspace';\nexport var DEFAULT_ICON_SIZE = 16;\n/**\n * This function returns properties for a file type icon given the IFileTypeIconOptions.\n * It accounts for different device pixel ratios. For example,\n * `getFileTypeIconProps({ extension: 'doc', size: 16, imageFileType: 'png' })`\n * will return `{ iconName: 'docx16_2x_png' }` if the `devicePixelRatio` is 2.\n * @param options\n */\nexport function getFileTypeIconProps(options) {\n // First, obtain the base name of the icon using the extension or type.\n var iconBaseName;\n var extension = options.extension, type = options.type, size = options.size, imageFileType = options.imageFileType;\n iconBaseName = getFileTypeIconNameFromExtensionOrType(extension, type);\n // Next, obtain the suffix using the icon size, user's device pixel ration, and\n // preference for svg or png\n var _size = size || DEFAULT_ICON_SIZE;\n var suffix = getFileTypeIconSuffix(_size, imageFileType);\n return { iconName: iconBaseName + suffix, 'aria-label': extension };\n}\nexport function getFileTypeIconNameFromExtensionOrType(extension, type) {\n var iconBaseName;\n if (extension) {\n if (!_extensionToIconName) {\n _extensionToIconName = {};\n for (var iconName in FileTypeIconMap) {\n if (FileTypeIconMap.hasOwnProperty(iconName)) {\n var extensions = FileTypeIconMap[iconName].extensions;\n if (extensions) {\n for (var i = 0; i < extensions.length; i++) {\n _extensionToIconName[extensions[i]] = iconName;\n }\n }\n }\n }\n }\n // Strip periods, force lowercase.\n extension = extension.replace('.', '').toLowerCase();\n return _extensionToIconName[extension] || GENERIC_FILE;\n }\n else if (type) {\n switch (type) {\n case FileIconType.docset:\n iconBaseName = DOCSET_FOLDER;\n break;\n case FileIconType.folder:\n iconBaseName = FOLDER;\n break;\n case FileIconType.listItem:\n iconBaseName = LIST_ITEM;\n break;\n case FileIconType.sharedFolder:\n iconBaseName = SHARED_FOLDER;\n break;\n case FileIconType.stream:\n iconBaseName = STREAM;\n break;\n case FileIconType.multiple:\n iconBaseName = MULTIPLE_ITEMS;\n break;\n case FileIconType.news:\n iconBaseName = NEWS;\n break;\n case FileIconType.desktopFolder:\n iconBaseName = DESKTOP_FOLDER;\n break;\n case FileIconType.documentsFolder:\n iconBaseName = DOCUMENTS_FOLDER;\n break;\n case FileIconType.picturesFolder:\n iconBaseName = PICTURES_FOLDER;\n break;\n case FileIconType.linkedFolder:\n iconBaseName = LINKED_FOLDER;\n break;\n case FileIconType.list:\n iconBaseName = LIST;\n break;\n case FileIconType.form:\n iconBaseName = FORM;\n break;\n case FileIconType.sway:\n iconBaseName = SWAY;\n break;\n case FileIconType.playlist:\n iconBaseName = PLAYLIST;\n break;\n case FileIconType.loopworkspace:\n iconBaseName = LOOP_WORKSPACE;\n break;\n }\n }\n return iconBaseName || GENERIC_FILE;\n}\nexport function getFileTypeIconSuffix(size, imageFileType) {\n if (imageFileType === void 0) { imageFileType = 'svg'; }\n var devicePixelRatio = window.devicePixelRatio;\n var devicePixelRatioSuffix = ''; // Default is 1x\n // SVGs scale well, so you can generally use the default image.\n // 1.5x is a special case where SVGs need a different image.\n if (imageFileType === 'svg' && devicePixelRatio > 1 && devicePixelRatio <= 1.5) {\n // Currently missing 1.5x SVGs at size 20, snap to 1x for now\n if (size !== 20) {\n devicePixelRatioSuffix = '_1.5x';\n }\n }\n else if (imageFileType === 'png') {\n // To look good, PNGs should use a different image for higher device pixel ratios\n if (devicePixelRatio > 1 && devicePixelRatio <= 1.5) {\n // Currently missing 1.5x icons for size 20, snap to 2x for now\n devicePixelRatioSuffix = size === 20 ? '_2x' : '_1.5x';\n }\n else if (devicePixelRatio > 1.5 && devicePixelRatio <= 2) {\n devicePixelRatioSuffix = '_2x';\n }\n else if (devicePixelRatio > 2 && devicePixelRatio <= 3) {\n devicePixelRatioSuffix = '_3x';\n }\n else if (devicePixelRatio > 3) {\n devicePixelRatioSuffix = '_4x';\n }\n }\n return size + devicePixelRatioSuffix + '_' + imageFileType;\n}\n//# sourceMappingURL=getFileTypeIconProps.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, findScrollableParent, createMergedRef, isElementVisibleAndNotHidden, } from '@fluentui/utilities';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getTheme } from '@fluentui/style-utilities';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar TABINDEX = 'tabindex';\nvar NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nvar NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nvar LARGE_DISTANCE_FROM_CENTER = 999999999;\nvar LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\nvar focusZoneStyles;\nvar focusZoneClass = 'ms-FocusZone';\n/**\n * Raises a click on a target element based on a keyboard event.\n */\nfunction raiseClickFromKeyboardEvent(target, ev) {\n var event;\n if (typeof MouseEvent === 'function') {\n event = new MouseEvent('click', {\n ctrlKey: ev === null || ev === void 0 ? void 0 : ev.ctrlKey,\n metaKey: ev === null || ev === void 0 ? void 0 : ev.metaKey,\n shiftKey: ev === null || ev === void 0 ? void 0 : ev.shiftKey,\n altKey: ev === null || ev === void 0 ? void 0 : ev.altKey,\n bubbles: ev === null || ev === void 0 ? void 0 : ev.bubbles,\n cancelable: ev === null || ev === void 0 ? void 0 : ev.cancelable,\n });\n }\n else {\n // eslint-disable-next-line no-restricted-globals\n event = document.createEvent('MouseEvents');\n // eslint-disable-next-line deprecation/deprecation\n event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, \n // eslint-disable-next-line no-restricted-globals\n window, // not using getWindow() since this can only be run client side\n 0, // detail\n 0, // screen x\n 0, // screen y\n 0, // client x\n 0, // client y\n ev ? ev.ctrlKey : false, ev ? ev.altKey : false, ev ? ev.shiftKey : false, ev ? ev.metaKey : false, 0, // button\n null);\n }\n target.dispatchEvent(event);\n}\n// Helper function that will return a class for when the root is focused\nfunction getRootClass() {\n if (!focusZoneStyles) {\n focusZoneStyles = mergeStyles({\n selectors: {\n ':focus': {\n outline: 'none',\n },\n },\n }, focusZoneClass);\n }\n return focusZoneStyles;\n}\nvar _allInstances = {};\nvar _outerZones = new Set();\nvar ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search', 'textarea'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nvar FocusZone = /** @class */ (function (_super) {\n __extends(FocusZone, _super);\n function FocusZone(props) {\n var _this = this;\n var _a, _b, _c, _d;\n _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._onFocus = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var _a = _this.props, onActiveElementChanged = _a.onActiveElementChanged, \n // eslint-disable-next-line deprecation/deprecation\n doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, stopFocusPropagation = _a.stopFocusPropagation, \n // eslint-disable-next-line deprecation/deprecation\n onFocusNotification = _a.onFocusNotification, onFocus = _a.onFocus, shouldFocusInnerElementWhenReceivedFocus = _a.shouldFocusInnerElementWhenReceivedFocus, defaultTabbableElement = _a.defaultTabbableElement;\n var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);\n var newActiveElement;\n if (isImmediateDescendant) {\n newActiveElement = ev.target;\n }\n else {\n var parentElement = ev.target;\n while (parentElement && parentElement !== _this._root.current) {\n if (isElementTabbable(parentElement) && _this._isImmediateDescendantOfZone(parentElement)) {\n newActiveElement = parentElement;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n }\n // If an inner focusable element should be focused when FocusZone container receives focus\n if (shouldFocusInnerElementWhenReceivedFocus && ev.target === _this._root.current) {\n var maybeElementToFocus = defaultTabbableElement &&\n typeof defaultTabbableElement === 'function' &&\n _this._root.current &&\n defaultTabbableElement(_this._root.current);\n // try to focus defaultTabbable element\n if (maybeElementToFocus && isElementTabbable(maybeElementToFocus)) {\n newActiveElement = maybeElementToFocus;\n maybeElementToFocus.focus();\n }\n else {\n // force focus on first focusable element\n _this.focus(true);\n if (_this._activeElement) {\n // set to null as new active element was handled in method above\n newActiveElement = null;\n }\n }\n }\n var initialElementFocused = !_this._activeElement;\n // If the new active element is a child of this zone and received focus,\n // update alignment an immediate descendant\n if (newActiveElement && newActiveElement !== _this._activeElement) {\n if (isImmediateDescendant || initialElementFocused) {\n _this._setFocusAlignment(newActiveElement, true, true);\n }\n _this._activeElement = newActiveElement;\n if (initialElementFocused) {\n _this._updateTabIndexes();\n }\n }\n if (onActiveElementChanged) {\n onActiveElementChanged(_this._activeElement, ev);\n }\n if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n ev.stopPropagation();\n }\n if (onFocus) {\n onFocus(ev);\n }\n else if (onFocusNotification) {\n onFocusNotification();\n }\n };\n _this._onBlur = function () {\n _this._setParkedFocus(false);\n };\n _this._onMouseDown = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var disabled = _this.props.disabled;\n if (disabled) {\n return;\n }\n var target = ev.target;\n var path = [];\n while (target && target !== _this._root.current) {\n path.push(target);\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n }\n while (path.length) {\n target = path.pop();\n if (target && isElementTabbable(target)) {\n _this._setActiveElement(target, true);\n }\n if (isElementFocusZone(target)) {\n // Stop here since the focus zone will take care of its own children.\n break;\n }\n }\n };\n /**\n * Handle the keystrokes.\n */\n _this._onKeyDown = function (ev, theme) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, direction = _a.direction, disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke, pagingSupportDisabled = _a.pagingSupportDisabled, shouldEnterInnerZone = _a.shouldEnterInnerZone;\n if (disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the default has been prevented, do not process keyboard events.\n if (ev.isDefaultPrevented()) {\n return;\n }\n if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {\n // If this element has focus, it is being controlled by a parent.\n // Ignore the keystroke.\n return;\n }\n if (((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n _this._isImmediateDescendantOfZone(ev.target)) {\n // Try to focus\n var innerZone = _this._getFirstInnerZone();\n if (innerZone) {\n if (!innerZone.focus(true)) {\n return;\n }\n }\n else if (isElementFocusSubZone(ev.target)) {\n if (!_this.focusElement(getNextElement(ev.target, ev.target.firstChild, true))) {\n return;\n }\n }\n else {\n return;\n }\n }\n else if (ev.altKey) {\n return;\n }\n else {\n // eslint-disable-next-line @fluentui/deprecated-keyboard-event-props, deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n if (_this._shouldRaiseClicksOnSpace && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n case KeyCodes.left:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusLeft(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.right:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusRight(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.up:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusUp()) {\n break;\n }\n }\n return;\n case KeyCodes.down:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusDown()) {\n break;\n }\n }\n return;\n case KeyCodes.pageDown:\n if (!pagingSupportDisabled && _this._moveFocusPaging(true)) {\n break;\n }\n return;\n case KeyCodes.pageUp:\n if (!pagingSupportDisabled && _this._moveFocusPaging(false)) {\n break;\n }\n return;\n case KeyCodes.tab:\n if (\n // eslint-disable-next-line deprecation/deprecation\n _this.props.allowTabKey ||\n _this.props.handleTabKey === FocusZoneTabbableElements.all ||\n (_this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n _this._isElementInput(ev.target))) {\n var focusChanged = false;\n _this._processingTabKey = true;\n if (direction === FocusZoneDirection.vertical ||\n !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {\n focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();\n }\n else {\n var tabWithDirection = getRTL(theme) ? !ev.shiftKey : ev.shiftKey;\n focusChanged = tabWithDirection ? _this._moveFocusLeft(theme) : _this._moveFocusRight(theme);\n }\n _this._processingTabKey = false;\n if (focusChanged) {\n break;\n }\n else if (_this.props.shouldResetActiveElementWhenTabFromZone) {\n _this._activeElement = null;\n }\n }\n return;\n case KeyCodes.home:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, false))) {\n return false;\n }\n var firstChild = _this._root.current && _this._root.current.firstChild;\n if (_this._root.current &&\n firstChild &&\n _this.focusElement(getNextElement(_this._root.current, firstChild, true))) {\n break;\n }\n return;\n case KeyCodes.end:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, true))) {\n return false;\n }\n var lastChild = _this._root.current && _this._root.current.lastChild;\n if (_this._root.current &&\n _this.focusElement(getPreviousElement(_this._root.current, lastChild, true, true, true))) {\n break;\n }\n return;\n case KeyCodes.enter:\n if (_this._shouldRaiseClicksOnEnter && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n default:\n return;\n }\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._getHorizontalDistanceFromCenter = function (isForward, \n // eslint-disable-next-line deprecation/deprecation\n activeRect, \n // eslint-disable-next-line deprecation/deprecation\n targetRect) {\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = _this._focusAlignment.left || _this._focusAlignment.x || 0;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n var isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n return 0;\n }\n return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n };\n // Manage componentRef resolution.\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('FocusZone', props, {\n rootProps: undefined,\n allowTabKey: 'handleTabKey',\n elementType: 'as',\n ariaDescribedBy: 'aria-describedby',\n ariaLabelledBy: 'aria-labelledby',\n });\n }\n _this._id = getId('FocusZone');\n _this._focusAlignment = {\n left: 0,\n top: 0,\n };\n _this._processingTabKey = false;\n var shouldRaiseClicksFallback = (_b = (_a = props.shouldRaiseClicks) !== null && _a !== void 0 ? _a : FocusZone.defaultProps.shouldRaiseClicks) !== null && _b !== void 0 ? _b : true;\n _this._shouldRaiseClicksOnEnter = (_c = props.shouldRaiseClicksOnEnter) !== null && _c !== void 0 ? _c : shouldRaiseClicksFallback;\n _this._shouldRaiseClicksOnSpace = (_d = props.shouldRaiseClicksOnSpace) !== null && _d !== void 0 ? _d : shouldRaiseClicksFallback;\n return _this;\n }\n /** Used for testing purposes only. */\n FocusZone.getOuterZones = function () {\n return _outerZones.size;\n };\n /**\n * Handle global tab presses so that we can patch tabindexes on the fly.\n * HEADS UP: This must not be an arrow function in order to be referentially equal among instances\n * for ref counting to work correctly!\n */\n FocusZone._onKeyDownCapture = function (ev) {\n // eslint-disable-next-line deprecation/deprecation, @fluentui/deprecated-keyboard-event-props\n if (ev.which === KeyCodes.tab) {\n _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });\n }\n };\n FocusZone.prototype.componentDidMount = function () {\n var root = this._root.current;\n _allInstances[this._id] = this;\n if (root) {\n var parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n if (isElementFocusZone(parentElement)) {\n this._isInnerZone = true;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n if (!this._isInnerZone) {\n _outerZones.add(this);\n this._root.current && this._root.current.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n // Assign initial tab indexes so that we can set initial focus as appropriate.\n this._updateTabIndexes();\n if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement);\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (this.props.defaultActiveElement) {\n // eslint-disable-next-line deprecation/deprecation\n this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);\n }\n if (this.props.shouldFocusOnMount) {\n this.focus();\n }\n }\n };\n FocusZone.prototype.componentDidUpdate = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n // If either _activeElement or _defaultFocusElement are no longer contained by _root,\n // reset those variables (and update tab indexes) to avoid memory leaks\n if ((this._activeElement && !elementContains(this._root.current, this._activeElement, ALLOW_VIRTUAL_ELEMENTS)) ||\n (this._defaultFocusElement &&\n !elementContains(this._root.current, this._defaultFocusElement, ALLOW_VIRTUAL_ELEMENTS))) {\n this._activeElement = null;\n this._defaultFocusElement = null;\n this._updateTabIndexes();\n }\n if (!this.props.preventFocusRestoration &&\n doc &&\n this._lastIndexPath &&\n (doc.activeElement === doc.body || doc.activeElement === null || doc.activeElement === root)) {\n // The element has been removed after the render, attempt to restore focus.\n var elementToFocus = getFocusableByIndexPath(root, this._lastIndexPath);\n if (elementToFocus) {\n this._setActiveElement(elementToFocus, true);\n elementToFocus.focus();\n this._setParkedFocus(false);\n }\n else {\n // We had a focus path to restore, but now that path is unresolvable. Park focus\n // on the container until we can try again.\n this._setParkedFocus(true);\n }\n }\n };\n FocusZone.prototype.componentWillUnmount = function () {\n delete _allInstances[this._id];\n if (!this._isInnerZone) {\n _outerZones.delete(this);\n this._root.current && this._root.current.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n if (this._root.current) {\n this._root.current.removeEventListener('blur', this._onBlur, true);\n }\n this._activeElement = null;\n this._defaultFocusElement = null;\n };\n FocusZone.prototype.render = function () {\n var _this = this;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, tag = _a.as, elementType = _a.elementType, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;\n var divProps = getNativeProps(this.props, htmlElementProperties);\n var Tag = tag || elementType || 'div';\n // Note, right before rendering/reconciling proceeds, we need to record if focus\n // was in the zone before the update. This helper will track this and, if focus\n // was actually in the zone, what the index path to the element is at this time.\n // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n // the case the element was removed.\n this._evaluateFocusBeforeRender();\n // Only support RTL defined in global theme, not contextual theme/RTL.\n var theme = getTheme();\n return (React.createElement(Tag, __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, divProps, rootProps, { \n // Once the getClassName correctly memoizes inputs this should\n // be replaced so that className is passed to getRootClass and is included there so\n // the class names will always be in the same order.\n className: css(getRootClass(), className), \n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._root), \"data-focuszone-id\": this._id, \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: function (ev) { return _this._onKeyDown(ev, theme); }, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));\n };\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focus = function (forceIntoFirstElement, bypassHiddenElements) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (bypassHiddenElements === void 0) { bypassHiddenElements = false; }\n if (this._root.current) {\n if (!forceIntoFirstElement &&\n this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n this._isInnerZone) {\n var ownerZoneElement = this._getOwnerZone(this._root.current);\n if (ownerZoneElement !== this._root.current) {\n var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n return !!ownerZone && ownerZone.focusElement(this._root.current);\n }\n return false;\n }\n else if (!forceIntoFirstElement &&\n this._activeElement &&\n elementContains(this._root.current, this._activeElement) &&\n isElementTabbable(this._activeElement) &&\n (!bypassHiddenElements || isElementVisibleAndNotHidden(this._activeElement))) {\n this._activeElement.focus();\n return true;\n }\n else {\n var firstChild = this._root.current.firstChild;\n return this.focusElement(getNextElement(this._root.current, firstChild, true, undefined, undefined, undefined, undefined, undefined, bypassHiddenElements));\n }\n }\n return false;\n };\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusLast = function () {\n if (this._root.current) {\n var lastChild = this._root.current && this._root.current.lastChild;\n return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true));\n }\n return false;\n };\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param element - The child element within the zone to focus.\n * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusElement = function (element, forceAlignment) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onBeforeFocus = _a.onBeforeFocus, shouldReceiveFocus = _a.shouldReceiveFocus;\n if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n return false;\n }\n if (element) {\n // when we set focus to a specific child, we should recalculate the alignment depending on its position.\n this._setActiveElement(element, forceAlignment);\n if (this._activeElement) {\n this._activeElement.focus();\n }\n return true;\n }\n return false;\n };\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n * rather than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n FocusZone.prototype.setFocusAlignment = function (point) {\n this._focusAlignment = point;\n };\n Object.defineProperty(FocusZone.prototype, \"defaultFocusElement\", {\n get: function () {\n return this._defaultFocusElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FocusZone.prototype, \"activeElement\", {\n get: function () {\n return this._activeElement;\n },\n enumerable: false,\n configurable: true\n });\n FocusZone.prototype._evaluateFocusBeforeRender = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n if (doc) {\n var focusedElement = doc.activeElement;\n // Only update the index path if we are not parked on the root.\n if (focusedElement !== root) {\n var shouldRestoreFocus = elementContains(root, focusedElement, false);\n this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root, focusedElement) : undefined;\n }\n }\n };\n /**\n * When focus is in the zone at render time but then all focusable elements are removed,\n * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n * focus to the closest path from previous. If the user tabs away from the parked container,\n * we restore focusability to the pre-parked state.\n */\n FocusZone.prototype._setParkedFocus = function (isParked) {\n var root = this._root.current;\n if (root && this._isParked !== isParked) {\n this._isParked = isParked;\n if (isParked) {\n if (!this.props.allowFocusRoot) {\n this._parkedTabIndex = root.getAttribute('tabindex');\n root.setAttribute('tabindex', '-1');\n }\n root.focus();\n }\n else if (!this.props.allowFocusRoot) {\n if (this._parkedTabIndex) {\n root.setAttribute('tabindex', this._parkedTabIndex);\n this._parkedTabIndex = undefined;\n }\n else {\n root.removeAttribute('tabindex');\n }\n }\n }\n };\n FocusZone.prototype._setActiveElement = function (element, forceAlignment) {\n var previousActiveElement = this._activeElement;\n this._activeElement = element;\n if (previousActiveElement) {\n if (isElementFocusZone(previousActiveElement)) {\n this._updateTabIndexes(previousActiveElement);\n }\n previousActiveElement.tabIndex = -1;\n }\n if (this._activeElement) {\n if (!this._focusAlignment || forceAlignment) {\n this._setFocusAlignment(element, true, true);\n }\n this._activeElement.tabIndex = 0;\n }\n };\n FocusZone.prototype._preventDefaultWhenHandled = function (ev) {\n this.props.preventDefaultWhenHandled && ev.preventDefault();\n };\n /**\n * Walk up the dom try to find a focusable element.\n */\n FocusZone.prototype._tryInvokeClickForFocusable = function (targetElement, ev) {\n var target = targetElement;\n if (target === this._root.current) {\n return false;\n }\n do {\n if (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SUMMARY') {\n return false;\n }\n if (this._isImmediateDescendantOfZone(target) &&\n target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {\n raiseClickFromKeyboardEvent(target, ev);\n return true;\n }\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n } while (target !== this._root.current);\n return false;\n };\n /**\n * Traverse to find first child zone.\n */\n FocusZone.prototype._getFirstInnerZone = function (rootElement) {\n rootElement = rootElement || this._activeElement || this._root.current;\n if (!rootElement) {\n return null;\n }\n if (isElementFocusZone(rootElement)) {\n return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var child = rootElement.firstElementChild;\n while (child) {\n if (isElementFocusZone(child)) {\n return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var match = this._getFirstInnerZone(child);\n if (match) {\n return match;\n }\n child = child.nextElementSibling;\n }\n return null;\n };\n FocusZone.prototype._moveFocus = function (isForward, \n // eslint-disable-next-line deprecation/deprecation\n getDistanceFromCenter, ev, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n var candidateDistance = -1;\n var candidateElement = undefined;\n var changedFocus = false;\n var isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n do {\n element = (isForward ? getNextElement(this._root.current, element) : getPreviousElement(this._root.current, element));\n if (isBidirectional) {\n if (element) {\n var targetRect = element.getBoundingClientRect();\n // eslint-disable-next-line deprecation/deprecation\n var elementDistance = getDistanceFromCenter(activeRect, targetRect);\n if (elementDistance === -1 && candidateDistance === -1) {\n candidateElement = element;\n break;\n }\n if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n if (candidateDistance >= 0 && elementDistance < 0) {\n break;\n }\n }\n }\n else {\n candidateElement = element;\n break;\n }\n } while (element);\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n else {\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n }\n return changedFocus;\n };\n FocusZone.prototype._moveFocusDown = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (\n // eslint-disable-next-line deprecation/deprecation\n this._moveFocus(true, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n if (targetRectTop < activeRectBottom) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusUp = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (\n // eslint-disable-next-line deprecation/deprecation\n this._moveFocus(false, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectBottom = Math.floor(targetRect.bottom);\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectTop = Math.floor(activeRect.top);\n if (targetRectBottom > activeRectTop) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusLeft = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(getRTL(theme), \n // eslint-disable-next-line deprecation/deprecation\n function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n // This is important, because we want to be comparing the top of the target rect\n // with the bottom of the active rect.\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.right <= activeRect.right &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = activeRect.right - targetRect.right;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusRight = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(!getRTL(theme), \n // eslint-disable-next-line deprecation/deprecation\n function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n // This is important, because we want to be comparing the bottom of the target rect\n // with the top of the active rect.\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.left >= activeRect.left &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = targetRect.left - activeRect.left;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusPaging = function (isForward, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var scrollableParent = findScrollableParent(element);\n if (!scrollableParent) {\n return false;\n }\n var candidateDistance = -1;\n var candidateElement = undefined;\n var targetTop = -1;\n var targetBottom = -1;\n var pagesize = scrollableParent.clientHeight;\n var activeRect = element.getBoundingClientRect();\n do {\n element = isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element);\n if (element) {\n var targetRect = element.getBoundingClientRect();\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n var isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n var isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n break;\n }\n if (elementDistance > -1) {\n // for paging down\n if (isForward && targetRectTop > targetTop) {\n targetTop = targetRectTop;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (!isForward && targetRectBottom < targetBottom) {\n // for paging up\n targetBottom = targetRectBottom;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n }\n }\n } while (element);\n var changedFocus = false;\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n this._setFocusAlignment(candidateElement, false, true);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n return changedFocus;\n };\n FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {\n if (this.props.direction === FocusZoneDirection.bidirectional &&\n (!this._focusAlignment || isHorizontal || isVertical)) {\n var rect = element.getBoundingClientRect();\n var left = rect.left + rect.width / 2;\n var top_1 = rect.top + rect.height / 2;\n if (!this._focusAlignment) {\n this._focusAlignment = { left: left, top: top_1 };\n }\n if (isHorizontal) {\n this._focusAlignment.left = left;\n }\n if (isVertical) {\n this._focusAlignment.top = top_1;\n }\n }\n };\n FocusZone.prototype._isImmediateDescendantOfZone = function (element) {\n return this._getOwnerZone(element) === this._root.current;\n };\n FocusZone.prototype._getOwnerZone = function (element) {\n var parentElement = getParent(element, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n if (isElementFocusZone(parentElement)) {\n return parentElement;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n return parentElement;\n };\n FocusZone.prototype._updateTabIndexes = function (element) {\n if (!this._activeElement &&\n this.props.defaultTabbableElement &&\n typeof this.props.defaultTabbableElement === 'function') {\n this._activeElement = this.props.defaultTabbableElement(this._root.current);\n }\n if (!element && this._root.current) {\n this._defaultFocusElement = null;\n element = this._root.current;\n if (this._activeElement && !elementContains(element, this._activeElement)) {\n this._activeElement = null;\n }\n }\n // If active element changes state to disabled, set it to null.\n // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n if (this._activeElement && !isElementTabbable(this._activeElement)) {\n this._activeElement = null;\n }\n var childNodes = element && element.children;\n for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n var child = childNodes[childIndex];\n if (!isElementFocusZone(child)) {\n // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n child.setAttribute(TABINDEX, '-1');\n }\n if (isElementTabbable(child)) {\n if (this.props.disabled) {\n child.setAttribute(TABINDEX, '-1');\n }\n else if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n // Disgusting IE hack. Sad face.\n child.setAttribute('focusable', 'false');\n }\n }\n else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n this._updateTabIndexes(child);\n }\n };\n FocusZone.prototype._isContentEditableElement = function (element) {\n return element && element.getAttribute('contenteditable') === 'true';\n };\n FocusZone.prototype._isElementInput = function (element) {\n if (element &&\n element.tagName &&\n (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {\n return true;\n }\n return false;\n };\n FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {\n // If a tab was used, we want to focus on the next element.\n if (!this._processingTabKey &&\n element &&\n element.type &&\n ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {\n var selectionStart = element.selectionStart;\n var selectionEnd = element.selectionEnd;\n var isRangeSelected = selectionStart !== selectionEnd;\n var inputValue = element.value;\n var isReadonly = element.readOnly;\n // We shouldn't lose focus in the following cases:\n // 1. There is range selected.\n // 2. When selection start is larger than 0 and it is backward and not readOnly.\n // 3. when selection start is not the end of length, it is forward and not readOnly.\n // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n // determined by calling the callback shouldInputLoseFocusOnArrowKey\n if (isRangeSelected ||\n (selectionStart > 0 && !isForward && !isReadonly) ||\n (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n (!!this.props.handleTabKey &&\n !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {\n return false;\n }\n }\n return true;\n };\n FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {\n return this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n };\n /**\n * Returns true if the element is a descendant of the FocusZone through a React portal.\n */\n FocusZone.prototype._portalContainsElement = function (element) {\n return element && !!this._root.current && portalContainsElement(element, this._root.current);\n };\n FocusZone.prototype._getDocument = function () {\n return getDocument(this._root.current);\n };\n FocusZone.defaultProps = {\n isCircularNavigation: false,\n direction: FocusZoneDirection.bidirectional,\n shouldRaiseClicks: true,\n // Hardcoding uncontrolled flag for proper interop with FluentUI V9.\n 'data-tabster': '{\"uncontrolled\": {}}',\n };\n return FocusZone;\n}(React.Component));\nexport { FocusZone };\n//# sourceMappingURL=FocusZone.js.map","/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0,\n /** All tabbing action is allowed */\n all: 1,\n /** Tabbing is allowed only on input elements */\n inputOnly: 2,\n};\n/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneDirection;\n(function (FocusZoneDirection) {\n /** Only react to up/down arrows. */\n FocusZoneDirection[FocusZoneDirection[\"vertical\"] = 0] = \"vertical\";\n /** Only react to left/right arrows. */\n FocusZoneDirection[FocusZoneDirection[\"horizontal\"] = 1] = \"horizontal\";\n /** React to all arrows. */\n FocusZoneDirection[FocusZoneDirection[\"bidirectional\"] = 2] = \"bidirectional\";\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n FocusZoneDirection[FocusZoneDirection[\"domOrder\"] = 3] = \"domOrder\";\n})(FocusZoneDirection || (FocusZoneDirection = {}));\n//# sourceMappingURL=FocusZone.types.js.map","import { Async } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\nexport function useAsync() {\n var asyncRef = React.useRef();\n if (!asyncRef.current) {\n asyncRef.current = new Async();\n }\n React.useEffect(function () {\n return function () {\n var _a;\n (_a = asyncRef.current) === null || _a === void 0 ? void 0 : _a.dispose();\n asyncRef.current = undefined;\n };\n }, []);\n return asyncRef.current;\n}\n//# sourceMappingURL=useAsync.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to store a value and generate callbacks for setting the value to true or false.\n * The identity of the callbacks will always stay the same.\n *\n * @param initialState - Initial value\n * @returns Array with the current value and an object containing the updater callbacks.\n */\nexport function useBoolean(initialState) {\n var _a = React.useState(initialState), value = _a[0], setValue = _a[1];\n var setTrue = useConst(function () { return function () {\n setValue(true);\n }; });\n var setFalse = useConst(function () { return function () {\n setValue(false);\n }; });\n var toggle = useConst(function () { return function () {\n setValue(function (currentValue) { return !currentValue; });\n }; });\n return [value, { setTrue: setTrue, setFalse: setFalse, toggle: toggle }];\n}\n//# sourceMappingURL=useBoolean.js.map","import * as React from 'react';\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue) {\n // Use useRef to store the value because it's the least expensive built-in hook that works here\n // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n // internally due to reducer handling which we don't need)\n var ref = React.useRef();\n if (ref.current === undefined) {\n // Box the value in an object so we can tell if it's initialized even if the initializer\n // returns/is undefined\n ref.current = {\n value: typeof initialValue === 'function' ? initialValue() : initialValue,\n };\n }\n return ref.current.value;\n}\n//# sourceMappingURL=useConst.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nexport function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {\n var _a = React.useState(defaultUncontrolledValue), value = _a[0], setValue = _a[1];\n var isControlled = useConst(controlledValue !== undefined);\n var currentValue = isControlled ? controlledValue : value;\n // Duplicate the current value and onChange in refs so they're accessible from\n // setValueOrCallOnChange without creating a new callback every time\n var valueRef = React.useRef(currentValue);\n var onChangeRef = React.useRef(onChange);\n React.useEffect(function () {\n valueRef.current = currentValue;\n onChangeRef.current = onChange;\n });\n // To match the behavior of the setter returned by React.useState, this callback's identity\n // should never change. This means it MUST NOT directly reference variables that can change.\n var setValueOrCallOnChange = useConst(function () { return function (update, ev) {\n // Assuming here that TValue is not a function, because a controllable value will typically\n // be something a user can enter as input\n var newValue = typeof update === 'function' ? update(valueRef.current) : update;\n if (onChangeRef.current) {\n onChangeRef.current(ev, newValue);\n }\n if (!isControlled) {\n setValue(newValue);\n }\n }; });\n return [currentValue, setValueOrCallOnChange];\n}\n//# sourceMappingURL=useControllableValue.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nimport { useIsomorphicLayoutEffect } from '@fluentui/utilities';\n/**\n * Modified `useCallback` that returns the same function reference every time, but internally calls\n * the most-recently passed callback implementation. Can be useful in situations such as:\n * - Event handler dependencies change too frequently, such as user props which might change on\n * every render, or volatile values such as useState/useDispatch\n * - Callback must be referenced in a captured context (such as a window event handler or unmount\n * handler that's registered once) but needs access to the latest props\n *\n * In general, prefer `useCallback` unless you've encountered one of the problems above.\n *\n * https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n *\n * @param fn - The callback function that will be used\n * @returns A function which is referentially stable but internally calls the most recently passed callback\n */\nexport function useEventCallback(fn) {\n var callbackRef = React.useRef(function () {\n throw new Error('Cannot call an event handler while rendering');\n });\n useIsomorphicLayoutEffect(function () {\n callbackRef.current = fn;\n }, [fn]);\n // useConst rather than useCallback to ensure the reference is always stable\n // (useCallback's deps list is an optimization, not a guarantee)\n return useConst(function () { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback = callbackRef.current;\n return callback.apply(void 0, args);\n }; });\n}\n//# sourceMappingURL=useEventCallback.js.map","import * as React from 'react';\nimport { getId } from '@fluentui/utilities';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n * without conditioning the hook call\n * @returns The ID\n */\nexport function useId(prefix, providedId) {\n // getId should only be called once since it updates the global constant for the next ID value.\n // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n var ref = React.useRef(providedId);\n if (!ref.current) {\n ref.current = getId(prefix);\n }\n return ref.current;\n}\n//# sourceMappingURL=useId.js.map","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\nexport function useMergedRefs() {\n var refs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n refs[_i] = arguments[_i];\n }\n var mergedCallback = React.useCallback(function (value) {\n // Update the \"current\" prop hanging on the function.\n mergedCallback.current = value;\n for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n var ref = refs_1[_i];\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = value;\n }\n }\n }, __spreadArray([], refs, true));\n return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(element, eventName, callback, useCapture) {\n // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n React.useEffect(function () {\n var actualElement = element && 'current' in element ? element.current : element;\n if (!actualElement || !actualElement.addEventListener) {\n return;\n }\n var dispose = on(actualElement, eventName, function (ev) { return callbackRef.current(ev); }, useCapture);\n return dispose;\n }, [element, eventName, useCapture]);\n}\n//# sourceMappingURL=useOnEvent.js.map","import { useRef, useEffect } from 'react';\n/**\n * Hook keeping track of a given value from a previous execution of the component the Hook is used in.\n *\n * See [React Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state)\n */\nexport function usePrevious(value) {\n var ref = useRef();\n useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n}\n//# sourceMappingURL=usePrevious.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Returns a wrapper function for `setTimeout` which automatically handles disposal.\n */\nexport var useSetTimeout = function () {\n var timeoutIds = useConst({});\n // Cleanup function.\n React.useEffect(function () { return function () {\n for (var _i = 0, _a = Object.keys(timeoutIds); _i < _a.length; _i++) {\n var id = _a[_i];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n clearTimeout(id);\n }\n }; }, \n // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that\n [timeoutIds]);\n // Return wrapper which will auto cleanup.\n return useConst({\n setTimeout: function (func, duration) {\n var id = setTimeout(func, duration);\n timeoutIds[id] = 1;\n return id;\n },\n clearTimeout: function (id) {\n delete timeoutIds[id];\n clearTimeout(id);\n },\n });\n};\n//# sourceMappingURL=useSetTimeout.js.map","import { getDocument } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(target, hostElement) {\n var previousTargetProp = React.useRef();\n var targetRef = React.useRef(null);\n /**\n * Stores an instance of Window, used to check\n * for server side rendering and if focus was lost.\n */\n var targetWindow = useWindow();\n // If the target element changed, find the new one. If we are tracking\n // target with class name, always find element because we do not know if\n // fabric has rendered a new element and disposed the old element.\n if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n var currentElement = hostElement === null || hostElement === void 0 ? void 0 : hostElement.current;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n }\n else if ('stopPropagation' in target) {\n targetRef.current = target;\n }\n else if ('getBoundingClientRect' in target) {\n targetRef.current = target;\n }\n else if ('current' in target) {\n targetRef.current = target.current;\n }\n else {\n targetRef.current = target;\n }\n }\n previousTargetProp.current = target;\n }\n return [targetRef, targetWindow];\n}\n//# sourceMappingURL=useTarget.js.map","import * as React from 'react';\n/**\n * Hook which synchronously executes a callback when the component is about to unmount.\n *\n * @param callback - Function to call during unmount.\n */\nexport var useUnmount = function (callback) {\n var unmountRef = React.useRef(callback);\n unmountRef.current = callback;\n React.useEffect(function () { return function () {\n var _a;\n (_a = unmountRef.current) === null || _a === void 0 ? void 0 : _a.call(unmountRef);\n }; }, []);\n};\n//# sourceMappingURL=useUnmount.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { warn, warnControlledUsage, warnConditionallyRequiredProps, warnDeprecations, warnMutuallyExclusive, } from '@fluentui/utilities';\nimport { usePrevious } from './usePrevious';\nimport { useConst } from './useConst';\nvar warningId = 0;\n/**\n * Only in development mode, display console warnings when certain conditions are met.\n * Note that all warnings except `controlledUsage` will only be shown on first render\n * (new `controlledUsage` warnings may be shown later due to prop changes).\n */\nexport function useWarnings(options) {\n if (process.env.NODE_ENV !== 'production') {\n var name_1 = options.name, props = options.props, _a = options.other, other = _a === void 0 ? [] : _a, conditionallyRequired = options.conditionallyRequired, deprecations = options.deprecations, mutuallyExclusive = options.mutuallyExclusive, controlledUsage = options.controlledUsage;\n /* eslint-disable react-hooks/rules-of-hooks -- build-time conditional */\n var hasWarnedRef = React.useRef(false);\n var componentId = useConst(function () { return \"useWarnings_\".concat(warningId++); });\n var oldProps = usePrevious(props);\n /* eslint-enable react-hooks/rules-of-hooks */\n // Warn synchronously (not in useEffect) on first render to make debugging easier.\n if (!hasWarnedRef.current) {\n hasWarnedRef.current = true;\n for (var _i = 0, other_1 = other; _i < other_1.length; _i++) {\n var warning = other_1[_i];\n warn(warning);\n }\n if (conditionallyRequired) {\n for (var _b = 0, conditionallyRequired_1 = conditionallyRequired; _b < conditionallyRequired_1.length; _b++) {\n var req = conditionallyRequired_1[_b];\n warnConditionallyRequiredProps(name_1, props, req.requiredProps, req.conditionalPropName, req.condition);\n }\n }\n deprecations && warnDeprecations(name_1, props, deprecations);\n mutuallyExclusive && warnMutuallyExclusive(name_1, props, mutuallyExclusive);\n }\n // Controlled usage warnings may be displayed on either first or subsequent renders due to\n // prop changes. Note that it's safe to run this synchronously (not in useEffect) even in\n // concurrent mode because `warnControlledUsage` internally tracks which warnings have been\n // displayed for each component instance (so nothing will be displayed twice).\n controlledUsage && warnControlledUsage(__assign(__assign({}, controlledUsage), { componentId: componentId, props: props, componentName: name_1, oldProps: oldProps }));\n }\n}\n//# sourceMappingURL=useWarnings.js.map","import * as React from 'react';\nconst IconDirectionContext = React.createContext(undefined);\nconst IconDirectionContextDefaultValue = {};\nexport const IconDirectionContextProvider = IconDirectionContext.Provider;\nexport const useIconContext = () => React.useContext(IconDirectionContext) ? React.useContext(IconDirectionContext) : IconDirectionContextDefaultValue;","import { useIconContext } from \"../contexts\";\nimport { __styles, mergeClasses } from \"@griffel/react\";\nconst useRootStyles = __styles({\n \"root\": {\n \"mc9l5x\": \"f1w7gpdv\",\n \"Bg96gwp\": \"fez10in\",\n \"ycbfsm\": \"fg4l7m0\"\n },\n \"rtl\": {\n \"Bz10aip\": \"f13rod7r\"\n }\n}, {\n \"d\": [\".f1w7gpdv{display:inline;}\", \".fez10in{line-height:0;}\", \".f13rod7r{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);}\"],\n \"t\": [\"@media (forced-colors: active){.fg4l7m0{forced-color-adjust:auto;}}\"]\n});\nexport const useIconState = (props, options) => {\n const {\n title,\n primaryFill = \"currentColor\",\n ...rest\n } = props;\n const state = {\n ...rest,\n title: undefined,\n fill: primaryFill\n };\n const styles = useRootStyles();\n const iconContext = useIconContext();\n state.className = mergeClasses(styles.root, (options === null || options === void 0 ? void 0 : options.flipInRtl) && (iconContext === null || iconContext === void 0 ? void 0 : iconContext.textDirection) === 'rtl' && styles.rtl, state.className);\n if (title) {\n state['aria-label'] = title;\n }\n if (!state['aria-label'] && !state['aria-labelledby']) {\n state['aria-hidden'] = true;\n } else {\n state['role'] = 'img';\n }\n return state;\n};","import * as React from \"react\";\nimport { useIconState } from \"./useIconState\";\nexport const createFluentIcon = (displayName, width, paths, options) => {\n const viewBoxWidth = width === \"1em\" ? \"20\" : width;\n const Icon = React.forwardRef((props, ref) => {\n const state = {\n ...useIconState(props, {\n flipInRtl: options === null || options === void 0 ? void 0 : options.flipInRtl\n }),\n ref,\n width,\n height: width,\n viewBox: `0 0 ${viewBoxWidth} ${viewBoxWidth}`,\n xmlns: \"http://www.w3.org/2000/svg\"\n };\n return React.createElement(\"svg\", state, ...paths.map(d => React.createElement(\"path\", {\n d,\n fill: state.fill\n })));\n });\n Icon.displayName = displayName;\n return Icon;\n};","import { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\n/**\n * @internal\n * This hook returns context selected value by selector.\n * It will only accept context created by `createContext`.\n * It will trigger re-render if only the selected value is referentially changed.\n */ export const useContextSelector = (context, selector)=>{\n const contextValue = React.useContext(context);\n const { value: { current: value }, version: { current: version }, listeners } = contextValue;\n const selected = selector(value);\n const [state, dispatch] = React.useReducer((prevState, payload)=>{\n if (!payload) {\n // early bail out when is dispatched during render\n return [\n value,\n selected\n ];\n }\n if (payload[0] <= version) {\n if (objectIs(prevState[1], selected)) {\n return prevState; // bail out\n }\n return [\n value,\n selected\n ];\n }\n try {\n if (objectIs(prevState[0], payload[1])) {\n return prevState; // do not update\n }\n const nextSelected = selector(payload[1]);\n if (objectIs(prevState[1], nextSelected)) {\n return prevState; // do not update\n }\n return [\n payload[1],\n nextSelected\n ];\n } catch (e) {\n // ignored (stale props or some other reason)\n }\n // explicitly spread to enforce typing\n return [\n prevState[0],\n prevState[1]\n ]; // schedule update\n }, [\n value,\n selected\n ]);\n if (!objectIs(state[1], selected)) {\n // schedule re-render\n // this is safe because it's self contained\n dispatch(undefined);\n }\n useIsomorphicLayoutEffect(()=>{\n listeners.push(dispatch);\n return ()=>{\n const index = listeners.indexOf(dispatch);\n listeners.splice(index, 1);\n };\n }, [\n listeners\n ]);\n return state[1];\n};\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst objectIs = // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore fallback to native if it exists (not in IE11)\ntypeof Object.is === 'function' ? Object.is : is;\n","import { createContext, useContextSelector } from '@fluentui/react-context-selector';\nexport const PopoverContext = createContext(undefined);\nconst popoverContextDefaultValue = {\n open: false,\n setOpen: ()=>null,\n toggleOpen: ()=>null,\n triggerRef: {\n current: null\n },\n contentRef: {\n current: null\n },\n arrowRef: {\n current: null\n },\n openOnContext: false,\n openOnHover: false,\n size: 'medium',\n trapFocus: false,\n inline: false\n};\nexport const PopoverProvider = PopoverContext.Provider;\nexport const usePopoverContext_unstable = (selector)=>useContextSelector(PopoverContext, (ctx = popoverContextDefaultValue)=>selector(ctx));\n","import { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { unstable_NormalPriority as NormalPriority, unstable_runWithPriority as runWithPriority } from 'scheduler';\nconst createProvider = (Original)=>{\n const Provider = (props)=>{\n // Holds an actual \"props.value\"\n const valueRef = React.useRef(props.value);\n // Used to sync context updates and avoid stale values, can be considered as render/effect counter of Provider.\n const versionRef = React.useRef(0);\n // A stable object, is used to avoid context updates via mutation of its values.\n const contextValue = React.useRef();\n if (!contextValue.current) {\n contextValue.current = {\n value: valueRef,\n version: versionRef,\n listeners: []\n };\n }\n useIsomorphicLayoutEffect(()=>{\n valueRef.current = props.value;\n versionRef.current += 1;\n runWithPriority(NormalPriority, ()=>{\n contextValue.current.listeners.forEach((listener)=>{\n listener([\n versionRef.current,\n props.value\n ]);\n });\n });\n }, [\n props.value\n ]);\n return React.createElement(Original, {\n value: contextValue.current\n }, props.children);\n };\n /* istanbul ignore else */ if (process.env.NODE_ENV !== 'production') {\n Provider.displayName = 'ContextSelector.Provider';\n }\n return Provider;\n};\n/**\n * @internal\n */ export const createContext = (defaultValue)=>{\n // eslint-disable-next-line @fluentui/no-context-default-value\n const context = React.createContext({\n value: {\n current: defaultValue\n },\n version: {\n current: -1\n },\n listeners: []\n });\n context.Provider = createProvider(context.Provider);\n // We don't support Consumer API\n delete context.Consumer;\n return context;\n};\n","import * as React from \"react\";\nvar PortalCompatContext = React.createContext(undefined);\nvar portalCompatContextDefaultValue = function() {\n return function() {\n return undefined;\n };\n};\nexport var PortalCompatContextProvider = PortalCompatContext.Provider;\nexport function usePortalCompat() {\n var _React_useContext;\n return (_React_useContext = React.useContext(PortalCompatContext)) !== null && _React_useContext !== void 0 ? _React_useContext : portalCompatContextDefaultValue;\n}\n","import { isSlot } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createCompatSlotComponent } from '../utils/createCompatSlotComponent';\nimport { warnIfElementTypeIsInvalid } from '../utils/warnIfElementTypeIsInvalid';\nexport function createJSX(runtime, slotRuntime) {\n return function jsx(type, overrideProps, key, source, self) {\n // TODO:\n // this is for backwards compatibility with getSlotsNext\n // it should be removed once getSlotsNext is obsolete\n if (isSlot(overrideProps)) {\n return slotRuntime(createCompatSlotComponent(type, overrideProps), null, key, source, self);\n }\n if (isSlot(type)) {\n return slotRuntime(type, overrideProps, key, source, self);\n }\n warnIfElementTypeIsInvalid(type);\n return runtime(type, overrideProps, key, source, self);\n };\n}\n","import * as React from 'react';\nimport { SLOT_ELEMENT_TYPE_SYMBOL } from '@fluentui/react-utilities';\n// TODO:\n// this is for backwards compatibility with getSlotsNext\n// it should be removed once getSlotsNext is obsolete\nexport function createCompatSlotComponent(type, props) {\n return {\n ...props,\n [SLOT_ELEMENT_TYPE_SYMBOL]: type\n };\n}\n","import { SLOT_ELEMENT_TYPE_SYMBOL, SLOT_RENDER_FUNCTION_SYMBOL } from '@fluentui/react-utilities';\n/**\n * @internal\n */ export function getMetadataFromSlotComponent(type) {\n const { as, [SLOT_ELEMENT_TYPE_SYMBOL]: baseElementType, [SLOT_RENDER_FUNCTION_SYMBOL]: renderFunction, ...propsWithoutMetadata } = type;\n const props = propsWithoutMetadata;\n const elementType = typeof baseElementType === 'string' ? as !== null && as !== void 0 ? as : baseElementType : baseElementType;\n if (typeof elementType !== 'string' && as) {\n props.as = as;\n }\n return {\n elementType,\n props,\n renderFunction\n };\n}\n","import * as ReactRuntime from 'react/jsx-runtime';\nexport const Runtime = ReactRuntime;\n","import { createJSX } from './jsx/createJSX';\nimport { jsxSlot } from './jsx/jsxSlot';\nimport { jsxsSlot } from './jsx/jsxsSlot';\nimport { Runtime } from './utils/Runtime';\nexport { Fragment } from 'react';\nexport const jsx = createJSX(Runtime.jsx, jsxSlot);\nexport const jsxs = createJSX(Runtime.jsxs, jsxsSlot);\n","import * as React from 'react';\nimport { getMetadataFromSlotComponent } from '../utils/getMetadataFromSlotComponent';\nimport { Runtime } from '../utils/Runtime';\nexport const jsxSlot = (type, overrideProps, key)=>{\n const { elementType, renderFunction, props: slotProps } = getMetadataFromSlotComponent(type);\n const props = {\n ...slotProps,\n ...overrideProps\n };\n if (renderFunction) {\n return Runtime.jsx(React.Fragment, {\n children: renderFunction(elementType, props)\n }, key);\n }\n return Runtime.jsx(elementType, props, key);\n};\n","import * as React from 'react';\nimport { getMetadataFromSlotComponent } from '../utils/getMetadataFromSlotComponent';\nimport { Runtime } from '../utils/Runtime';\nexport const jsxsSlot = (type, overrideProps, key)=>{\n const { elementType, renderFunction, props: slotProps } = getMetadataFromSlotComponent(type);\n const props = {\n ...slotProps,\n ...overrideProps\n };\n if (renderFunction) {\n /**\n * In static runtime then children is an array and this array won't be keyed.\n * We should wrap children by a static fragment\n * as there's no way to know if renderFunction will render statically or dynamically\n */ return Runtime.jsx(React.Fragment, {\n children: renderFunction(elementType, {\n ...props,\n children: Runtime.jsxs(React.Fragment, {\n children: props.children\n }, undefined)\n })\n }, key);\n }\n return Runtime.jsxs(elementType, props, key);\n};\n","import * as React from 'react';\n/**\n * @internal\n */ export const ThemeContext = React.createContext(undefined);\n/**\n * @internal\n */ export const ThemeProvider = ThemeContext.Provider;\n","import * as React from 'react';\n/**\n * @internal\n * Used to provide a CSS class that applies theme css variables\n *\n * Useful for elements in the React tree (can read context) but not in the DOM Tree. E.g. Portals\n */ const ThemeClassNameContext = React.createContext(undefined);\nconst themeClassNameContextDefaultVaue = '';\nexport const ThemeClassNameProvider = ThemeClassNameContext.Provider;\n/**\n * @returns CSS class that applies css variables\n */ export function useThemeClassName() {\n var _React_useContext;\n return (_React_useContext = React.useContext(ThemeClassNameContext)) !== null && _React_useContext !== void 0 ? _React_useContext : themeClassNameContextDefaultVaue;\n}\n","/* eslint-disable */ import * as React from 'react';\n/**\n * @internal\n */ export const CustomStyleHooksContext = React.createContext(undefined);\nconst noop = ()=>{};\n/**\n * @internal\n */ export const CustomStyleHooksProvider = CustomStyleHooksContext.Provider;\n/**\n * Gets a custom style hook\n * @param hook - One of the hook properties in CustomStyleHooksContextValue\n * @returns The corresponding hook when defined, otherwise a no-op function.\n */ export const useCustomStyleHook = (hook)=>{\n var _React_useContext;\n var _React_useContext_hook;\n return (_React_useContext_hook = (_React_useContext = React.useContext(CustomStyleHooksContext)) === null || _React_useContext === void 0 ? void 0 : _React_useContext[hook]) !== null && _React_useContext_hook !== void 0 ? _React_useContext_hook : noop;\n};\n","import * as React from 'react';\n/**\n * @internal\n * Context shared by all of the tooltips in the app\n */ const TooltipVisibilityContext = React.createContext(undefined);\nconst tooltipVisibilityContextDefaultValue = {};\n/**\n * @internal\n */ export const TooltipVisibilityProvider = TooltipVisibilityContext.Provider;\nexport function useTooltipVisibility() {\n var _React_useContext;\n return (_React_useContext = React.useContext(TooltipVisibilityContext)) !== null && _React_useContext !== void 0 ? _React_useContext : tooltipVisibilityContextDefaultValue;\n}\n","import * as React from 'react';\n/**\n * @internal\n */ export const OverridesContext = React.createContext(undefined);\n/**\n * @internal\n */ export const OverridesProvider = OverridesContext.Provider;\nexport function useOverrides() {\n var _React_useContext;\n return (_React_useContext = React.useContext(OverridesContext)) !== null && _React_useContext !== void 0 ? _React_useContext : {};\n}\n","/**\n * Verifies if a given node is an HTMLElement,\n * this method works seamlessly with frames and elements from different documents\n *\n * This is preferred over simply using `instanceof`.\n * Since `instanceof` might be problematic while operating with [multiple realms](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof#instanceof_and_multiple_realms)\n *\n * @example\n * ```ts\n * isHTMLElement(event.target) && event.target.focus()\n * isHTMLElement(event.target, {constructorName: 'HTMLInputElement'}) && event.target.value // some value\n * ```\n *\n */ export function isHTMLElement(element, options) {\n var _typedElement_ownerDocument;\n const typedElement = element;\n var _options_constructorName;\n return Boolean((typedElement === null || typedElement === void 0 ? void 0 : (_typedElement_ownerDocument = typedElement.ownerDocument) === null || _typedElement_ownerDocument === void 0 ? void 0 : _typedElement_ownerDocument.defaultView) && typedElement instanceof typedElement.ownerDocument.defaultView[(_options_constructorName = options === null || options === void 0 ? void 0 : options.constructorName) !== null && _options_constructorName !== void 0 ? _options_constructorName : 'HTMLElement']);\n}\n","import { isHTMLElement } from '@fluentui/react-utilities';\nimport { KEYBORG_FOCUSIN, createKeyborg, disposeKeyborg } from 'keyborg';\nimport { FOCUS_VISIBLE_ATTR } from './constants';\n/**\n * @internal\n * @param scope - Applies the ponyfill to all DOM children\n * @param targetWindow - window\n */ export function applyFocusVisiblePolyfill(scope, targetWindow) {\n if (alreadyInScope(scope)) {\n // Focus visible polyfill already applied at this scope\n return ()=>undefined;\n }\n const state = {\n current: undefined\n };\n const keyborg = createKeyborg(targetWindow);\n function registerElementIfNavigating(el) {\n if (keyborg.isNavigatingWithKeyboard() && isHTMLElement(el)) {\n state.current = el;\n el.setAttribute(FOCUS_VISIBLE_ATTR, '');\n }\n }\n function disposeCurrentElement() {\n if (state.current) {\n state.current.removeAttribute(FOCUS_VISIBLE_ATTR);\n state.current = undefined;\n }\n }\n // When navigation mode changes remove the focus-visible selector\n keyborg.subscribe((isNavigatingWithKeyboard)=>{\n if (!isNavigatingWithKeyboard) {\n disposeCurrentElement();\n }\n });\n // Keyborg's focusin event is delegated so it's only registered once on the window\n // and contains metadata about the focus event\n const keyborgListener = (e)=>{\n disposeCurrentElement();\n const target = e.composedPath()[0];\n registerElementIfNavigating(target);\n };\n // Make sure that when focus leaves the scope, the focus visible class is removed\n const blurListener = (e)=>{\n if (!e.relatedTarget || isHTMLElement(e.relatedTarget) && !scope.contains(e.relatedTarget)) {\n disposeCurrentElement();\n }\n };\n scope.addEventListener(KEYBORG_FOCUSIN, keyborgListener);\n scope.addEventListener('focusout', blurListener);\n scope.focusVisible = true;\n registerElementIfNavigating(targetWindow.document.activeElement);\n // Return disposer\n return ()=>{\n disposeCurrentElement();\n scope.removeEventListener(KEYBORG_FOCUSIN, keyborgListener);\n scope.removeEventListener('focusout', blurListener);\n delete scope.focusVisible;\n disposeKeyborg(keyborg);\n };\n}\nfunction alreadyInScope(el) {\n if (!el) {\n return false;\n }\n if (el.focusVisible) {\n return true;\n }\n return alreadyInScope(el === null || el === void 0 ? void 0 : el.parentElement);\n}\n","import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { applyFocusVisiblePolyfill } from '../focus/focusVisiblePolyfill';\nexport function useFocusVisible(options = {}) {\n const contextValue = useFluent();\n const scopeRef = React.useRef(null);\n var _options_targetDocument;\n const targetDocument = (_options_targetDocument = options.targetDocument) !== null && _options_targetDocument !== void 0 ? _options_targetDocument : contextValue.targetDocument;\n React.useEffect(()=>{\n if ((targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView) && scopeRef.current) {\n return applyFocusVisiblePolyfill(scopeRef.current, targetDocument.defaultView);\n }\n }, [\n scopeRef,\n targetDocument\n ]);\n return scopeRef;\n}\n","import * as React from 'react';\nimport { getNativeElementProps } from '../utils/getNativeElementProps';\n/**\n * Given an element tagname and user props, filters the props to only allowed props for the given\n * element type.\n *\n * Equivalent to {@link getNativeElementProps}, but more type-safe.\n */ export const getIntrinsicElementProps = (/** The slot's default element type (e.g. 'div') */ tagName, /** The component's props object */ props, /** List of native props to exclude from the returned value */ excludedPropNames)=>{\n var _props_as;\n // eslint-disable-next-line deprecation/deprecation\n return getNativeElementProps((_props_as = props.as) !== null && _props_as !== void 0 ? _props_as : tagName, props, excludedPropNames);\n};\n","import * as React from 'react';\nimport { canUseDOM } from './canUseDOM';\n/**\n * Default context value to use in case there is no SSRProvider. This is fine for client-only apps.\n *\n * @internal\n */ export const defaultSSRContextValue = {\n current: 0\n};\nexport const SSRContext = /*#__PURE__*/ React.createContext(undefined);\n/**\n * @internal\n */ export function useSSRContext() {\n var _React_useContext;\n return (_React_useContext = React.useContext(SSRContext)) !== null && _React_useContext !== void 0 ? _React_useContext : defaultSSRContextValue;\n}\n/**\n * When using SSR with Fluent UI, applications must be wrapped in an SSRProvider. This ensures that auto generated ids\n * are consistent between the client and server.\n *\n * @public\n */ export const SSRProvider = (props)=>{\n const [value] = React.useState(()=>({\n current: 0\n }));\n return /*#__PURE__*/ React.createElement(SSRContext.Provider, {\n value: value\n }, props.children);\n};\n/**\n * Returns whether the component is currently being server side rendered or hydrated on the client. Can be used to delay\n * browser-specific rendering until after hydration. May cause re-renders on a client when is used within SSRProvider.\n */ export function useIsSSR() {\n const isInSSRContext = useSSRContext() !== defaultSSRContextValue;\n const [isSSR, setIsSSR] = React.useState(isInSSRContext);\n // If we are rendering in a non-DOM environment, and there's no SSRProvider, provide a warning to hint to the\n // developer to add one.\n if (process.env.NODE_ENV !== 'production') {\n if (!isInSSRContext && !canUseDOM()) {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-components [${useIsSSR.name}]:\nWhen server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.\n\n\nCheck documentation at https://aka.ms/fluentui-ssr.`);\n }\n }\n // If on the client, and the component was initially server rendered, then schedule a layout effect to update the\n // component after hydration.\n if (canUseDOM() && isInSSRContext) {\n // This if statement technically breaks the rules of hooks, but is safe because the condition never changes after\n // mounting.\n // eslint-disable-next-line\n React.useLayoutEffect(()=>{\n setIsSSR(false);\n }, []);\n }\n return isSSR;\n}\n","import * as React from 'react';\nimport { defaultSSRContextValue, useSSRContext } from '../ssr/index';\nconst IdPrefixContext = React.createContext(undefined);\n/**\n * Allows to define a prefix that will be used for all IDs generated by useId() hook. It's useful to avoid collisions\n * between different bundles.\n */ export const IdPrefixProvider = IdPrefixContext.Provider;\nfunction useIdPrefix() {\n return React.useContext(IdPrefixContext) || '';\n}\n/**\n * Resets generated IDs, should be used only in tests.\n */ export function resetIdsForTests() {\n defaultSSRContextValue.current = 0;\n}\n/**\n * Hook to generate a unique ID.\n *\n * @param prefix - Optional prefix for the ID. Defaults to 'fui-'.\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n * without conditioning the hook call\n * @returns The ID\n */ export function useId(prefix = 'fui-', providedId) {\n const contextValue = useSSRContext();\n const idPrefix = useIdPrefix();\n // Checking if useId is available on React, if it is, we use it to generate the id. String concatenation is used to\n // prevent bundlers from complaining with older versions of React.\n const _useId = React['use' + 'Id'];\n if (_useId) {\n const generatedId = _useId();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const escapedId = React.useMemo(()=>generatedId.replace(/:/g, ''), [\n generatedId\n ]);\n return providedId || `${idPrefix}${prefix}${escapedId}`;\n }\n // Hooks appear to be running conditionally, but they will always run in the same order since it's based on\n // the version of React being used. This is safe to ignore.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return React.useMemo(()=>{\n if (providedId) {\n return providedId;\n }\n return `${idPrefix}${prefix}${++contextValue.current}`;\n }, [\n idPrefix,\n prefix,\n providedId,\n contextValue\n ]);\n}\n","import { __styles, mergeClasses } from '@griffel/core';\nimport { useRenderer_unstable } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const fluentProviderClassNames = {\n root: 'fui-FluentProvider'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n sj55zd: \"f19n0e5\",\n De3pzq: \"fxugw4r\",\n fsow6f: [\"f1o700av\", \"fes3tcz\"],\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\"\n }\n}, {\n d: [\".f19n0e5{color:var(--colorNeutralForeground1);}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", \".f1o700av{text-align:left;}\", \".fes3tcz{text-align:right;}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fkhj508{font-size:var(--fontSizeBase300);}\", \".figsok6{font-weight:var(--fontWeightRegular);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\"]\n});\n/** Applies style classnames to slots */\nexport const useFluentProviderStyles_unstable = state => {\n const renderer = useRenderer_unstable();\n const styles = useStyles({\n dir: state.dir,\n renderer\n });\n state.root.className = mergeClasses(fluentProviderClassNames.root, state.themeClassName, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useFluentProviderStyles.styles.js.map","import { useId, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createCSSRuleFromTheme } from './createCSSRuleFromTheme';\nimport { fluentProviderClassNames } from './useFluentProviderStyles.styles';\n// String concatenation is used to prevent bundlers to complain with older versions of React\nconst useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : useIsomorphicLayoutEffect;\nconst createStyleTag = (target, elementAttributes)=>{\n if (!target) {\n return undefined;\n }\n const tag = target.createElement('style');\n Object.keys(elementAttributes).forEach((attrName)=>{\n tag.setAttribute(attrName, elementAttributes[attrName]);\n });\n target.head.appendChild(tag);\n return tag;\n};\nconst insertSheet = (tag, rule)=>{\n const sheet = tag.sheet;\n if (sheet) {\n if (sheet.cssRules.length > 0) {\n sheet.deleteRule(0);\n }\n sheet.insertRule(rule, 0);\n } else if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error('FluentProvider: No sheet available on styleTag, styles will not be inserted into DOM.');\n }\n};\n/**\n * Writes a theme as css variables in a style tag on the provided targetDocument as a rule applied to a CSS class\n * @internal\n * @returns CSS class to apply the rule\n */ export const useFluentProviderThemeStyleTag = (options)=>{\n const { targetDocument, theme, rendererAttributes } = options;\n const styleTag = React.useRef();\n const styleTagId = useId(fluentProviderClassNames.root);\n const styleElementAttributes = rendererAttributes;\n const rule = React.useMemo(()=>createCSSRuleFromTheme(`.${styleTagId}`, theme), [\n theme,\n styleTagId\n ]);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useMemo(()=>{\n // Heads up!\n // .useMemo() is used because it is called during render and DOM for _current_ component is not mounted yet. Also,\n // this allows to do checks with strict mode enabled as .useEffect() will be called with incremented IDs because\n // of double render.\n if (targetDocument) {\n const providerSelector = `.${fluentProviderClassNames.root}.${styleTagId}`;\n const providerElements = targetDocument.querySelectorAll(providerSelector);\n // In SSR, we will have DOM upfront. To avoid false positives the check on nested style tag is performed\n const isSSR = targetDocument.querySelector(`${providerSelector} > style[id=\"${styleTagId}\"]`) !== null;\n const elementsCount = isSSR ? 1 : 0;\n if (providerElements.length > elementsCount) {\n // eslint-disable-next-line no-console\n console.error([\n '@fluentui/react-provider: There are conflicting ids in your DOM.',\n 'Please make sure that you configured your application properly.',\n '\\n',\n '\\n',\n 'Configuration guide: https://aka.ms/fluentui-conflicting-ids'\n ].join(' '));\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n }\n useHandleSSRStyleElements(targetDocument, styleTagId);\n useInsertionEffect(()=>{\n // The style element could already have been created during SSR - no need to recreate it\n const ssrStyleElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.getElementById(styleTagId);\n if (ssrStyleElement) {\n styleTag.current = ssrStyleElement;\n } else {\n styleTag.current = createStyleTag(targetDocument, {\n ...styleElementAttributes,\n id: styleTagId\n });\n if (styleTag.current) {\n insertSheet(styleTag.current, rule);\n }\n }\n return ()=>{\n var _styleTag_current;\n (_styleTag_current = styleTag.current) === null || _styleTag_current === void 0 ? void 0 : _styleTag_current.remove();\n };\n }, [\n styleTagId,\n targetDocument,\n rule,\n styleElementAttributes\n ]);\n return {\n styleTagId,\n rule\n };\n};\nfunction useHandleSSRStyleElements(targetDocument, styleTagId) {\n // Using a state factory so that this logic only runs once per render\n // Each FluentProvider can create its own style element during SSR as a slot\n // Moves all theme style elements to document head during render to avoid hydration errors.\n // Should be strict mode safe since the logic is idempotent.\n React.useState(()=>{\n if (!targetDocument) {\n return;\n }\n const themeStyleElement = targetDocument.getElementById(styleTagId);\n if (themeStyleElement) {\n targetDocument.head.append(themeStyleElement);\n }\n });\n}\n","/**\n * Creates a CSS rule from a theme object.\n *\n * Useful for scenarios when you want to apply theming statically to a top level elements like `body`.\n */ export function createCSSRuleFromTheme(selector, theme) {\n if (theme) {\n const cssVarsAsString = Object.keys(theme).reduce((cssVarRule, cssVar)=>{\n return `${cssVarRule}--${cssVar}: ${theme[cssVar]}; `;\n }, '');\n return `${selector} { ${cssVarsAsString} }`;\n }\n return `${selector} {}`;\n}\n","import { useRenderer_unstable } from '@griffel/react';\nimport { useFocusVisible } from '@fluentui/react-tabster';\nimport { ThemeContext_unstable as ThemeContext, useFluent_unstable as useFluent, useOverrides_unstable as useOverrides, CustomStyleHooksContext_unstable as CustomStyleHooksContext } from '@fluentui/react-shared-contexts';\nimport { getIntrinsicElementProps, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useFluentProviderThemeStyleTag } from './useFluentProviderThemeStyleTag';\n// Fixes a bug where returning a new object each time would cause unnecessary rerenders.\nconst EMPTY_OBJECT = {};\n/**\n * Create the state required to render FluentProvider.\n *\n * The returned state can be modified with hooks such as useFluentProviderStyles_unstable,\n * before being passed to renderFluentProvider_unstable.\n *\n * @param props - props from this instance of FluentProvider\n * @param ref - reference to root HTMLElement of FluentProvider\n */ export const useFluentProvider_unstable = (props, ref)=>{\n const parentContext = useFluent();\n const parentTheme = useTheme();\n const parentOverrides = useOverrides();\n const parentCustomStyleHooks = React.useContext(CustomStyleHooksContext) || EMPTY_OBJECT;\n /**\n * TODO: add merge functions to \"dir\" merge,\n * nesting providers with the same \"dir\" should not add additional attributes to DOM\n * see https://github.com/microsoft/fluentui/blob/0dc74a19f3aa5a058224c20505016fbdb84db172/packages/fluentui/react-northstar/src/utils/mergeProviderContexts.ts#L89-L93\n */ const { applyStylesToPortals = true, // eslint-disable-next-line @typescript-eslint/naming-convention\n customStyleHooks_unstable, dir = parentContext.dir, targetDocument = parentContext.targetDocument, theme, overrides_unstable: overrides = {} } = props;\n const mergedTheme = shallowMerge(parentTheme, theme);\n const mergedOverrides = shallowMerge(parentOverrides, overrides);\n const mergedCustomStyleHooks = shallowMerge(parentCustomStyleHooks, customStyleHooks_unstable);\n const renderer = useRenderer_unstable();\n var _renderer_styleElementAttributes;\n const { styleTagId, rule } = useFluentProviderThemeStyleTag({\n theme: mergedTheme,\n targetDocument,\n rendererAttributes: (_renderer_styleElementAttributes = renderer.styleElementAttributes) !== null && _renderer_styleElementAttributes !== void 0 ? _renderer_styleElementAttributes : {}\n });\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(()=>{\n if (mergedTheme === undefined) {\n // eslint-disable-next-line no-console\n console.warn([\n '@fluentui/react-provider: FluentProvider does not have your \"theme\" defined.',\n \"Make sure that your top-level FluentProvider has set a `theme` prop or you're setting the theme in your child FluentProvider.\"\n ].join(' '));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n }\n return {\n applyStylesToPortals,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n customStyleHooks_unstable: mergedCustomStyleHooks,\n dir,\n targetDocument,\n theme: mergedTheme,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n overrides_unstable: mergedOverrides,\n themeClassName: styleTagId,\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ...props,\n dir,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, useFocusVisible({\n targetDocument\n }))\n }), {\n elementType: 'div'\n }),\n serverStyleProps: {\n cssRule: rule,\n attributes: {\n ...renderer.styleElementAttributes,\n id: styleTagId\n }\n }\n };\n};\nfunction shallowMerge(a, b) {\n // Merge impacts perf: we should like to avoid it if it's possible\n if (a && b) {\n return {\n ...a,\n ...b\n };\n }\n if (a) {\n return a;\n }\n return b;\n}\nfunction useTheme() {\n return React.useContext(ThemeContext);\n}\n","import * as React from 'react';\nimport { renderFluentProvider_unstable } from './renderFluentProvider';\nimport { useFluentProvider_unstable } from './useFluentProvider';\nimport { useFluentProviderStyles_unstable } from './useFluentProviderStyles.styles';\nimport { useFluentProviderContextValues_unstable } from './useFluentProviderContextValues';\nexport const FluentProvider = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useFluentProvider_unstable(props, ref);\n useFluentProviderStyles_unstable(state);\n const contextValues = useFluentProviderContextValues_unstable(state);\n return renderFluentProvider_unstable(state, contextValues);\n});\nFluentProvider.displayName = 'FluentProvider';\n","import * as React from 'react';\nexport function useFluentProviderContextValues_unstable(state) {\n const { applyStylesToPortals, // eslint-disable-next-line @typescript-eslint/naming-convention\n customStyleHooks_unstable, dir, root, targetDocument, theme, themeClassName, // eslint-disable-next-line @typescript-eslint/naming-convention\n overrides_unstable } = state;\n const provider = React.useMemo(()=>({\n dir,\n targetDocument\n }), [\n dir,\n targetDocument\n ]);\n // \"Tooltip\" component mutates an object in this context, instance should be stable\n const [tooltip] = React.useState(()=>({}));\n const iconDirection = React.useMemo(()=>({\n textDirection: dir\n }), [\n dir\n ]);\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n customStyleHooks_unstable,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n overrides_unstable,\n provider,\n textDirection: dir,\n iconDirection,\n tooltip,\n theme,\n themeClassName: applyStylesToPortals ? root.className : themeClassName\n };\n}\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { canUseDOM, assertSlots } from '@fluentui/react-utilities';\nimport { TextDirectionProvider } from '@griffel/react';\nimport { OverridesProvider_unstable as OverridesProvider, Provider_unstable as Provider, TooltipVisibilityProvider_unstable as TooltipVisibilityProvider, ThemeProvider_unstable as ThemeProvider, ThemeClassNameProvider_unstable as ThemeClassNameProvider, CustomStyleHooksProvider_unstable as CustomStyleHooksProvider } from '@fluentui/react-shared-contexts';\nimport { IconDirectionContextProvider } from '@fluentui/react-icons';\n/**\n * Render the final JSX of FluentProvider\n */ export const renderFluentProvider_unstable = (state, contextValues)=>{\n assertSlots(state);\n // Typescript (vscode) incorrectly references the FluentProviderProps.customStyleHooks_unstable\n // instead of FluentProviderContextValues.customStyleHooks_unstable and thinks it is\n // Partial, so it needs to be cast to Required\n return /*#__PURE__*/ _jsx(Provider, {\n value: contextValues.provider,\n children: /*#__PURE__*/ _jsx(ThemeProvider, {\n value: contextValues.theme,\n children: /*#__PURE__*/ _jsx(ThemeClassNameProvider, {\n value: contextValues.themeClassName,\n children: /*#__PURE__*/ _jsx(CustomStyleHooksProvider, {\n value: contextValues.customStyleHooks_unstable,\n children: /*#__PURE__*/ _jsx(TooltipVisibilityProvider, {\n value: contextValues.tooltip,\n children: /*#__PURE__*/ _jsx(TextDirectionProvider, {\n dir: contextValues.textDirection,\n children: /*#__PURE__*/ _jsx(IconDirectionContextProvider, {\n value: contextValues.iconDirection,\n children: /*#__PURE__*/ _jsx(OverridesProvider, {\n value: contextValues.overrides_unstable,\n children: /*#__PURE__*/ _jsxs(state.root, {\n children: [\n canUseDOM() ? null : /*#__PURE__*/ _jsx(\"style\", {\n // Using dangerous HTML because react can escape characters\n // which can lead to invalid CSS.\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML: {\n __html: state.serverStyleProps.cssRule\n },\n ...state.serverStyleProps.attributes\n }),\n state.root.children\n ]\n })\n })\n })\n })\n })\n })\n })\n })\n });\n};\n","import * as React from 'react';\n/**\n * @internal\n */ const ProviderContext = React.createContext(undefined);\nconst providerContextDefaultValue = {\n // eslint-disable-next-line no-restricted-globals\n targetDocument: typeof document === 'object' ? document : undefined,\n dir: 'ltr'\n};\n/**\n * @internal\n */ export const Provider = ProviderContext.Provider;\nexport function useFluent() {\n var _React_useContext;\n return (_React_useContext = React.useContext(ProviderContext)) !== null && _React_useContext !== void 0 ? _React_useContext : providerContextDefaultValue;\n}\n","export const KEYBOARD_NAV_ATTRIBUTE = 'data-keyboard-nav';\nexport const KEYBOARD_NAV_SELECTOR = `:global([${KEYBOARD_NAV_ATTRIBUTE}])`;\n/**\n * @internal\n */ export const FOCUS_VISIBLE_ATTR = 'data-fui-focus-visible';\n/**\n * @internal\n */ export const FOCUS_WITHIN_ATTR = 'data-fui-focus-within';\nexport const defaultOptions = {\n style: {},\n selector: 'focus',\n customizeSelector: (selector)=>selector\n};\n","import { defaultOptions, FOCUS_VISIBLE_ATTR, FOCUS_WITHIN_ATTR } from './constants';\n/**\n * Creates a style for @see makeStyles that includes the necessary selectors for focus.\n * Should be used only when @see createFocusOutlineStyle does not fit requirements\n *\n * If you're using `createCustomFocusIndicatorStyle` instead of `createFocusOutlineStyle`\n * keep in mind that the default outline style is not going to be removed\n * (as it is in `createFocusOutlineStyle`),\n * and is your responsibility to manually remove it from your styles.\n *\n * @example\n * ```ts\n * // Link styles\n * const useStyles = makeStyles({\n focusIndicator: createCustomFocusIndicatorStyle({\n textDecorationColor: tokens.colorStrokeFocus2,\n textDecorationLine: 'underline',\n textDecorationStyle: 'double',\n outlineStyle: 'none',\n }),\n // Common styles.\n root: {\n // ❗️ DO NOT FORGET TO REMOVE THE DEFAULT OUTLINE STYLE\n ':focus-visible': {\n outlineStyle: 'none',\n },\n * ```\n *\n * @param style - styling applied on focus, defaults to @see getDefaultFocusOutlineStyles\n * @param options - Configure the style of the focus outline\n */ export function createCustomFocusIndicatorStyle(style, { selector: selectorType = defaultOptions.selector, customizeSelector = defaultOptions.customizeSelector } = defaultOptions) {\n return {\n [customizeSelector(createBaseSelector(selectorType))]: style\n };\n}\nfunction createBaseSelector(selectorType) {\n switch(selectorType){\n case 'focus':\n return `&[${FOCUS_VISIBLE_ATTR}]`;\n case 'focus-within':\n return `&[${FOCUS_WITHIN_ATTR}]:focus-within`;\n }\n}\n","import { tokens } from '@fluentui/react-theme';\nimport { shorthands } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from './createCustomFocusIndicatorStyle';\nimport { defaultOptions } from './constants';\n/**\n * Get the position of the focus outline\n *\n * @param options - Configures the style of the focus outline\n * @param position - The position of the focus outline\n * @returns CSS value for the position of the focus outline\n */ function getOutlinePosition({ outlineWidth, outlineOffset }, position) {\n const offsetValue = (outlineOffset === null || outlineOffset === void 0 ? void 0 : outlineOffset[position]) || outlineOffset;\n if (!outlineOffset) {\n return `calc(${outlineWidth} * -1)`;\n }\n return `calc(0px - ${outlineWidth} - ${offsetValue})`;\n}\n/**\n * NOTE: the element with the focus outline needs to have `position: relative` so that the\n * pseudo element can be properly positioned.\n *\n * @param options - Configures the style of the focus outline\n * @returns focus outline styles object\n */ const getFocusOutlineStyles = (options)=>{\n const { outlineRadius, outlineColor, outlineWidth } = options;\n return {\n ...shorthands.borderColor('transparent'),\n '@media (forced-colors: active)': {\n '::after': {\n ...shorthands.borderColor('Highlight')\n }\n },\n '::after': {\n content: '\"\"',\n position: 'absolute',\n pointerEvents: 'none',\n zIndex: 1,\n ...shorthands.borderStyle('solid'),\n ...shorthands.borderWidth(outlineWidth),\n ...shorthands.borderRadius(outlineRadius),\n ...shorthands.borderColor(outlineColor),\n top: getOutlinePosition(options, 'top'),\n right: getOutlinePosition(options, 'right'),\n bottom: getOutlinePosition(options, 'bottom'),\n left: getOutlinePosition(options, 'left')\n }\n };\n};\n/**\n * NOTE: The element with the focus outline needs to have `position: relative` so that the\n * pseudo element can be properly positioned.\n *\n * @param options - Configure the style of the focus outline\n * @returns focus outline styles object for @see makeStyles\n */ export const createFocusOutlineStyle = ({ enableOutline = false, selector = defaultOptions.selector, customizeSelector, style = defaultOptions.style } = defaultOptions)=>({\n ':focus': {\n outlineStyle: enableOutline ? undefined : 'none'\n },\n ':focus-visible': {\n outlineStyle: enableOutline ? undefined : 'none'\n },\n ...createCustomFocusIndicatorStyle(getFocusOutlineStyles({\n outlineColor: tokens.colorStrokeFocus2,\n outlineRadius: tokens.borderRadiusMedium,\n // FIXME: tokens.strokeWidthThick causes some weird bugs\n outlineWidth: '2px',\n ...style\n }), {\n selector,\n customizeSelector\n })\n });\n","import { Types, getMover } from 'tabster';\nimport { useTabsterAttributes } from './useTabsterAttributes';\nimport { useTabster } from './useTabster';\n/**\n * A hook that returns the necessary tabster attributes to support arrow key navigation\n * @param options - Options to configure keyboard navigation\n */ export const useArrowNavigationGroup = (options = {})=>{\n const { circular, axis, memorizeCurrent = true, tabbable, ignoreDefaultKeydown, // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_hasDefault } = options;\n const tabster = useTabster();\n if (tabster) {\n getMover(tabster);\n }\n return useTabsterAttributes({\n mover: {\n cyclic: !!circular,\n direction: axisToMoverDirection(axis !== null && axis !== void 0 ? axis : 'vertical'),\n memorizeCurrent,\n tabbable,\n hasDefault: unstable_hasDefault\n },\n ...ignoreDefaultKeydown && {\n focusable: {\n ignoreKeydown: ignoreDefaultKeydown\n }\n }\n });\n};\nfunction axisToMoverDirection(axis) {\n switch(axis){\n case 'horizontal':\n return Types.MoverDirections.Horizontal;\n case 'grid':\n return Types.MoverDirections.Grid;\n case 'grid-linear':\n return Types.MoverDirections.GridLinear;\n case 'both':\n return Types.MoverDirections.Both;\n case 'vertical':\n default:\n return Types.MoverDirections.Vertical;\n }\n}\n","import { Types, getGroupper } from 'tabster';\nimport { useTabsterAttributes } from './useTabsterAttributes';\nimport { useTabster } from './useTabster';\n/**\n * A hook that returns the necessary tabster attributes to support groupping.\n * @param options - Options to configure keyboard navigation\n */ export const useFocusableGroup = (options)=>{\n const tabster = useTabster();\n if (tabster) {\n getGroupper(tabster);\n }\n return useTabsterAttributes({\n groupper: {\n tabbability: getTabbability(options === null || options === void 0 ? void 0 : options.tabBehavior)\n },\n focusable: {\n ignoreKeydown: options === null || options === void 0 ? void 0 : options.ignoreDefaultKeydown\n }\n });\n};\nconst getTabbability = (tabBehavior)=>{\n switch(tabBehavior){\n case 'unlimited':\n return Types.GroupperTabbabilities.Unlimited;\n case 'limited':\n return Types.GroupperTabbabilities.Limited;\n case 'limited-trap-focus':\n return Types.GroupperTabbabilities.LimitedTrapFocus;\n default:\n return undefined;\n }\n};\n","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n * @internal\n */ function getVirtualParent(child) {\n return isVirtualElement(child) ? child._virtual.parent || null : null;\n}\n/**\n * Gets the element which is the parent of a given element.\n * This method prefers the virtual parent over real DOM parent when present.\n * @internal\n */ export function getParent(child, options = {}) {\n if (!child) {\n return null;\n }\n if (!options.skipVirtual) {\n const virtualParent = getVirtualParent(child);\n if (virtualParent) {\n return virtualParent;\n }\n }\n const parent = child.parentNode;\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n return parent.host;\n }\n return parent;\n}\n","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n * @internal\n */ export function isVirtualElement(element) {\n return element && !!element._virtual;\n}\n","import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { createTabster, disposeTabster } from 'tabster';\nimport { useIsomorphicLayoutEffect, getParent } from '@fluentui/react-utilities';\n/**\n * Tries to get a tabster instance on the current window or creates a new one\n * Since Tabster is single instance only, feel free to call this hook to ensure Tabster exists if necessary\n *\n * @internal\n * @returns Tabster core instance\n */ export const useTabster = ()=>{\n const { targetDocument } = useFluent();\n const defaultView = (targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView) || undefined;\n const shadowDOMAPI = defaultView === null || defaultView === void 0 ? void 0 : defaultView.__tabsterShadowDOMAPI;\n const tabster = React.useMemo(()=>{\n if (!defaultView) {\n return null;\n }\n return createTabster(defaultView, {\n autoRoot: {},\n controlTab: false,\n getParent,\n checkUncontrolledTrappingFocus: (element)=>{\n var _element_firstElementChild;\n return !!((_element_firstElementChild = element.firstElementChild) === null || _element_firstElementChild === void 0 ? void 0 : _element_firstElementChild.hasAttribute('data-is-focus-trap-zone-bumper'));\n },\n DOMAPI: shadowDOMAPI\n });\n }, [\n defaultView,\n shadowDOMAPI\n ]);\n useIsomorphicLayoutEffect(()=>{\n return ()=>{\n if (tabster) {\n disposeTabster(tabster);\n }\n };\n }, [\n tabster\n ]);\n return tabster;\n};\n","import { getTabsterAttribute, Types as TabsterTypes } from 'tabster';\nimport { useTabster } from './useTabster';\nimport * as React from 'react';\n/**\n * @internal\n * Hook that returns tabster attributes while ensuring tabster exists\n */ export const useTabsterAttributes = (props)=>{\n // A tabster instance is not necessary to generate tabster attributes\n // but calling the hook will ensure that a tabster instance exists internally and avoids consumers doing the same\n useTabster();\n const strAttr = getTabsterAttribute(props, true);\n return React.useMemo(()=>({\n [TabsterTypes.TabsterAttributeName]: strAttr\n }), [\n strAttr\n ]);\n};\n","/**\n * @internal\n * Internal reference for the render function\n */ export const SLOT_RENDER_FUNCTION_SYMBOL = Symbol.for('fui.slotRenderFunction');\n/**\n * @internal\n * Internal reference for the render function\n */ export const SLOT_ELEMENT_TYPE_SYMBOL = Symbol.for('fui.slotElementType');\n","import * as React from 'react';\nimport { omit } from '../../utils/omit';\nimport { isSlot } from '../isSlot';\nimport { SLOT_RENDER_FUNCTION_SYMBOL } from '../constants';\n/**\n * Given the state and an array of slot names, will break out `slots` and `slotProps`\n * collections.\n *\n * The root is derived from a mix of `components` props and `as` prop.\n *\n * Slots will render as null if they are rendered as primitives with undefined children.\n *\n * The slotProps will always omit the `as` prop within them, and for slots that are string\n * primitives, the props will be filtered according to the slot type by the type system.\n * For example, if the slot is rendered `as: 'a'`, the props will be filtered for acceptable\n * anchor props. Note that this is only enforced at build time by Typescript -- there is no\n * runtime code filtering props in this function.\n *\n * @deprecated use slot.always or slot.optional combined with assertSlots instead\n *\n * @param state - State including slot definitions\n * @returns An object containing the `slots` map and `slotProps` map.\n */ export function getSlots(state) {\n // eslint-disable-next-line deprecation/deprecation\n const slots = {};\n const slotProps = {};\n const slotNames = Object.keys(state.components);\n for (const slotName of slotNames){\n const [slot, props] = getSlot(state, slotName);\n // eslint-disable-next-line deprecation/deprecation\n slots[slotName] = slot;\n slotProps[slotName] = props;\n }\n // eslint-disable-next-line deprecation/deprecation\n return {\n slots,\n slotProps: slotProps\n };\n}\nfunction getSlot(state, slotName) {\n var _state_components, _state_components1;\n const props = state[slotName];\n if (props === undefined) {\n return [\n null,\n undefined\n ];\n }\n // TS Error: Property 'as' does not exist on type 'UnknownSlotProps | undefined'.ts(2339)\n const { as: asProp, children, ...rest } = props;\n const renderFunction = isSlot(props) ? props[SLOT_RENDER_FUNCTION_SYMBOL] : undefined;\n const slot = ((_state_components = state.components) === null || _state_components === void 0 ? void 0 : _state_components[slotName]) === undefined || typeof state.components[slotName] === 'string' ? asProp || ((_state_components1 = state.components) === null || _state_components1 === void 0 ? void 0 : _state_components1[slotName]) || 'div' : state.components[slotName];\n if (renderFunction || typeof children === 'function') {\n const render = renderFunction || children;\n return [\n React.Fragment,\n {\n children: render(slot, rest)\n }\n ];\n }\n const shouldOmitAsProp = typeof slot === 'string' && asProp;\n const slotProps = shouldOmitAsProp ? omit(props, [\n 'as'\n ]) : props;\n return [\n slot,\n slotProps\n ];\n}\n","/**\n * Tiny helper to do the minimal amount of work in duplicating an object but omitting some\n * props. This ends up faster than using object ...rest or reduce to filter.\n *\n * This behaves very much like filteredAssign, but does not merge many objects together,\n * uses an exclusion object map, and avoids spreads all for optimal performance.\n *\n * See perf test for background:\n * https://jsperf.com/omit-vs-rest-vs-reduce/1\n *\n * @param obj - The object to clone\n * @param exclusions - The array of keys to exclude\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function omit(obj, exclusions) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = {};\n for(const key in obj){\n if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n","import * as slot from '../slot';\n/**\n *\n * Resolves shorthands into slot props, to ensure normalization of the signature\n * being passed down to getSlots method\n * @param value - the base shorthand props\n * @param options - options to resolve shorthand props\n *\n * @deprecated use slot.always or slot.optional combined with assertSlots instead\n */ // eslint-disable-next-line deprecation/deprecation\nexport const resolveShorthand = (value, options)=>slot.optional(value, {\n ...options,\n renderByDefault: options === null || options === void 0 ? void 0 : options.required,\n // elementType as undefined is the way to identify between a slot and a resolveShorthand call\n // in the case elementType is undefined assertSlots will fail, ensuring it'll only work with slot method.\n elementType: undefined\n });\n","import { SLOT_ELEMENT_TYPE_SYMBOL } from './constants';\n/**\n * Guard method to ensure a given element is a slot.\n * This is mainly used internally to ensure a slot is being used as a component.\n */ export function isSlot(element) {\n return Boolean(element === null || element === void 0 ? void 0 : element.hasOwnProperty(SLOT_ELEMENT_TYPE_SYMBOL));\n}\n","import * as React from 'react';\nimport { SLOT_ELEMENT_TYPE_SYMBOL, SLOT_RENDER_FUNCTION_SYMBOL } from './constants';\n/**\n * Creates a slot from a slot shorthand or properties (`props.SLOT_NAME` or `props` itself)\n * @param value - the value of the slot, it can be a slot shorthand, a slot component or a slot properties\n * @param options - values you can pass to alter the signature of a slot, those values are:\n *\n * * `elementType` - the base element type of a slot, defaults to `'div'`\n * * `defaultProps` - similar to a React component declaration, you can provide a slot default properties to be merged with the shorthand/properties provided.\n */ export function always(value, options) {\n const { defaultProps, elementType } = options;\n const props = resolveShorthand(value);\n /**\n * Casting is required here as SlotComponentType is a function, not an object.\n * Although SlotComponentType has a function signature, it is still just an object.\n * This is required to make a slot callable (JSX compatible), this is the exact same approach\n * that is used on `@types/react` components\n */ const propsWithMetadata = {\n ...defaultProps,\n ...props,\n [SLOT_ELEMENT_TYPE_SYMBOL]: elementType\n };\n if (props && typeof props.children === 'function') {\n propsWithMetadata[SLOT_RENDER_FUNCTION_SYMBOL] = props.children;\n propsWithMetadata.children = defaultProps === null || defaultProps === void 0 ? void 0 : defaultProps.children;\n }\n return propsWithMetadata;\n}\n/**\n * Creates a slot from a slot shorthand or properties (`props.SLOT_NAME` or `props` itself)\n * @param value - the value of the slot, it can be a slot shorthand, a slot component or a slot properties\n * @param options - values you can pass to alter the signature of a slot, those values are:\n *\n * * `elementType` - the base element type of a slot, defaults to `'div'`\n * * `defaultProps` - similar to a React component declaration, you can provide a slot default properties to be merged with the shorthand/properties provided\n * * `renderByDefault` - a boolean that indicates if a slot will be rendered even if it's base value is `undefined`.\n * By default if `props.SLOT_NAME` is `undefined` then `state.SLOT_NAME` becomes `undefined`\n * and nothing will be rendered, but if `renderByDefault = true` then `state.SLOT_NAME` becomes an object\n * with the values provided by `options.defaultProps` (or `{}`). This is useful for cases such as providing a default content\n * in case no shorthand is provided, like the case of the `expandIcon` slot for the `AccordionHeader`\n */ export function optional(value, options) {\n if (value === null || value === undefined && !options.renderByDefault) {\n return undefined;\n }\n return always(value, options);\n}\n/**\n * Helper function that converts a slot shorthand or properties to a slot properties object\n * The main difference between this function and `slot` is that this function does not return the metadata required for a slot to be considered a properly renderable slot, it only converts the value to a slot properties object\n * @param value - the value of the slot, it can be a slot shorthand or a slot properties object\n */ export function resolveShorthand(value) {\n if (typeof value === 'string' || typeof value === 'number' || Array.isArray(value) || // eslint-disable-next-line @typescript-eslint/no-explicit-any\n React.isValidElement(value)) {\n return {\n children: value\n };\n }\n if (value && typeof value !== 'object' && process.env.NODE_ENV !== 'production') {\n // TODO: would be nice to have a link to slot documentation in this error message\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-utilities [slot.${resolveShorthand.name}]:\nA slot got an invalid value \"${value}\" (${typeof value}).\nA valid value for a slot is a slot shorthand or slot properties object.\nSlot shorthands can be strings, numbers, arrays or JSX elements`);\n }\n return value;\n}\n","import * as React from 'react';\nimport { canUseDOM } from '../ssr/index';\n/**\n * React currently throws a warning when using useLayoutEffect on the server. To get around it, we can conditionally\n * useEffect on the server (no-op) and useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also need affected components to render on\n * the server.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n */ // eslint-disable-next-line no-restricted-properties\nexport const useIsomorphicLayoutEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n","import * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */ export function useMergedRefs(...refs) {\n const mergedCallback = React.useCallback((value)=>{\n // Update the \"current\" prop hanging on the function.\n mergedCallback.current = value;\n for (const ref of refs){\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = value;\n }\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps -- already exhaustive\n [\n ...refs\n ]);\n return mergedCallback;\n}\n","/**\n * Verifies if an application can use DOM.\n */ export function canUseDOM() {\n return(// eslint-disable-next-line deprecation/deprecation, no-restricted-globals\n typeof window !== 'undefined' && !!(window.document && window.document.createElement));\n}\n","const toObjectMap = (...items)=>{\n const result = {};\n for (const item of items){\n const keys = Array.isArray(item) ? item : Object.keys(item);\n for (const key of keys){\n result[key] = 1;\n }\n }\n return result;\n};\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */ export const baseElementEvents = toObjectMap([\n 'onAuxClick',\n 'onAnimationEnd',\n 'onAnimationStart',\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onFocus',\n 'onFocusCapture',\n 'onBlur',\n 'onBlurCapture',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onLoad',\n 'onError',\n 'onKeyDown',\n 'onKeyDownCapture',\n 'onKeyPress',\n 'onKeyUp',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n 'onClick',\n 'onClickCapture',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseDownCapture',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onMouseUpCapture',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onGotPointerCapture',\n 'onLostPointerCapture'\n]);\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */ export const baseElementProperties = toObjectMap([\n 'accessKey',\n 'children',\n 'className',\n 'contentEditable',\n 'dir',\n 'draggable',\n 'hidden',\n 'htmlFor',\n 'id',\n 'lang',\n 'ref',\n 'role',\n 'style',\n 'tabIndex',\n 'title',\n 'translate',\n 'spellCheck',\n 'name'\n]);\n/**\n * An array of microdata attributes that are allowed on every html element type.\n *\n * @public\n */ export const microdataProperties = toObjectMap([\n 'itemID',\n 'itemProp',\n 'itemRef',\n 'itemScope',\n 'itemType'\n]);\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */ export const htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents, microdataProperties);\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */ export const labelProperties = toObjectMap(htmlElementProperties, [\n 'form'\n]);\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */ export const audioProperties = toObjectMap(htmlElementProperties, [\n 'height',\n 'loop',\n 'muted',\n 'preload',\n 'src',\n 'width'\n]);\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */ export const videoProperties = toObjectMap(audioProperties, [\n 'poster'\n]);\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */ export const olProperties = toObjectMap(htmlElementProperties, [\n 'start'\n]);\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */ export const liProperties = toObjectMap(htmlElementProperties, [\n 'value'\n]);\n/**\n * An array of A tag properties and events.\n *\n * @public\n */ export const anchorProperties = toObjectMap(htmlElementProperties, [\n 'download',\n 'href',\n 'hrefLang',\n 'media',\n 'rel',\n 'target',\n 'type'\n]);\n/**\n * An array of TIME tag properties and events.\n *\n * @public\n */ export const timeProperties = toObjectMap(htmlElementProperties, [\n 'dateTime'\n]);\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */ export const buttonProperties = toObjectMap(htmlElementProperties, [\n 'autoFocus',\n 'disabled',\n 'form',\n 'formAction',\n 'formEncType',\n 'formMethod',\n 'formNoValidate',\n 'formTarget',\n 'type',\n 'value'\n]);\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */ export const inputProperties = toObjectMap(buttonProperties, [\n 'accept',\n 'alt',\n 'autoCapitalize',\n 'autoComplete',\n 'checked',\n 'dirname',\n 'form',\n 'height',\n 'inputMode',\n 'list',\n 'max',\n 'maxLength',\n 'min',\n 'multiple',\n 'pattern',\n 'placeholder',\n 'readOnly',\n 'required',\n 'src',\n 'step',\n 'size',\n 'type',\n 'value',\n 'width'\n]);\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */ export const textAreaProperties = toObjectMap(buttonProperties, [\n 'autoCapitalize',\n 'cols',\n 'dirname',\n 'form',\n 'maxLength',\n 'placeholder',\n 'readOnly',\n 'required',\n 'rows',\n 'wrap'\n]);\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */ export const selectProperties = toObjectMap(buttonProperties, [\n 'form',\n 'multiple',\n 'required'\n]);\nexport const optionProperties = toObjectMap(htmlElementProperties, [\n 'selected',\n 'value'\n]);\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */ export const tableProperties = toObjectMap(htmlElementProperties, [\n 'cellPadding',\n 'cellSpacing'\n]);\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */ export const trProperties = htmlElementProperties;\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */ export const thProperties = toObjectMap(htmlElementProperties, [\n 'colSpan',\n 'rowSpan',\n 'scope'\n]);\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */ export const tdProperties = toObjectMap(htmlElementProperties, [\n 'colSpan',\n 'headers',\n 'rowSpan',\n 'scope'\n]);\nexport const colGroupProperties = toObjectMap(htmlElementProperties, [\n 'span'\n]);\nexport const colProperties = toObjectMap(htmlElementProperties, [\n 'span'\n]);\n/**\n * An array of FIELDSET tag properties and events.\n *\n * @public\n */ export const fieldsetProperties = toObjectMap(htmlElementProperties, [\n 'disabled',\n 'form'\n]);\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */ export const formProperties = toObjectMap(htmlElementProperties, [\n 'acceptCharset',\n 'action',\n 'encType',\n 'encType',\n 'method',\n 'noValidate',\n 'target'\n]);\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */ export const iframeProperties = toObjectMap(htmlElementProperties, [\n 'allow',\n 'allowFullScreen',\n 'allowPaymentRequest',\n 'allowTransparency',\n 'csp',\n 'height',\n 'importance',\n 'referrerPolicy',\n 'sandbox',\n 'src',\n 'srcDoc',\n 'width'\n]);\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */ export const imgProperties = toObjectMap(htmlElementProperties, [\n 'alt',\n 'crossOrigin',\n 'height',\n 'src',\n 'srcSet',\n 'useMap',\n 'width'\n]);\n/**\n * An array of DIALOG tag properties and events.\n *\n * @public\n */ export const dialogProperties = toObjectMap(htmlElementProperties, [\n 'open',\n 'onCancel',\n 'onClose'\n]);\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */ export const divProperties = htmlElementProperties;\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropNames - The array or record of allowed prop names.\n * @param excludedPropNames\n * @returns The filtered props\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps(// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops, allowedPropNames, excludedPropNames) {\n // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n // return native props.\n // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n const isArray = Array.isArray(allowedPropNames);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = {};\n const keys = Object.keys(props);\n for (const key of keys){\n const isNativeProp = !isArray && allowedPropNames[key] || isArray && allowedPropNames.indexOf(key) >= 0 || key.indexOf('data-') === 0 || key.indexOf('aria-') === 0;\n if (isNativeProp && (!excludedPropNames || (excludedPropNames === null || excludedPropNames === void 0 ? void 0 : excludedPropNames.indexOf(key)) === -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key] = props[key];\n }\n }\n return result;\n}\n","import * as React from 'react';\nimport { labelProperties, audioProperties, videoProperties, olProperties, liProperties, anchorProperties, buttonProperties, inputProperties, textAreaProperties, selectProperties, optionProperties, tableProperties, trProperties, thProperties, tdProperties, colGroupProperties, colProperties, fieldsetProperties, formProperties, iframeProperties, imgProperties, htmlElementProperties, getNativeProps, timeProperties, dialogProperties } from './properties';\nconst nativeElementMap = {\n label: labelProperties,\n audio: audioProperties,\n video: videoProperties,\n ol: olProperties,\n li: liProperties,\n a: anchorProperties,\n button: buttonProperties,\n input: inputProperties,\n textarea: textAreaProperties,\n select: selectProperties,\n option: optionProperties,\n table: tableProperties,\n tr: trProperties,\n th: thProperties,\n td: tdProperties,\n colGroup: colGroupProperties,\n col: colProperties,\n fieldset: fieldsetProperties,\n form: formProperties,\n iframe: iframeProperties,\n img: imgProperties,\n time: timeProperties,\n dialog: dialogProperties\n};\n/**\n * Given an element tagname and user props, filters the props to only allowed props for the given\n * element type.\n * @param tagName - Tag name (e.g. \"div\")\n * @param props - Props object\n * @param excludedPropNames - List of props to disallow\n *\n * @deprecated use getIntrinsicElementProps instead, it is a type-safe version of this method\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeElementProps(tagName, props, excludedPropNames) {\n const allowedPropNames = tagName && nativeElementMap[tagName] || htmlElementProperties;\n allowedPropNames.as = 1;\n return getNativeProps(props, allowedPropNames, excludedPropNames);\n}\n/**\n * Splits the native props into ones that go to the `root` slot, and ones that go to the primary slot.\n *\n * This function is only for use with components that have a primary slot other than `root`.\n * Most components should use {@link getNativeElementProps} for their root slot if it is the primary slot.\n *\n * @returns An object containing the native props for the `root` and primary slots.\n */ export const getPartitionedNativeProps = ({ primarySlotTagName, props, excludedPropNames })=>{\n return {\n root: {\n style: props.style,\n className: props.className\n },\n // eslint-disable-next-line deprecation/deprecation\n primary: getNativeElementProps(primarySlotTagName, props, [\n ...excludedPropNames || [],\n 'style',\n 'className'\n ])\n };\n};\n","import * as React from 'react';\n/**\n * Context for providing the window.\n */\n// eslint-disable-next-line @fluentui/no-context-default-value\nexport var WindowContext = React.createContext({\n // eslint-disable-next-line no-restricted-globals\n window: typeof window === 'object' ? window : undefined,\n});\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useWindow = function () { return React.useContext(WindowContext).window; };\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useDocument = function () { var _a; return (_a = React.useContext(WindowContext).window) === null || _a === void 0 ? void 0 : _a.document; };\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport var WindowProvider = function (props) {\n return React.createElement(WindowContext.Provider, { value: props }, props.children);\n};\n//# sourceMappingURL=WindowProvider.js.map"],"names":["setRTL","isRTL","_rtl","getRTL","undefined","document","documentElement","getAttribute","getStyleOptions","rtl","_stylesheet","InjectionMode","STYLESHEET_SETTING","REUSE_STYLE_NODE","navigator","test","userAgent","_global","window","_a","Stylesheet","config","serializedStylesheet","_b","_c","_d","_e","_f","this","_rules","_preservedRules","_counter","_keyToClassName","_onInsertRuleCallbacks","_onResetCallbacks","_classNameToArgs","_config","injectionMode","defaultPrefix","namespace","cspSettings","classNameToArgs","counter","classNameCache","keyToClassName","preservedRules","rules","getInstance","_lastStyleElement","ownerDocument","fabricConfig","FabricConfig","stylesheet","mergeStyles","prototype","serialize","JSON","stringify","setConfig","onReset","callback","_this","push","filter","cb","onInsertRule","getClassName","displayName","prefix","concat","cacheClassName","className","key","args","classNameFromKey","getClassNameCache","argsFromClassName","entry","insertedRulesFromClassName","insertRule","rule","preserve","element","_getStyleElement","sheet","cssRules","length","e","appendChild","createTextNode","forEach","getRules","includePreservedRules","join","reset","resetKeys","_styleElement","_createStyleElement","requestAnimationFrame","head","styleElement","createElement","nodeToInsertBefore","setAttribute","nonce","nextElementSibling","placeholderStyleTag","_findPlaceholderStyleTag","childNodes","insertBefore","contains","querySelector","concatStyleSets","styleSets","_i","arguments","subComponentStyles","mergedSet","workingSubcomponentStyles","styleSets_1","currentSet","prop","hasOwnProperty","currentComponentStyles","subCompProp","mergedValue","currentValue","Array","isArray","Object","keys","mergedSubStyles","_loop_1","workingSet_1","styleProps","apply","map","styleFunctionOrObject","concatStyleSetsWithProps","allStyles","result","allStyles_1","styles","extractStyleParts","classes","objects","_processArgs","argsList","argsList_1","arg","indexOf","split","translatedArgs","fontFace","font","name","keyframes","timeline","rulesArray","mergeStyleSets","mergeCssSets","options","classNameSet","concatenatedStyleSet","registrations","styleSetArea","registration","registrations_1","specificityMultiplier","mergeCss","styleArgs","_vendorSettings","autoPrefixNames","prefixRules","rulePairs","index","vendorSettings","doc","nav","toLowerCase","isWebkit","style","isMoz","isOpera","isMs","getVendorSettings","value","NON_PIXEL_NUMBER_PROPS","provideUnits","isNonPixelProp","isVariableOrPrefixed","unit","LEFT","RIGHT","NO_FLIP","NAME_REPLACEMENTS","VALUE_REPLACEMENTS","rtlifyRules","name_1","replace","String","parts","flipQuad","partIndex","numberVal","parseInt","negateNum","DISPLAY_NAME","globalSelectorRegExp","expandSelector","newSelector","currentSelector","extractSelector","selector","__order","extractRules","selectorWithGlobals","replacementInfo","findGlobal","match","exec","v","trim","reverse","reduce","matchIndex","matchEndIndex","replacement","slice","expandCommaSeparatedGlobals","s","separatedSelector","currentRules","args_1","expandedRules","propValue","selectors","expandQuads","partStart","parens","i","substring","tokenizeWithParentheses","p","repeatString","target","count","serializeRuleEntries","ruleEntries","allEntries","charAt","splice","styleToRegistration","serialized","hasProps","rulesForSelector","propName","getKeyForRules","rootStyle","getDisplayName","rulesToInsert","applyRegistration","processedRule","styleToClassName","FileIconType","_extensionToIconName","FileTypeIconMap","accdb","extensions","archive","audio","calendar","classifier","clipchamp","code","contact","csv","designer","desktopfolder","docset","documentsfolder","docx","dotx","email","exe","favoritesfolder","folder","form","genericfile","html","ipynb","link","linkedfolder","listitem","loop","loopworkspace","officescript","splist","model","mpp","mpt","multiple","one","onetoc","pbiapp","pdf","photo","photo360","picturesfolder","potx","powerbi","ppsx","pptx","presentation","pub","spo","sponews","spreadsheet","rtf","sharedfolder","playlist","sway","sysfile","txt","vaultclosed","vaultopen","vector","video","video360","vsdx","vssx","vstx","whiteboard","xlsx","xltx","xml","xsn","zip","GENERIC_FILE","FOLDER","SHARED_FOLDER","DOCSET_FOLDER","LIST_ITEM","LIST","MULTIPLE_ITEMS","NEWS","STREAM","DESKTOP_FOLDER","DOCUMENTS_FOLDER","PICTURES_FOLDER","LINKED_FOLDER","FORM","SWAY","PLAYLIST","LOOP_WORKSPACE","DEFAULT_ICON_SIZE","getFileTypeIconProps","iconBaseName","extension","type","size","imageFileType","iconName","listItem","sharedFolder","stream","news","desktopFolder","documentsFolder","picturesFolder","linkedFolder","list","getFileTypeIconNameFromExtensionOrType","suffix","devicePixelRatio","devicePixelRatioSuffix","getFileTypeIconSuffix","focusZoneStyles","IS_FOCUSABLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","raiseClickFromKeyboardEvent","ev","event","MouseEvent","ctrlKey","metaKey","shiftKey","altKey","bubbles","cancelable","createEvent","initMouseEvent","dispatchEvent","_allInstances","_outerZones","Set","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","FocusZone","_super","props","call","_root","_mergedRef","_onFocus","_portalContainsElement","newActiveElement","onActiveElementChanged","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","onFocus","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","_isImmediateDescendantOfZone","parentElement","current","maybeElementToFocus","focus","_activeElement","initialElementFocused","_setFocusAlignment","_updateTabIndexes","stopPropagation","_onBlur","_setParkedFocus","_onMouseDown","disabled","path","pop","_setActiveElement","_onKeyDown","theme","direction","isInnerZoneKeystroke","pagingSupportDisabled","shouldEnterInnerZone","onKeyDown","isDefaultPrevented","_getDocument","activeElement","_isInnerZone","innerZone","_getFirstInnerZone","focusElement","firstChild","which","_shouldRaiseClicksOnSpace","_tryInvokeClickForFocusable","_preventDefaultWhenHandled","_moveFocusLeft","_moveFocusRight","_moveFocusUp","_moveFocusDown","_moveFocusPaging","allowTabKey","handleTabKey","_isElementInput","focusChanged","_processingTabKey","_shouldWrapFocus","shouldResetActiveElementWhenTabFromZone","_isContentEditableElement","_shouldInputLoseFocus","lastChild","_shouldRaiseClicksOnEnter","preventDefault","_getHorizontalDistanceFromCenter","isForward","activeRect","targetRect","leftAlignment","_focusAlignment","left","x","targetRectTop","Math","floor","top","activeRectBottom","bottom","targetRectBottom","activeRectTop","width","abs","_id","shouldRaiseClicksFallback","shouldRaiseClicks","defaultProps","shouldRaiseClicksOnEnter","shouldRaiseClicksOnSpace","getOuterZones","_onKeyDownCapture","zone","componentDidMount","root","body","nodeType","add","addEventListener","defaultActiveElement","shouldFocusOnMount","componentDidUpdate","_defaultFocusElement","preventFocusRestoration","_lastIndexPath","elementToFocus","componentWillUnmount","delete","removeEventListener","render","tag","as","elementType","rootProps","ariaDescribedBy","ariaLabelledBy","divProps","Tag","_evaluateFocusBeforeRender","outline","ref","elementRef","onMouseDownCapture","children","forceIntoFirstElement","bypassHiddenElements","ownerZoneElement","_getOwnerZone","ownerZone","focusLast","forceAlignment","onBeforeFocus","shouldReceiveFocus","setFocusAlignment","point","defineProperty","get","enumerable","configurable","focusedElement","shouldRestoreFocus","isParked","_isParked","allowFocusRoot","_parkedTabIndex","removeAttribute","previousActiveElement","tabIndex","preventDefaultWhenHandled","targetElement","tagName","rootElement","child","firstElementChild","_moveFocus","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","getBoundingClientRect","elementDistance","isCircularNavigation","lastElementChild","targetTop","distance","shouldWrap","parseFloat","toFixed","right","scrollableParent","targetBottom","pagesize","clientHeight","isHorizontal","isVertical","rect","top_1","height","childIndex","selectionStart","isRangeSelected","selectionEnd","inputValue","isReadonly","readOnly","shouldInputLoseFocusOnArrowKey","noWrapDataAttribute","checkForNoWrap","FocusZoneDirection","FocusZoneTabbableElements","none","all","inputOnly","useAsync","asyncRef","dispose","useBoolean","initialState","setValue","setTrue","setFalse","toggle","useConst","initialValue","useControllableValue","controlledValue","defaultUncontrolledValue","onChange","isControlled","valueRef","onChangeRef","setValueOrCallOnChange","update","newValue","useEventCallback","fn","callbackRef","Error","useId","providedId","useMergedRefs","refs","mergedCallback","refs_1","useOnEvent","eventName","useCapture","actualElement","on","usePrevious","useRef","useEffect","useSetTimeout","timeoutIds","id","clearTimeout","setTimeout","func","duration","useTarget","hostElement","previousTargetProp","targetRef","targetWindow","currentElement","currentDoc","useUnmount","unmountRef","useWarnings","IconDirectionContext","IconDirectionContextDefaultValue","IconDirectionContextProvider","Provider","useIconContext","useRootStyles","useIconState","title","primaryFill","rest","state","fill","iconContext","flipInRtl","textDirection","createFluentIcon","paths","viewBoxWidth","Icon","viewBox","xmlns","d","objectIs","is","y","PopoverContext","defaultValue","context","version","listeners","Original","versionRef","contextValue","useIsomorphicLayoutEffect","listener","Consumer","createContext","popoverContextDefaultValue","open","setOpen","toggleOpen","triggerRef","contentRef","arrowRef","openOnContext","openOnHover","trapFocus","inline","usePopoverContext_unstable","selected","dispatch","prevState","payload","nextSelected","useContextSelector","ctx","PortalCompatContext","portalCompatContextDefaultValue","usePortalCompat","_React_useContext","createJSX","runtime","slotRuntime","overrideProps","source","self","isSlot","createCompatSlotComponent","getMetadataFromSlotComponent","baseElementType","renderFunction","propsWithoutMetadata","Runtime","jsx","slotProps","jsxs","ThemeContext","ThemeProvider","ThemeClassNameContext","ThemeClassNameProvider","CustomStyleHooksContext","CustomStyleHooksProvider","TooltipVisibilityContext","TooltipVisibilityProvider","OverridesContext","OverridesProvider","isHTMLElement","_typedElement_ownerDocument","typedElement","_options_constructorName","Boolean","defaultView","constructorName","applyFocusVisiblePolyfill","scope","alreadyInScope","keyborg","registerElementIfNavigating","el","isNavigatingWithKeyboard","disposeCurrentElement","subscribe","keyborgListener","composedPath","blurListener","relatedTarget","focusVisible","useFocusVisible","scopeRef","_options_targetDocument","targetDocument","getIntrinsicElementProps","excludedPropNames","_props_as","getNativeElementProps","SSRContext","useSSRContext","IdPrefixContext","idPrefix","_useId","generatedId","escapedId","fluentProviderClassNames","useStyles","sj55zd","De3pzq","fsow6f","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","useInsertionEffect","useFluentProviderThemeStyleTag","rendererAttributes","styleTag","styleTagId","styleElementAttributes","cssVarRule","cssVar","createCSSRuleFromTheme","themeStyleElement","getElementById","append","useHandleSSRStyleElements","ssrStyleElement","elementAttributes","attrName","createStyleTag","deleteRule","insertSheet","_styleTag_current","remove","EMPTY_OBJECT","useFluentProvider_unstable","parentContext","parentTheme","parentOverrides","parentCustomStyleHooks","applyStylesToPortals","customStyleHooks_unstable","dir","overrides_unstable","overrides","mergedTheme","shallowMerge","mergedOverrides","mergedCustomStyleHooks","renderer","_renderer_styleElementAttributes","themeClassName","components","slot","serverStyleProps","cssRule","attributes","a","b","FluentProvider","useFluentProviderStyles_unstable","contextValues","provider","tooltip","iconDirection","useFluentProviderContextValues_unstable","dangerouslySetInnerHTML","__html","renderFluentProvider_unstable","ProviderContext","providerContextDefaultValue","useFluent","FOCUS_VISIBLE_ATTR","FOCUS_WITHIN_ATTR","defaultOptions","customizeSelector","createCustomFocusIndicatorStyle","selectorType","createBaseSelector","getOutlinePosition","outlineWidth","outlineOffset","position","offsetValue","getFocusOutlineStyles","outlineRadius","outlineColor","content","pointerEvents","zIndex","createFocusOutlineStyle","enableOutline","outlineStyle","tokens","useArrowNavigationGroup","circular","axis","memorizeCurrent","tabbable","ignoreDefaultKeydown","unstable_hasDefault","tabster","u","mover","cyclic","axisToMoverDirection","hasDefault","focusable","ignoreKeydown","useFocusableGroup","groupper","tabbability","getTabbability","tabBehavior","getParent","skipVirtual","virtualParent","_virtual","parent","getVirtualParent","parentNode","Node","DOCUMENT_FRAGMENT_NODE","host","useTabster","shadowDOMAPI","__tabsterShadowDOMAPI","autoRoot","controlTab","checkUncontrolledTrappingFocus","_element_firstElementChild","hasAttribute","DOMAPI","useTabsterAttributes","strAttr","SLOT_RENDER_FUNCTION_SYMBOL","Symbol","for","SLOT_ELEMENT_TYPE_SYMBOL","getSlots","slots","slotNames","slotName","getSlot","_state_components","_state_components1","asProp","obj","exclusions","omit","resolveShorthand","renderByDefault","required","always","propsWithMetadata","optional","canUseDOM","toObjectMap","items","item","baseElementEvents","baseElementProperties","microdataProperties","htmlElementProperties","labelProperties","audioProperties","videoProperties","olProperties","liProperties","anchorProperties","timeProperties","buttonProperties","nativeElementMap","label","ol","li","button","input","textarea","select","option","table","tr","th","td","colGroup","col","fieldset","iframe","img","time","dialog","allowedPropNames","getNativeProps","getPartitionedNativeProps","primarySlotTagName","primary","WindowContext","useWindow","useDocument"],"sourceRoot":""}